Bug 1895567 - Review Request: usd - 3D VFX pipeline interchange file format
Summary: Review Request: usd - 3D VFX pipeline interchange file format
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Ben Beasley
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1890891
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-11-07 06:10 UTC by Luya Tshimbalanga
Modified: 2021-05-24 01:14 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-05-24 01:00:40 UTC
Type: ---
code: fedora-review+


Attachments (Terms of Use)
Mock build log (742.49 KB, text/plain)
2021-01-24 13:25 UTC, Ben Beasley
no flags Details

Description Luya Tshimbalanga 2020-11-07 06:10:17 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-rawhide-x86_64/01746596-usd/usd.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-rawhide-x86_64/01746596-usd/usd-20.11-1.fc34.src.rpm
Description: Universal Scene Description (USD) is a time-sampled scene 
description for interchange between graphics applications.
Fedora Account System Username: luya

Comment 1 Luya Tshimbalanga 2020-11-07 06:11:07 UTC
Add dependencies to ptex

Comment 2 Robert-André Mauchin 🐧 2020-11-07 10:49:39 UTC
 - Valid license shorthand is ASL 2.0 without -:

License:        ASL 2.0

 - Did upstream refuse to version the library?

 - Missing arch specific info (isa)

Requires:       %{name}%{?_isa} = %{version}

 - Not needed:

%dir %{python_sitearch}/pxr

 - Maybe these .so are plugins that should go in the main package, I'm not sure though, I don't know how the program opens them

/usr/lib64/libar.so
/usr/lib64/libarch.so
/usr/lib64/libcameraUtil.so
/usr/lib64/libgarch.so
/usr/lib64/libgf.so
/usr/lib64/libglf.so
/usr/lib64/libhd.so
/usr/lib64/libhdSt.so
/usr/lib64/libhdx.so
/usr/lib64/libhf.so
/usr/lib64/libhgi.so
/usr/lib64/libhgiGL.so
/usr/lib64/libhgiInterop.so
/usr/lib64/libhio.so
/usr/lib64/libjs.so
/usr/lib64/libkind.so
/usr/lib64/libndr.so
/usr/lib64/libpcp.so
/usr/lib64/libplug.so
/usr/lib64/libpxOsd.so
/usr/lib64/libsdf.so
/usr/lib64/libsdr.so
/usr/lib64/libtf.so
/usr/lib64/libtrace.so
/usr/lib64/libusd.so
/usr/lib64/libusdAppUtils.so
/usr/lib64/libusdGeom.so
/usr/lib64/libusdHydra.so
/usr/lib64/libusdImaging.so
/usr/lib64/libusdImagingGL.so
/usr/lib64/libusdLux.so
/usr/lib64/libusdMedia.so
/usr/lib64/libusdRender.so
/usr/lib64/libusdRi.so
/usr/lib64/libusdRiImaging.so
/usr/lib64/libusdShade.so
/usr/lib64/libusdSkel.so
/usr/lib64/libusdSkelImaging.so
/usr/lib64/libusdUI.so
/usr/lib64/libusdUtils.so
/usr/lib64/libusdVol.so
/usr/lib64/libusdVolImaging.so
/usr/lib64/libvt.so
/usr/lib64/libwork.so


 - Fix line encoding:

usd-libs.x86_64: W: wrong-file-end-of-line-encoding /usr/share/doc/usd-libs/NOTICE.txt

 - Don't mix tabs and spaces:


usd.src:7: W: mixed-use-of-spaces-and-tabs (spaces: line 7, tab: line 4)


%global		libmajor 0
%global		srcname	USD


Patch:		%{srcname}-20.05-soversion.patch


BuildRequires:	pkgconfig(jemalloc)


ExclusiveArch:	x86_64

Comment 3 Luya Tshimbalanga 2020-11-23 16:25:51 UTC
(In reply to Robert-André Mauchin 🐧 from comment #2)
>  - Valid license shorthand is ASL 2.0 without -:
> 
> License:        ASL 2.0

Fixed.

>  - Did upstream refuse to version the library?
Patch sent.

> 
>  - Missing arch specific info (isa)
> 
> Requires:       %{name}%{?_isa} = %{version}
> 

Fixed

>  - Not needed:
> 
> %dir %{python_sitearch}/pxr
> 

Removed

>  - Maybe these .so are plugins that should go in the main package, I'm not
> sure though, I don't know how the program opens them
> 
> /usr/lib64/libar.so
> /usr/lib64/libarch.so
> /usr/lib64/libcameraUtil.so
> /usr/lib64/libgarch.so
> /usr/lib64/libgf.so
> /usr/lib64/libglf.so
> /usr/lib64/libhd.so
> /usr/lib64/libhdSt.so
> /usr/lib64/libhdx.so
> /usr/lib64/libhf.so
> /usr/lib64/libhgi.so
> /usr/lib64/libhgiGL.so
> /usr/lib64/libhgiInterop.so
> /usr/lib64/libhio.so
> /usr/lib64/libjs.so
> /usr/lib64/libkind.so
> /usr/lib64/libndr.so
> /usr/lib64/libpcp.so
> /usr/lib64/libplug.so
> /usr/lib64/libpxOsd.so
> /usr/lib64/libsdf.so
> /usr/lib64/libsdr.so
> /usr/lib64/libtf.so
> /usr/lib64/libtrace.so
> /usr/lib64/libusd.so
> /usr/lib64/libusdAppUtils.so
> /usr/lib64/libusdGeom.so
> /usr/lib64/libusdHydra.so
> /usr/lib64/libusdImaging.so
> /usr/lib64/libusdImagingGL.so
> /usr/lib64/libusdLux.so
> /usr/lib64/libusdMedia.so
> /usr/lib64/libusdRender.so
> /usr/lib64/libusdRi.so
> /usr/lib64/libusdRiImaging.so
> /usr/lib64/libusdShade.so
> /usr/lib64/libusdSkel.so
> /usr/lib64/libusdSkelImaging.so
> /usr/lib64/libusdUI.so
> /usr/lib64/libusdUtils.so
> /usr/lib64/libusdVol.so
> /usr/lib64/libusdVolImaging.so
> /usr/lib64/libvt.so
> /usr/lib64/libwork.so
> 

Those are for devel subpackage.
> 
>  - Fix line encoding:
> 
> usd-libs.x86_64: W: wrong-file-end-of-line-encoding
> /usr/share/doc/usd-libs/NOTICE.txt
> 
>  - Don't mix tabs and spaces:
> 
> 
> usd.src:7: W: mixed-use-of-spaces-and-tabs (spaces: line 7, tab: line 4)
> 
> 
>
Fixed.



Updated
SPEC: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-33-x86_64/01784072-usd/usd.spec 
SRPM: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-33-x86_64/01784072-usd/usd-20.11-2.fc33.x86_64.rpm

Comment 4 Robert-André Mauchin 🐧 2021-01-20 18:55:23 UTC
(In reply to Luya Tshimbalanga from comment #3)
> (In reply to Robert-André Mauchin 🐧 from comment #2)
> >  - Valid license shorthand is ASL 2.0 without -:
> > 
> > License:        ASL 2.0
> 
> Fixed.
> 
> >  - Did upstream refuse to version the library?
> Patch sent.
> 
> > 
> >  - Missing arch specific info (isa)
> > 
> > Requires:       %{name}%{?_isa} = %{version}
> > 
> 
> Fixed
>
This needs to be in the devel package, not the libs one

Comment 5 Luya Tshimbalanga 2021-01-22 02:50:20 UTC
(In reply to Robert-André Mauchin 🐧 from comment #4)
> > > 
> > >  - Missing arch specific info (isa)
> > > 
> > > Requires:       %{name}%{?_isa} = %{version}
> > > 
> > 
> > Fixed
> >
> This needs to be in the devel package, not the libs one

Done. Here is the latest spec

SPEC: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-rawhide-x86_64/01890382-usd/usd.spec
SRPM: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-rawhide-x86_64/01890382-usd/usd-21.02-1.fc34.src.rpm

Comment 6 Ben Beasley 2021-01-24 13:25:32 UTC
Created attachment 1750235 [details]
Mock build log

Fails to build in mock for me. Log attached.

Comment 7 Ben Beasley 2021-01-24 13:29:15 UTC
This seems to be the relevant bit of compiler-spew:

In file included from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/cxxabi.h:219:47: error: invalid use of incomplete type 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
  219 |   class __fundamental_type_info : public std::type_info
      |                                               ^~~~~~~~~
In file included from /usr/include/c++/11/cxxabi.h:52,
                 from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/bits/cxxabi_init_exception.h:52:9: note: forward declaration of 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
   52 |   class type_info;
      |         ^~~~~~~~~
In file included from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/cxxabi.h: In constructor 'pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__fundamental_type_info::__fundamental_type_info(const char*)':
/usr/include/c++/11/cxxabi.h:223:53: error: type 'pxrInternal_v0_21__pxrReserved__::std::type_info' is not a direct base of 'pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__fundamental_type_info'
  223 |     __fundamental_type_info(const char* __n) : std::type_info(__n) { }
      |                                                     ^~~~~~~~~
/usr/include/c++/11/cxxabi.h: At global scope:
/usr/include/c++/11/cxxabi.h:230:41: error: invalid use of incomplete type 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
  230 |   class __array_type_info : public std::type_info
      |                                         ^~~~~~~~~
In file included from /usr/include/c++/11/cxxabi.h:52,
                 from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/bits/cxxabi_init_exception.h:52:9: note: forward declaration of 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
   52 |   class type_info;
      |         ^~~~~~~~~
In file included from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/cxxabi.h: In constructor 'pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__array_type_info::__array_type_info(const char*)':
/usr/include/c++/11/cxxabi.h:234:47: error: type 'pxrInternal_v0_21__pxrReserved__::std::type_info' is not a direct base of 'pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__array_type_info'
  234 |     __array_type_info(const char* __n) : std::type_info(__n) { }
      |                                               ^~~~~~~~~
/usr/include/c++/11/cxxabi.h: At global scope:
/usr/include/c++/11/cxxabi.h:241:44: error: invalid use of incomplete type 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
  241 |   class __function_type_info : public std::type_info
      |                                            ^~~~~~~~~
In file included from /usr/include/c++/11/cxxabi.h:52,
                 from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/bits/cxxabi_init_exception.h:52:9: note: forward declaration of 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
   52 |   class type_info;
      |         ^~~~~~~~~
In file included from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/cxxabi.h: In constructor 'pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__function_type_info::__function_type_info(const char*)':
/usr/include/c++/11/cxxabi.h:245:50: error: type 'pxrInternal_v0_21__pxrReserved__::std::type_info' is not a direct base of 'pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__function_type_info'
  245 |     __function_type_info(const char* __n) : std::type_info(__n) { }
      |                                                  ^~~~~~~~~
/usr/include/c++/11/cxxabi.h: At global scope:
/usr/include/c++/11/cxxabi.h:257:40: error: invalid use of incomplete type 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
  257 |   class __enum_type_info : public std::type_info
      |                                        ^~~~~~~~~
In file included from /usr/include/c++/11/cxxabi.h:52,
                 from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/bits/cxxabi_init_exception.h:52:9: note: forward declaration of 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
   52 |   class type_info;
      |         ^~~~~~~~~
In file included from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/cxxabi.h: In constructor 'pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__enum_type_info::__enum_type_info(const char*)':
/usr/include/c++/11/cxxabi.h:261:46: error: type 'pxrInternal_v0_21__pxrReserved__::std::type_info' is not a direct base of 'pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__enum_type_info'
  261 |     __enum_type_info(const char* __n) : std::type_info(__n) { }
      |                                              ^~~~~~~~~
/usr/include/c++/11/cxxabi.h: At global scope:
/usr/include/c++/11/cxxabi.h:268:41: error: invalid use of incomplete type 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
  268 |   class __pbase_type_info : public std::type_info
      |                                         ^~~~~~~~~
In file included from /usr/include/c++/11/cxxabi.h:52,
                 from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/bits/cxxabi_init_exception.h:52:9: note: forward declaration of 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
   52 |   class type_info;
      |         ^~~~~~~~~
In file included from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/cxxabi.h: In constructor 'pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__pbase_type_info::__pbase_type_info(const char*, int, const pxrInternal_v0_21__pxrReserved__::std::type_info*)':
/usr/include/c++/11/cxxabi.h:277:12: error: type 'pxrInternal_v0_21__pxrReserved__::std::type_info' is not a direct base of 'pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__pbase_type_info'
  277 |     : std::type_info(__n), __flags(__quals), __pointee(__type)
      |            ^~~~~~~~~
/usr/include/c++/11/cxxabi.h: In member function 'virtual bool pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__pbase_type_info::__pointer_catch(const pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__pbase_type_info*, void**, unsigned int) const':
/usr/include/c++/11/cxxabi.h:316:21: error: invalid use of incomplete type 'const class pxrInternal_v0_21__pxrReserved__::std::type_info'
  316 |     return __pointee->__do_catch (thrown_type->__pointee, thr_obj, outer + 2);
      |                     ^~
In file included from /usr/include/c++/11/cxxabi.h:52,
                 from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/bits/cxxabi_init_exception.h:52:9: note: forward declaration of 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
   52 |   class type_info;
      |         ^~~~~~~~~
[ 38%] Building CXX object pxr/base/arch/CMakeFiles/arch.dir/env.cpp.o
cd /builddir/build/BUILD/USD-21.02/x86_64-redhat-linux-gnu/pxr/base/arch && /usr/bin/g++ -DARCH_EXPORTS=1 -DBOOST_PYTHON_NO_PY_SIGNATURES -DGLX_GLXEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES -DMFB_ALT_PACKAGE_NAME=arch -DMFB_PACKAGE_MODULE=Arch -DMFB_PACKAGE_NAME=arch -DPXR_BUILD_LOCATION=usd -DPXR_INSTALL_LOCATION=/usr/lib64/usd/plugin -DPXR_OCIO_PLUGIN_ENABLED -DPXR_OIIO_PLUGIN_ENABLED -DPXR_OPENVDB_SUPPORT_ENABLED -DPXR_PLUGIN_BUILD_LOCATION=..//usr/lib64/usd/plugin -DPXR_PYTHON_ENABLED=1 -DPXR_PYTHON_MODULES_ENABLED=1 -Darch_EXPORTS -I/builddir/build/BUILD/USD-21.02/x86_64-redhat-linux-gnu/include -Wall -pthread -Wno-deprecated -Wno-deprecated-declarations -Wno-unused-local-typedefs -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,--as-needed -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 -fPIC -std=c++14 -o CMakeFiles/arch.dir/env.cpp.o -c /builddir/build/BUILD/USD-21.02/pxr/base/arch/env.cpp
In file included from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/cxxabi.h: At global scope:
/usr/include/c++/11/cxxabi.h:410:41: error: invalid use of incomplete type 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
  410 |   class __class_type_info : public std::type_info
      |                                         ^~~~~~~~~
In file included from /usr/include/c++/11/cxxabi.h:52,
                 from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/bits/cxxabi_init_exception.h:52:9: note: forward declaration of 'class pxrInternal_v0_21__pxrReserved__::std::type_info'
   52 |   class type_info;
      |         ^~~~~~~~~
In file included from /builddir/build/BUILD/USD-21.02/pxr/base/arch/demangle.cpp:141:
/usr/include/c++/11/cxxabi.h:458:22: error: 'type_info' does not name a type
  458 |     __do_catch(const type_info* __thr_type, void** __thr_obj,
      |                      ^~~~~~~~~
/usr/include/c++/11/cxxabi.h: In constructor 'pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__class_type_info::__class_type_info(const char*)':
/usr/include/c++/11/cxxabi.h:414:43: error: class 'pxrInternal_v0_21__pxrReserved__::__cxxabiv1::__class_type_info' does not have any field named 'type_info'
  414 |     __class_type_info (const char *__n) : type_info(__n) { }
      |                                           ^~~~~~~~~
/usr/include/c++/11/cxxabi.h: At global scope:
/usr/include/c++/11/cxxabi.h:705:3: error: expected class-name before '{' token
  705 |   {
      |   ^

Comment 8 Ben Beasley 2021-01-24 13:38:20 UTC
This would be a great package to get into Fedora. I’m not sure how to fix the build failure at a glance, but I’m going to keep an eye on this issue and will consider doing the review once it is resolved.

Comment 9 Luya Tshimbalanga 2021-01-25 06:20:41 UTC
Thanks. The previous version built successfully before so it is a compiler issue.

Comment 10 Ben Beasley 2021-02-02 14:51:42 UTC
I tried again to see if anything had changed; now there is a problem with openshadinglanguage in Rawhide:

> Error: 
>  Problem 1: package openshadinglanguage-devel-1.11.10.0-6.fc34.x86_64 requires liboslexec.so.1.11()(64bit), but none of the providers can be installed
>   - package openshadinglanguage-devel-1.11.10.0-6.fc34.x86_64 requires liboslquery.so.1.11()(64bit), but none of the providers can be installed
>   - package openshadinglanguage-devel-1.11.10.0-6.fc34.x86_64 requires liboslcomp.so.1.11()(64bit), but none of the providers can be installed
>   - package openshadinglanguage-devel-1.11.10.0-6.fc34.x86_64 requires liboslnoise.so.1.11()(64bit), but none of the providers can be installed
>   - package openshadinglanguage-devel-1.11.10.0-6.fc34.x86_64 requires libtestshade.so.1.11()(64bit), but none of the providers can be installed
>   - package openshadinglanguage-devel-1.11.10.0-6.fc34.x86_64 requires openshadinglanguage-libs(x86-64) = 1.11.10.0-6.fc34, but none of the providers can be installed
>   - conflicting requests
>   - nothing provides libboost_thread.so.1.73.0()(64bit) needed by openshadinglanguage-libs-1.11.10.0-6.fc34.x86_64
>  Problem 2: package openshadinglanguage-1.11.10.0-6.fc34.x86_64 requires liboslexec.so.1.11()(64bit), but none of the providers can be installed
>   - package openshadinglanguage-1.11.10.0-6.fc34.x86_64 requires liboslquery.so.1.11()(64bit), but none of the providers can be installed
>   - package openshadinglanguage-1.11.10.0-6.fc34.x86_64 requires liboslcomp.so.1.11()(64bit), but none of the providers can be installed
>   - conflicting requests
>   - nothing provides libboost_thread.so.1.73.0()(64bit) needed by openshadinglanguage-libs-1.11.10.0-6.fc34.x86_64

This should get sorted out soon, since the mass rebuild just concluded. I’m guessing openshadinglanguage FTBFS with the new Boost.

Probably we’ll be back to the same build failure at that point, but who knows‽

Comment 11 Mamoru TASAKA 2021-02-05 07:46:38 UTC
F-34 build tree now has openshadinglanguage-1.11.10.0-8.fc34 and dependency conflict against boost is now resolved.

Now compiling usd-21.02-1.fc34.src.rpm shows the same error on comment 7:
https://koji.fedoraproject.org/koji/taskinfo?taskID=61358957

... and it seems that this error can be fixed with:

```
--- USD-21.02/pxr/base/arch/demangle.cpp.orig   2021-01-20 09:13:57.000000000 +0900
+++ USD-21.02/pxr/base/arch/demangle.cpp        2021-02-05 16:37:27.154126908 +0900
@@ -36,6 +36,7 @@ using std::string;
 #if (ARCH_COMPILER_GCC_MAJOR == 3 && ARCH_COMPILER_GCC_MINOR >= 1) || \
     ARCH_COMPILER_GCC_MAJOR > 3 || defined(ARCH_COMPILER_CLANG)
 #define _AT_LEAST_GCC_THREE_ONE_OR_CLANG
+#include <cxxabi.h>
 #endif
 
 PXR_NAMESPACE_OPEN_SCOPE
@@ -138,7 +139,6 @@ _StripPxrInternalNamespace(string* name)
 #endif
 
 #if defined(_AT_LEAST_GCC_THREE_ONE_OR_CLANG)
-#include <cxxabi.h>
 
 /*
  * This routine doesn't work when you get to gcc3.4.
```

I guess including system header later in the source confuses namespace, because this source uses "using namespace" and PXR_NAMESPACE_OPEN_SCOPE .

Comment 12 Mamoru TASAKA 2021-02-05 11:04:49 UTC
Note that there is another error:

```
/builddir/build/BUILD/USD-21.02/pxr/base/work/singularTask.h:123:21: error: 'size_t' was not declared in this scope; did you mean 'std::size_t'?
  123 |                     size_t old = count;
      |                     ^~~~~~
      |                     std::size_t
In file included from /usr/include/c++/11/bits/atomic_base.h:35,
                 from /usr/include/c++/11/atomic:41,
                 from /builddir/build/BUILD/USD-21.02/pxr/base/work/singularTask.h:31,
                 from /builddir/build/BUILD/USD-21.02/pxr/base/work/singularTask.cpp:24:
/usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h:2427:33: note: 'std::size_t' declared here
 2427 |   typedef __SIZE_TYPE__         size_t;
      |                                 ^~~~~~
```

Comment 13 Luya Tshimbalanga 2021-02-05 16:34:13 UTC
(In reply to Mamoru TASAKA from comment #11)
> F-34 build tree now has openshadinglanguage-1.11.10.0-8.fc34 and dependency
> conflict against boost is now resolved.
> 
> Now compiling usd-21.02-1.fc34.src.rpm shows the same error on comment 7:
> https://koji.fedoraproject.org/koji/taskinfo?taskID=61358957
> 
> ... and it seems that this error can be fixed with:
> 
> ```
> --- USD-21.02/pxr/base/arch/demangle.cpp.orig   2021-01-20
> 09:13:57.000000000 +0900
> +++ USD-21.02/pxr/base/arch/demangle.cpp        2021-02-05
> 16:37:27.154126908 +0900
> @@ -36,6 +36,7 @@ using std::string;
>  #if (ARCH_COMPILER_GCC_MAJOR == 3 && ARCH_COMPILER_GCC_MINOR >= 1) || \
>      ARCH_COMPILER_GCC_MAJOR > 3 || defined(ARCH_COMPILER_CLANG)
>  #define _AT_LEAST_GCC_THREE_ONE_OR_CLANG
> +#include <cxxabi.h>
>  #endif
>  
>  PXR_NAMESPACE_OPEN_SCOPE
> @@ -138,7 +139,6 @@ _StripPxrInternalNamespace(string* name)
>  #endif
>  
>  #if defined(_AT_LEAST_GCC_THREE_ONE_OR_CLANG)
> -#include <cxxabi.h>
>  
>  /*
>   * This routine doesn't work when you get to gcc3.4.
> ```


The patch worked. Here is the updated
SPEC: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-rawhide-x86_64/01945941-usd/usd.spec
SRPM: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-rawhide-x86_64/01945941-usd/usd-21.02-3.fc34.src.rpm


The resulted successfull build is on https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-rawhide-x86_64/01945941-usd/

Comment 14 Ben Beasley 2021-02-07 01:28:47 UTC
I’m not quite ready to commit to being the reviewer for this package.
Please consider this a “preliminary review” in advance of review by myself
or by someone else.

There’s a lot going on in this package, and there is room for me to have
missed, or to be wrong about, something below, or for reasonable disagreement
about any number of details.

- Reported by fedora-review:
  Header files in -devel subpackage, if present.
  Note: usd : /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h usd
  : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h usd
  : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h usd :
  /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h usd-
  libs : /usr/lib64/usd/usd/resources/codegenTemplates/api.h usd-libs :
  /usr/lib64/usd/usd/resources/codegenTemplates/schemaClass.h usd-libs :
  /usr/lib64/usd/usd/resources/codegenTemplates/tokens.h
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_devel_packages

  The examples are certainly okay, and the others are used as templates for
  code generation, so I think this is fine.

- The shared libraries do not have SONAMEs set; the unversioned .so files
  packaged in -devel are the actual libraries that should be in -libs, and
  there are no libraries in -libs at all!

  There was some previous discussion of this, but I am still not convinced
  this is right. These libraries correspond to the headers in -devel; if
  those are public headers then these are public libraries and should be
  installed in -libs. And in that case, they need so-versions and symlinks.
  At least, that’s how it seems.

- Bundled libraries must be handled according to
  https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling.

  * pxr/base/tf/pxrLZ4/ contains a bundled copy of https://github.com/lz4/lz4,
    which is the lz4 package in Fedora. Pixar has forked it by “C++-ifying” it
    (adding namespaces and removing C linkage). Reading the lz4 version number
    out of lz4.h, you need to add

      Provides: bundled(lz4) = 1.9.2

    Then you are required to publicly contact upstream (e.g. by GitHub issue)
    about a path to supporting system libraries. If upstream refuses, this must
    be recorded in the spec file, either in comments placed adjacent to the
    Provides: above, or in an additional file checked into the SCM and
    referenced by a comment placed adjacent to the Provides: above.

  * pxr/base/js/rapidjson/ is a bundled copy of
    https://github.com/Tencent/rapidjson. Again, figure out how to unbundle it
    or contact upstream and add (reading the version from
    pxr/base/js/rapidjson/rapidjson.h):

      Provides: bundled(rapidjson) = 1.0.2

  * pxr/base/tf/pxrDoubleConversion/ is a bundled copy of
    https://github.com/google/double-conversion, forked with namespace patches.
    Contact upstream and add:

      Provides: bundled(double-conversion) = 2.0.0

  * These:
      pxr/base/gf/ilmbase_eLut.h
      pxr/base/gf/ilmbase_half.cpp
      pxr/base/gf/ilmbase_half.h
      pxr/base/gf/ilmbase_halfLimits.h
      pxr/base/gf/ilmbase_half.patch
      pxr/base/gf/ilmbase_half.README
      pxr/base/gf/ilmbase_toFloat.h

    are bundled from the ilmbase part of OpenEXR,
    https://github.com/AcademySoftwareFoundation/openexr/. Reading the version
    from the README, contact upstream and add:

      Provides: bundled(ilmbase) = 2.5.3

  * third_party/renderman-23/plugin/rmanArgsParser/pugixml/ is a bundled copy
    of https://github.com/zeux/pugixml/; contact upstream and add

      Provides: bundled(pugixml) = 1.9

  * pxr/base/tf/pyLock.cpp contains code from
    https://github.com/pankajp/pygilstate_check, but it is only a handful of
    lines, and it hardly seems we should track it as a bundled library.

  * pxr/imaging/hio/stb contains three bundled and patched libraries,
    https://github.com/nothings/stb/blob/master/stb_image.h,
    https://github.com/nothings/stb/blob/master/stb_image_write.h, and
    https://github.com/nothings/stb/blob/master/stb_image_resize.h. Contact
    upstream and add:

      Provides: bundled(stb_image) = 2.19
      Provides: bundled(stb_image_resize) = 0.95
      Provides: bundled(stb_image_write) = 1.09

  * LICENSE.txt credits “Vulkan C++ examples and demos (dome light texture
    filtering)”, but I cannot find which source files are relevant.
  * LICENSE.txt credits “pbrt (Hammersley Low-Discrepancy Sampling Sequence)”,
    which refers to https://pbrt.org/, but there does not appear to be any
    obvious actual bundling.

  * LICENSE.txt claims USD bundles https://github.com/google/draco, but in fact
    the optional Draco plugin builds against an external Draco.

  * pxr/imaging/hgiVulkan/vk_mem_alloc.h is a bundled copy of
    https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator. Contact
    upstream and add:

      Provides: bundled(VulkanMemoryAllocator) = 3.0.0~development

  * pxr/imaging/hgiVulkan/spirv_reflect.h and
    pxr/imaging/hgiVulkan/spirv_reflect.cpp are a bundled copy of
    https://github.com/KhronosGroup/SPIRV-Reflect. Contact upstream and add

      Provides: bundled(SPIRV-Reflect) = 1.0

  Make sure to update the versions on any virtual Provides when you update the
  overall package.

- There are parts of the package with license other than the overall license of
  ASL 2.0; you must follow
  https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#_multiple_licensing_scenarios,
  updating the License field and providing a breakdown of licensing. See the
  linked guidelines section for three ways to do this. Note that even the main
  LICENSE.txt describes components under multiple licenses.

  The overall license appears to be

    ASL 2.0 and BSD and MIT and (MIT or Unlicense)

  as broken down in the following.

  * While licensecheck detect GPLv3+ in

      USD-21.02/pxr/usd/sdf/path.tab.cpp
      USD-21.02/pxr/usd/sdf/path.tab.h
      USD-21.02/pxr/usd/sdf/textFileFormat.tab.cpp
      USD-21.02/pxr/usd/sdf/textFileFormat.tab.h
      USD-21.02/third_party/renderman-23/plugin/hdPrman/virtualStructConditionalGrammar.tab.cpp
      USD-21.02/third_party/renderman-23/plugin/hdPrman/virtualStructConditionalGrammar.tab.h

    the exception

      /* As a special exception, you may create a larger work that contains
         part or all of the Bison parser skeleton and distribute that work
         under terms of your choice, so long as that work isn't itself a
         parser generator using the skeleton or a modified version thereof
         as a parser skeleton.  Alternatively, if you modify or redistribute
         the parser skeleton itself, you may (at your option) remove this
         special exception, which will cause the skeleton and the resulting
         Bison output files to be licensed under the GNU General Public
         License without this special exception.

         This special exception was added by the Free Software Foundation in
         version 2.2 of Bison.  */

    applies and therefore only the ASL 2.0 license in the first license header
    is relevant. See
    https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/thread/E7RRI4KTODK3QS4XI7KJH4P2RT4FJNB3/
    for confirmation.

  * The bundled pxr/base/tf/pxrLZ4/, mentioned in the previous issue, is
    BSD-licensed.

  * Most of the bundled pxr/base/js/rapidjson/, mentioned in the previous
    issue, is MIT-licensed, except pxr/base/js/rapidjson/msinttypes/ which are
    BSD-licensed (albeit Visual Studio-specific). (It does not include the
    bin/jsonchecker code that would be under the nonfree JSON License, which is
    good.)

  * The bundled pxr/base/tf/pxrDoubleConversion/, mentioned in the previous issue, is
    BSD-licensed.

  * The bundled pxr/base/gf/ilmbase_*, mentioned in the previous issue, is
    BSD-licensed.

  * cmake/modules/FindTBB.cmake is MIT-licensed, but only used to control the
    build and therefore does not contribute to the built RPM license

  * third_party/renderman-23/plugin/rmanArgsParser/pugixml/ is MIT-licensed

  * pxr/base/tf/pyLock.cpp is ASL 2.0 but the code after

      // See https://github.com/pankajp/pygilstate_check

    is MIT.

  * pxr/imaging/garch/khrplatform.h is labeled “Khronos License” by
    licensecheck, but it is just MIT

  * pxr/imaging/hio/stb/ is MIT or Unlicense

  * pxr/base/arch/debugger.cpp contains an AmIBeingDebugged() function from
    https://developer.apple.com/library/content/qa/qa1361/_index.html under a
    license given in the top-level LICENSE.txt. It looks open-source but I do
    not recognize it. Normally we would need to email
    legal@lists.fedoraproject.org for an opinion (and a license name if it is a
    new acceptable license) but since this code is only compiled on Darwin
    platforms it does not affect the overall license field on Fedora and I
    think we can skip this exercise.

  * pxr/imaging/hgiVulkan/vk_mem_alloc.h is MIT

- Are you intending to build python3-usd? Why is the build conditional
  currently off? Note that this provides a lot more than usdview; it is also
  required for quite a few command-line tools.

  I tried it and the build bailed out with

    -- Found PySide2 but NOT pyside-uic binary
    CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
      Could NOT find PySide (missing: PYSIDE_AVAILABLE)
    Call Stack (most recent call first):
      /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:458 (_FPHSA_FAILURE_MESSAGE)
      cmake/modules/FindPySide.cmake:75 (find_package_handle_standard_args)
      cmake/defaults/Packages.cmake:273 (find_package)
      CMakeLists.txt:23 (include)

  but this is fixable; see https://bugzilla.redhat.com/show_bug.cgi?id=1882270. You
  can just change
         -DPYSIDEUICBINARY="%{_bindir}/pyside2-uic" \
  to
         -DPYSIDEUICBINARY="%{_bindir}/uic-qt5" \
  and add
      BuildRequires: qt5-qtbase-devel
  to the Python subpackage.

  Of course, once you have a GUI application (usdview is one, I think?) you will
  need a .desktop file https://docs.fedoraproject.org/en-US/packaging-guidelines/#_desktop_files
  and AppData https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/.

  Furthermore, it seems like the installation of the Python packages is really, really broken
  when I try to enable it, so I guess there would be more work needed if the Python parts were
  to be packaged.

- Does the documentation build easily if you set PXR_BUILD_DOCUMENTATION=TRUE and
  add BR’s on doxygen and graphviz? A real -doc subpackage with full documentation
  would be a nice addition.

- Above the ExclusiveArch, please try to explain in a little more detail why
  the package must be x86_64-only. I agree that this looks like it is the case.
  Once the package is approved, you must create Bugzilla bugs blocking the
  various ExcludeArch tracker bugs, even if you close them immediately as
  WONTFIX. See
  https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures.

- Please change

    Requires:       %{name}%{?_isa} = %{version}

  to

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

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

  Note also that the -devel package should really require

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

  instead, and perhaps the base package should as well.

- There is no %check section; did you try building the tests?

- Please remove

    # Explicity define python macro to avoid unversioned python
    %define         __python /usr/bin/python3

  because nothing should be using an unversioned %__python. (Also, prefer
  %global to %define.)

  Also, change

    BuildRequires: python-rpm-macros

  to

    BuildRequires: python3-devel

   and replace %{python_sitearch} with %{python3_sitearch}, which together fix
   the reason you wanted an unversioned %__python in the first place.

- Is Python really found using pkg-config? Maybe just drop this?

    BuildRequires:  pkgconfig(python3)

- Note that you can use (but are not required to use)
  https://src.fedoraproject.org/rpms/pyproject-rpm-macros to get automatically
  generated Python BR’s.

- Please convert NOTICE.txt from CRNL line encoding. Add

    BuildRequires: dos2unix

  and in %prep,

    dos2unix NOTICE.txt

- Please add

    find %{buildroot}%{_datadir}/%{name}/examples -name '*.so' -print -delete

  or just

    rm %{buildroot}%{_datadir}/%{name}/examples/plugin/hdTiny.so

  to remove

    /usr/share/usd/examples/plugin/hdTiny.so

  because there should not be arch-specific code in /usr/share.

- Please fix mixed tabs and spaces in spec file, e.g.

    sed -r -i 's/\t/        /g' usd.spec

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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[!]: 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.

     See Issues. These are real libraries, not symlinks, and it is not clear
     that they are correctly handled.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Package does not contain any libtool archives (.la)
[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.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "Khronos License Expat License Apache
     License 2.0", "Apache License 2.0", "Expat License", "BSD 3-clause
     "New" or "Revised" License", "Apache License 2.0 [generated file]",
     "Khronos License", "Apache License 2.0 GNU General Public License v3.0
     or later", "BSD 2-clause "Simplified" License", "the Unlicense Expat
     License", "*No copyright* Apache License 2.0". 2550 files have unknown
     license. Detailed output of licensecheck in
     /home/reviewer/1895567-usd/20210205/1895567-usd/licensecheck.txt

     Multiple licenses; see Issues above.

[x]: License file installed when any subpackage combination is installed.
[x]: %build honors applicable compiler flags or justifies otherwise.

     As far as I can tell...

[!]: Package contains no bundled libraries without FPC exception.

     FPC exception no longer required per
     https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling, but
     guidelines must be followed. See Issues for details.

[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: 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.
[!]: Package is not known to require an ExcludeArch tag.

     Follow
     https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures.
     See Issues.

[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 245760 bytes in 7 files.

     OK unless you start building more documentation.

[x]: Package complies to the Packaging Guidelines

     (except as 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]: 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]: Macros in Summary, %description expandable at SRPM build time.
[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

===== 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.
[x]: Final provides and requires are sane (see attachments).
[!]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in usd-libs
     , usd-devel

     Need -%{release}; -devel should require -libs, and maybe the base package
     should too.

[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[!]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[!]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: %define __python
     /usr/bin/python3
[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]: 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]: Package should compile and build into binary rpms on all supported
     architectures.

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

Generic:
[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]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: usd-21.02-3.fc34.x86_64.rpm
          usd-libs-21.02-3.fc34.x86_64.rpm
          usd-devel-21.02-3.fc34.x86_64.rpm
          usd-debuginfo-21.02-3.fc34.x86_64.rpm
          usd-debugsource-21.02-3.fc34.x86_64.rpm
          usd-21.02-3.fc34.src.rpm
usd.x86_64: E: arch-dependent-file-in-usr-share /usr/share/usd/examples/plugin/hdTiny.so
usd.x86_64: W: wrong-file-end-of-line-encoding /usr/share/doc/usd/NOTICE.txt
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
usd.x86_64: W: no-manual-page-for-binary sdfdump
usd.x86_64: W: no-manual-page-for-binary sdffilter
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/api.h
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/schemaClass.cpp
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/schemaClass.h
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/tokens.cpp
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/tokens.h
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/wrapSchemaClass.cpp
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/wrapTokens.cpp
usd-libs.x86_64: W: wrong-file-end-of-line-encoding /usr/share/doc/usd-libs/NOTICE.txt
usd-devel.x86_64: E: invalid-soname /usr/lib64/libar.so libar.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libarch.so libarch.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libcameraUtil.so libcameraUtil.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libgarch.so libgarch.so
usd-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libgarch.so exit@GLIBC_2.2.5
usd-devel.x86_64: E: invalid-soname /usr/lib64/libgf.so libgf.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libglf.so libglf.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhd.so libhd.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhdSt.so libhdSt.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhdx.so libhdx.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhf.so libhf.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhgi.so libhgi.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhgiGL.so libhgiGL.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhgiInterop.so libhgiInterop.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhio.so libhio.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libjs.so libjs.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libkind.so libkind.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libndr.so libndr.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libpcp.so libpcp.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libplug.so libplug.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libpxOsd.so libpxOsd.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libsdf.so libsdf.so
usd-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libsdf.so exit@GLIBC_2.2.5
usd-devel.x86_64: E: invalid-soname /usr/lib64/libsdr.so libsdr.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libtf.so libtf.so
usd-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libtf.so exit@GLIBC_2.2.5
usd-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libtf.so _exit@GLIBC_2.2.5
usd-devel.x86_64: E: invalid-soname /usr/lib64/libtrace.so libtrace.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusd.so libusd.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdAppUtils.so libusdAppUtils.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdGeom.so libusdGeom.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdHydra.so libusdHydra.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdImaging.so libusdImaging.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdImagingGL.so libusdImagingGL.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdLux.so libusdLux.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdMedia.so libusdMedia.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdRender.so libusdRender.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdRi.so libusdRi.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdRiImaging.so libusdRiImaging.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdShade.so libusdShade.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdSkel.so libusdSkel.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdSkelImaging.so libusdSkelImaging.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdUI.so libusdUI.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdUtils.so libusdUtils.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdVol.so libusdVol.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdVolImaging.so libusdVolImaging.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libvt.so libvt.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libwork.so libwork.so
usd.src:5: W: mixed-use-of-spaces-and-tabs (spaces: line 2, tab: line 5)
6 packages and 0 specfiles checked; 45 errors, 20 warnings.




Rpmlint (debuginfo)
-------------------
Checking: usd-debuginfo-21.02-3.fc34.x86_64.rpm
          usd-devel-debuginfo-21.02-3.fc34.x86_64.rpm
          usd-libs-debuginfo-21.02-3.fc34.x86_64.rpm
3 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/api.h
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/schemaClass.cpp
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/schemaClass.h
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/tokens.cpp
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/tokens.h
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/wrapSchemaClass.cpp
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/wrapTokens.cpp
usd-libs.x86_64: W: wrong-file-end-of-line-encoding /usr/share/doc/usd-libs/NOTICE.txt
usd.x86_64: E: arch-dependent-file-in-usr-share /usr/share/usd/examples/plugin/hdTiny.so
usd.x86_64: W: wrong-file-end-of-line-encoding /usr/share/doc/usd/NOTICE.txt
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
usd.x86_64: W: no-manual-page-for-binary sdfdump
usd.x86_64: W: no-manual-page-for-binary sdffilter
usd-devel.x86_64: E: invalid-soname /usr/lib64/libar.so libar.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libarch.so libarch.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libcameraUtil.so libcameraUtil.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libgarch.so libgarch.so
usd-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libgarch.so exit@GLIBC_2.2.5
usd-devel.x86_64: E: invalid-soname /usr/lib64/libgf.so libgf.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libglf.so libglf.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhd.so libhd.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhdSt.so libhdSt.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhdx.so libhdx.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhf.so libhf.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhgi.so libhgi.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhgiGL.so libhgiGL.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhgiInterop.so libhgiInterop.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhio.so libhio.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libjs.so libjs.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libkind.so libkind.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libndr.so libndr.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libpcp.so libpcp.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libplug.so libplug.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libpxOsd.so libpxOsd.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libsdf.so libsdf.so
usd-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libsdf.so exit@GLIBC_2.2.5
usd-devel.x86_64: E: invalid-soname /usr/lib64/libsdr.so libsdr.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libtf.so libtf.so
usd-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libtf.so exit@GLIBC_2.2.5
usd-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libtf.so _exit@GLIBC_2.2.5
usd-devel.x86_64: E: invalid-soname /usr/lib64/libtrace.so libtrace.so





Rpmlint (installed packages)
----------------------------
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/api.h
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/schemaClass.cpp
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/schemaClass.h
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/tokens.cpp
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/tokens.h
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/wrapSchemaClass.cpp
usd-libs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/usd/usd/resources/codegenTemplates/wrapTokens.cpp
usd-libs.x86_64: W: wrong-file-end-of-line-encoding /usr/share/doc/usd-libs/NOTICE.txt
usd.x86_64: E: arch-dependent-file-in-usr-share /usr/share/usd/examples/plugin/hdTiny.so
usd.x86_64: W: wrong-file-end-of-line-encoding /usr/share/doc/usd/NOTICE.txt
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
usd.x86_64: W: no-manual-page-for-binary sdfdump
usd.x86_64: W: no-manual-page-for-binary sdffilter
usd-devel.x86_64: E: invalid-soname /usr/lib64/libar.so libar.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libarch.so libarch.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libcameraUtil.so libcameraUtil.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libgarch.so libgarch.so
usd-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libgarch.so exit@GLIBC_2.2.5
usd-devel.x86_64: E: invalid-soname /usr/lib64/libgf.so libgf.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libglf.so libglf.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhd.so libhd.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhdSt.so libhdSt.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhdx.so libhdx.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhf.so libhf.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhgi.so libhgi.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhgiGL.so libhgiGL.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhgiInterop.so libhgiInterop.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libhio.so libhio.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libjs.so libjs.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libkind.so libkind.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libndr.so libndr.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libpcp.so libpcp.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libplug.so libplug.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libpxOsd.so libpxOsd.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libsdf.so libsdf.so
usd-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libsdf.so exit@GLIBC_2.2.5
usd-devel.x86_64: E: invalid-soname /usr/lib64/libsdr.so libsdr.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libtf.so libtf.so
usd-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libtf.so exit@GLIBC_2.2.5
usd-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libtf.so _exit@GLIBC_2.2.5
usd-devel.x86_64: E: invalid-soname /usr/lib64/libtrace.so libtrace.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusd.so libusd.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdAppUtils.so libusdAppUtils.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdGeom.so libusdGeom.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdHydra.so libusdHydra.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdImaging.so libusdImaging.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdImagingGL.so libusdImagingGL.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdLux.so libusdLux.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdMedia.so libusdMedia.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdRender.so libusdRender.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdRi.so libusdRi.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdRiImaging.so libusdRiImaging.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdShade.so libusdShade.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdSkel.so libusdSkel.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdSkelImaging.so libusdSkelImaging.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdUI.so libusdUI.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdUtils.so libusdUtils.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdVol.so libusdVol.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libusdVolImaging.so libusdVolImaging.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libvt.so libvt.so
usd-devel.x86_64: E: invalid-soname /usr/lib64/libwork.so libwork.so
7 packages and 0 specfiles checked; 45 errors, 19 warnings.



Unversioned so-files
--------------------
usd: /usr/share/usd/examples/plugin/hdTiny.so
usd-libs: /usr/lib64/usd/plugin/hdEmbree.so
usd-libs: /usr/lib64/usd/plugin/hdStorm.so
usd-libs: /usr/lib64/usd/plugin/hioOiio.so
usd-libs: /usr/lib64/usd/plugin/sdrGlslfx.so
usd-libs: /usr/lib64/usd/plugin/sdrOsl.so
usd-libs: /usr/lib64/usd/plugin/usdAbc.so
usd-libs: /usr/lib64/usd/plugin/usdShaders.so

Source checksums
----------------
https://github.com/PixarAnimationStudios/usd/archive/v21.02/usd-21.02.tar.gz :
  CHECKSUM(SHA256) this package     : 97bbae5d86d6e4db357645db183be03afe28fe024b242f27bd4f62b4e2eade53
  CHECKSUM(SHA256) upstream package : 97bbae5d86d6e4db357645db183be03afe28fe024b242f27bd4f62b4e2eade53


Requires
--------
usd (rpmlib, GLIBC filtered):
    libarch.so()(64bit)
    libboost_program_options.so.1.75.0()(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)
    libhd.so()(64bit)
    libhf.so()(64bit)
    libsdf.so()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libtf.so()(64bit)
    libvt.so()(64bit)
    rtld(GNU_HASH)

usd-libs (rpmlib, GLIBC filtered):
    libAlembic.so.1.7()(64bit)
    libHalf-2_5.so.25()(64bit)
    libOpenImageIO.so.2.2()(64bit)
    libar.so()(64bit)
    libarch.so()(64bit)
    libc.so.6()(64bit)
    libcameraUtil.so()(64bit)
    libembree3.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgf.so()(64bit)
    libhd.so()(64bit)
    libhdSt.so()(64bit)
    libhf.so()(64bit)
    libhio.so()(64bit)
    libm.so.6()(64bit)
    libndr.so()(64bit)
    liboslquery.so.1.11()(64bit)
    libplug.so()(64bit)
    libpthread.so.0()(64bit)
    libpxOsd.so()(64bit)
    libsdf.so()(64bit)
    libsdr.so()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libtbb.so.2()(64bit)
    libtf.so()(64bit)
    libtrace.so()(64bit)
    libusd.so()(64bit)
    libusdGeom.so()(64bit)
    libusdShade.so()(64bit)
    libvt.so()(64bit)
    libwork.so()(64bit)
    rtld(GNU_HASH)

usd-devel (rpmlib, GLIBC filtered):
    cmake-filesystem(x86-64)
    ld-linux-x86-64.so.2()(64bit)
    libGL.so.1()(64bit)
    libHalf-2_5.so.25()(64bit)
    libOpenColorIO.so.1()(64bit)
    libX11.so.6()(64bit)
    libar.so()(64bit)
    libarch.so()(64bit)
    libc.so.6()(64bit)
    libcameraUtil.so()(64bit)
    libdl.so.2()(64bit)
    libgarch.so()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgf.so()(64bit)
    libglf.so()(64bit)
    libhd.so()(64bit)
    libhdSt.so()(64bit)
    libhdx.so()(64bit)
    libhf.so()(64bit)
    libhgi.so()(64bit)
    libhgiGL.so()(64bit)
    libhgiInterop.so()(64bit)
    libhio.so()(64bit)
    libjemalloc.so.2()(64bit)
    libjs.so()(64bit)
    libkind.so()(64bit)
    libm.so.6()(64bit)
    libndr.so()(64bit)
    libopenvdb.so.8.0()(64bit)
    libosdCPU.so.3.4.3()(64bit)
    libosdGPU.so.3.4.3()(64bit)
    libpcp.so()(64bit)
    libplug.so()(64bit)
    libpthread.so.0()(64bit)
    libpxOsd.so()(64bit)
    libsdf.so()(64bit)
    libsdr.so()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.1)(64bit)
    libstdc++.so.6(CXXABI_1.3.11)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.7)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libtbb.so.2()(64bit)
    libtf.so()(64bit)
    libtrace.so()(64bit)
    libusd.so()(64bit)
    libusdGeom.so()(64bit)
    libusdImaging.so()(64bit)
    libusdImagingGL.so()(64bit)
    libusdLux.so()(64bit)
    libusdShade.so()(64bit)
    libusdSkel.so()(64bit)
    libusdVol.so()(64bit)
    libvt.so()(64bit)
    libwork.so()(64bit)
    rtld(GNU_HASH)
    usd(x86-64)

usd-debuginfo (rpmlib, GLIBC filtered):

usd-debugsource (rpmlib, GLIBC filtered):



Provides
--------
usd:
    usd
    usd(x86-64)

usd-libs:
    usd-libs
    usd-libs(x86-64)

usd-devel:
    cmake(pxr)
    libar.so()(64bit)
    libarch.so()(64bit)
    libcameraUtil.so()(64bit)
    libgarch.so()(64bit)
    libgf.so()(64bit)
    libglf.so()(64bit)
    libhd.so()(64bit)
    libhdSt.so()(64bit)
    libhdx.so()(64bit)
    libhf.so()(64bit)
    libhgi.so()(64bit)
    libhgiGL.so()(64bit)
    libhgiInterop.so()(64bit)
    libhio.so()(64bit)
    libjs.so()(64bit)
    libkind.so()(64bit)
    libndr.so()(64bit)
    libpcp.so()(64bit)
    libplug.so()(64bit)
    libpxOsd.so()(64bit)
    libsdf.so()(64bit)
    libsdr.so()(64bit)
    libtf.so()(64bit)
    libtrace.so()(64bit)
    libusd.so()(64bit)
    libusdAppUtils.so()(64bit)
    libusdGeom.so()(64bit)
    libusdHydra.so()(64bit)
    libusdImaging.so()(64bit)
    libusdImagingGL.so()(64bit)
    libusdLux.so()(64bit)
    libusdMedia.so()(64bit)
    libusdRender.so()(64bit)
    libusdRi.so()(64bit)
    libusdRiImaging.so()(64bit)
    libusdShade.so()(64bit)
    libusdSkel.so()(64bit)
    libusdSkelImaging.so()(64bit)
    libusdUI.so()(64bit)
    libusdUtils.so()(64bit)
    libusdVol.so()(64bit)
    libusdVolImaging.so()(64bit)
    libvt.so()(64bit)
    libwork.so()(64bit)
    usd-devel
    usd-devel(x86-64)

usd-debuginfo:
    debuginfo(build-id)
    usd-debuginfo
    usd-debuginfo(x86-64)

usd-debugsource:
    usd-debugsource
    usd-debugsource(x86-64)



Generated by fedora-review 0.7.6 (b083f91) last change: 2020-11-10
Command line :/usr/bin/fedora-review -b 1895567
Buildroot used: fedora-rawhide-x86_64
Active plugins: C/C++, Shell-api, Generic
Disabled plugins: PHP, SugarActivity, Ruby, fonts, Python, Java, Perl, R, Ocaml, Haskell
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 15 Luya Tshimbalanga 2021-04-13 15:53:39 UTC
(In reply to Ben Beasley from comment #14)
> I’m not quite ready to commit to being the reviewer for this package.
> Please consider this a “preliminary review” in advance of review by myself
> or by someone else.

Thank for the detaied preliminary review
> 
> There’s a lot going on in this package, and there is room for me to have
> missed, or to be wrong about, something below, or for reasonable disagreement
> about any number of details.
> 
> - Reported by fedora-review:
>   Header files in -devel subpackage, if present.
>   Note: usd : /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h usd
>   : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h usd
>   : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h usd :
>   /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h usd-
>   libs : /usr/lib64/usd/usd/resources/codegenTemplates/api.h usd-libs :
>   /usr/lib64/usd/usd/resources/codegenTemplates/schemaClass.h usd-libs :
>   /usr/lib64/usd/usd/resources/codegenTemplates/tokens.h
>   See: https://docs.fedoraproject.org/en-US/packaging-
>   guidelines/#_devel_packages
> 
>   The examples are certainly okay, and the others are used as templates for
>   code generation, so I think this is fine.
> 
> - The shared libraries do not have SONAMEs set; the unversioned .so files
>   packaged in -devel are the actual libraries that should be in -libs, and
>   there are no libraries in -libs at all!
> 
>   There was some previous discussion of this, but I am still not convinced
>   this is right. These libraries correspond to the headers in -devel; if
>   those are public headers then these are public libraries and should be
>   installed in -libs. And in that case, they need so-versions and symlinks.
>   At least, that’s how it seems.
> 
>   Make sure to update the versions on any virtual Provides when you update
> the
>   overall package.

Done. Ticket filed upstream on https://github.com/PixarAnimationStudios/USD/issues/1490

> 
> - There are parts of the package with license other than the overall license
> of
>   ASL 2.0; you must follow
>  
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> LicensingGuidelines/#_multiple_licensing_scenarios,
>   updating the License field and providing a breakdown of licensing. See the
>   linked guidelines section for three ways to do this. Note that even the
> main
>   LICENSE.txt describes components under multiple licenses.
> 
>   The overall license appears to be
> 
>     ASL 2.0 and BSD and MIT and (MIT or Unlicense)
> 
>   as broken down in the following.
> 

Fixed. 

> 
> - Are you intending to build python3-usd? Why is the build conditional
>   currently off? Note that this provides a lot more than usdview; it is also
>   required for quite a few command-line tools.
> 
>   I tried it and the build bailed out with
> 
>     -- Found PySide2 but NOT pyside-uic binary
>     CMake Error at
> /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
>       Could NOT find PySide (missing: PYSIDE_AVAILABLE)
>     Call Stack (most recent call first):
>       /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:458
> (_FPHSA_FAILURE_MESSAGE)
>       cmake/modules/FindPySide.cmake:75 (find_package_handle_standard_args)
>       cmake/defaults/Packages.cmake:273 (find_package)
>       CMakeLists.txt:23 (include)
> 
>   but this is fixable; see
> https://bugzilla.redhat.com/show_bug.cgi?id=1882270. You
>   can just change
>          -DPYSIDEUICBINARY="%{_bindir}/pyside2-uic" \
>   to
>          -DPYSIDEUICBINARY="%{_bindir}/uic-qt5" \
>   and add
>       BuildRequires: qt5-qtbase-devel
>   to the Python subpackage.

Fixed with BuildRequires: pkgconfig(Qt5) which pull qt5-qtbase-devel.

> 
>   Of course, once you have a GUI application (usdview is one, I think?) you
> will
>   need a .desktop file
> https://docs.fedoraproject.org/en-US/packaging-guidelines/#_desktop_files
>   and AppData
> https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/.

Noted.

> 
>   Furthermore, it seems like the installation of the Python packages is
> really, really broken
>   when I try to enable it, so I guess there would be more work needed if the
> Python parts were
>   to be packaged.

The python part failed with a syntax error on post installation below:

Bytecompiling .py files below /builddir/build/BUILDROOT/usd-21.02-4.fc34.x86_64/usr/lib/python3.9 using python3.9
*** Error compiling '/builddir/build/BUILDROOT/usd-21.02-4.fc34.x86_64/usr/lib/python3.9/site-packages/pxr/Usdviewq/adjustClippingUI.py'...
  File "/usr/lib/python3.9/site-packages/pxr/Usdviewq/adjustClippingUI.py", line 1
    /********************************************************************************
    ^
SyntaxError: invalid syntax

*** Error compiling '/builddir/build/BUILDROOT/usd-21.02-4.fc34.x86_64/usr/lib/python3.9/site-packages/pxr/Usdviewq/adjustDefaultMaterialUI.py'...
  File "/usr/lib/python3.9/site-packages/pxr/Usdviewq/adjustDefaultMaterialUI.py", line 1
    /********************************************************************************
    ^
SyntaxError: invalid syntax

*** Error compiling '/builddir/build/BUILDROOT/usd-21.02-4.fc34.x86_64/usr/lib/python3.9/site-packages/pxr/Usdviewq/attributeValueEditorUI.py'...
  File "/usr/lib/python3.9/site-packages/pxr/Usdviewq/attributeValueEditorUI.py", line 1
    /********************************************************************************
    ^
SyntaxError: invalid syntax

*** Error compiling '/builddir/build/BUILDROOT/usd-21.02-4.fc34.x86_64/usr/lib/python3.9/site-packages/pxr/Usdviewq/mainWindowUI.py'...
  File "/usr/lib/python3.9/site-packages/pxr/Usdviewq/mainWindowUI.py", line 1
    /********************************************************************************
    ^
SyntaxError: invalid syntax

*** Error compiling '/builddir/build/BUILDROOT/usd-21.02-4.fc34.x86_64/usr/lib/python3.9/site-packages/pxr/Usdviewq/preferencesUI.py'...
  File "/usr/lib/python3.9/site-packages/pxr/Usdviewq/preferencesUI.py", line 1
    /********************************************************************************
    ^
SyntaxError: invalid syntax

*** Error compiling '/builddir/build/BUILDROOT/usd-21.02-4.fc34.x86_64/usr/lib/python3.9/site-packages/pxr/Usdviewq/primLegendUI.py'...
  File "/usr/lib/python3.9/site-packages/pxr/Usdviewq/primLegendUI.py", line 1
    /********************************************************************************
    ^
SyntaxError: invalid syntax

*** Error compiling '/builddir/build/BUILDROOT/usd-21.02-4.fc34.x86_64/usr/lib/python3.9/site-packages/pxr/Usdviewq/propertyLegendUI.py'...
  File "/usr/lib/python3.9/site-packages/pxr/Usdviewq/propertyLegendUI.py", line 1
    /********************************************************************************
    ^
SyntaxError: invalid syntax

error: Bad exit status from /var/tmp/rpm-tmp.a2JBys (%install)
    Bad exit status from /var/tmp/rpm-tmp.a2JBys (%install)


> 
> - Does the documentation build easily if you set
> PXR_BUILD_DOCUMENTATION=TRUE and
>   add BR’s on doxygen and graphviz? A real -doc subpackage with full
> documentation
>   would be a nice addition.

Unfortunately the build failed with that setup so PXR_BUILD_DOCUMENTATION=FALSE for the time being.


> - Above the ExclusiveArch, please try to explain in a little more detail why
>   the package must be x86_64-only. I agree that this looks like it is the
> case.
>   Once the package is approved, you must create Bugzilla bugs blocking the
>   various ExcludeArch tracker bugs, even if you close them immediately as
>   WONTFIX. See
>  
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_architecture_build_failures.

Will do.


> - Please change
> 
>     Requires:       %{name}%{?_isa} = %{version}
> 
>   to
> 
>     Requires:       %{name}%{?_isa} = %{version}-%{release}
> 
>   See
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_requiring_base_package.
> 
>   Note also that the -devel package should really require
> 
>     Requires:       %{name}-libs%{?_isa} = %{version}-%{release}
> 
>   instead, and perhaps the base package should as well.

Done

> 
> - There is no %check section; did you try building the tests?

Yes. Unfortunately, the provided upstream test failed to build.
 
> - Please remove
> 
>     # Explicity define python macro to avoid unversioned python
>     %define         __python /usr/bin/python3
> 
>   because nothing should be using an unversioned %__python. (Also, prefer
>   %global to %define.)
> 
> - Is Python really found using pkg-config? Maybe just drop this?
> 
>     BuildRequires:  pkgconfig(python3)

Good catch. Fixed. I standardize the use pkgconfig in the spec when possible so BuildRequires:  pkgconfig(python3) fixed the issue.


> - Note that you can use (but are not required to use)
>   https://src.fedoraproject.org/rpms/pyproject-rpm-macros to get
> automatically
>   generated Python BR’s.

Thanks for the info. It will help for future spec file update.


> 
> - Please convert NOTICE.txt from CRNL line encoding. Add
> 
>     BuildRequires: dos2unix
> 
>   and in %prep,
> 
>     dos2unix NOTICE.txt

Done

> 
> - Please add
> 
>     find %{buildroot}%{_datadir}/%{name}/examples -name '*.so' -print -delete
> 
>   or just
> 
>     rm %{buildroot}%{_datadir}/%{name}/examples/plugin/hdTiny.so
> 
>   to remove
> 
>     /usr/share/usd/examples/plugin/hdTiny.so
> 
>   because there should not be arch-specific code in /usr/share.

Done

> 
> - Please fix mixed tabs and spaces in spec file, e.g.
> 
>     sed -r -i 's/\t/        /g' usd.spec


Done. Thanks for the tip.

Here is the updated
SPEC: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-rawhide-x86_64/02130525-usd/usd.spec
SRPM: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-rawhide-x86_64/02130525-usd/usd-21.02-4.fc35.src.rpm

Some known issues are the placement of files within libs and devel. I would like a guide for those. Thanks.

Comment 16 Ben Beasley 2021-04-22 18:20:36 UTC
I’m still not claiming the review yet, but I’m looking at this. It will take a little while to go through.

Comment 17 Luya Tshimbalanga 2021-04-22 22:23:20 UTC
(In reply to Ben Beasley from comment #16)
> I’m still not claiming the review yet, but I’m looking at this. It will take
> a little while to go through.

No problem. Considering the seemly complexity at resolving some issues, suggestions and correction are appreciated.

Comment 18 Ben Beasley 2021-04-24 12:51:24 UTC
I’m still reviewing this. (You may notice I set the fedora-review? flag).

My review feedback is almost complete, but I did manage to fix the Python part of the build, and I’m still working through the consequences of that, and a few other details. I’m also going to see if I understand what is wrong with the tests.

Overall, while a few changes will still be required, I think we’re on the path to actually getting this successfully packaged.

Comment 19 Ben Beasley 2021-04-27 12:55:40 UTC
This is getting much, much closer. There are still a few remaining things that
need to be looked at.

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

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


Issues:
=======
- Header files in -devel subpackage, if present.
  Note: usd : /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h usd
  : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h usd
  : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h usd :
  /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_devel_packages

  This is spurious; these are documentation. If you ever manage to build the
  documentation, you will need a -doc subpackage, and they should go in that.
  For now, they are fine where they are.

- Development (unversioned) .so files in -devel subpackage, if present.
  Note: Unversioned so-files directly in %_libdir.
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_devel_packages

  You have patched the CMake files to set an so-version, and offered the change
  upstream—great! But your change only works when PXR_BUILD_MONOLITHIC is set, so
  you need to set it.
 
  Then you can do something like:

  and

    %files libs
    […]
    %{_libdir}/lib%{name}_ms.so.%{libmajor}
    […]

  and

    %files devel
    […]
    %{_libdir}/lib%{name}_ms.so
    […]

  Interestingly, this also fixes the cmake install path, so you can remove
  these lines:

    # Relocate cmake folder
    mkdir -p %{buildroot}%{_libdir}/cmake
    mv %{buildroot}%{_prefix}/cmake/* %{buildroot}%{_libdir}/cmake
    rm -rf %{buildroot}%{_prefix}/cmake

  Note that the monolithic build means there is only one shared library file,
  for better or for worse.

- The License field appears correct, but you must break down which files are
  covered by which licenses in a spec file comment or packaged auxiliary
  license file, as mandated in
  https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#_multiple_licensing_scenarios.

  You can use “licensecheck -r” to help you look for files with various licenses.

- The -devel package should Require: cmake-filesystem for %{_libdir}/cmake.

- The package fails to own the following directories:

    /usr/lib64/usd/hdx, /usr/lib64/usd/ndr, /usr/lib64/usd/plugin,
    /usr/lib64/usd/usd/resources, /usr/lib64/usd/usd,
    /usr/lib64/usd/usd/resources/usd, /usr/lib64/usd/hd, /usr/lib64/usd/hdSt,
    /usr/lib64/usd/hgiGL, /usr/lib64/usd/hio, /usr/lib64/usd/ar,
    /usr/lib64/usd/glf

  The easiest way to fix this would be to change

    %dir %{_libdir}/%{name}
    %{_libdir}/%{name}/sdf
    %{_libdir}/%{name}/plugInfo.json
    %{_libdir}/%{name}/{ar,glf,hd,hdSt,hdx,hgiGL,hio,ndr}/*
    %{_libdir}/%{name}/plugin/*
    %{_libdir}/%{name}/%{name}/resources/generatedSchema.usda
    %{_libdir}/%{name}/%{name}/resources/plugInfo.json
    %{_libdir}/%{name}/%{name}/resources/usd/schema.usda
    %{_libdir}/%{name}/%{name}{Geom,Hydra,Imaging,ImagingGL,Lux,Media,Render}/
    %{_libdir}/%{name}/%{name}{Ri,RiImaging,Shade,Skel,SkelImaging,UI}/
    %{_libdir}/%{name}/%{name}{Vol,VolImaging}/

  to

    %{_libdir}/%{name}
    %exclude %{_libdir}/%{name}/%{name}/resources/codegenTemplates

- Version 21.05 is available. Please update.

- The error you reported building the Python components was because uic-qt5
  defaults to C++ output. You can fix it by adding, at the beginning of %build:

    cat > uic-wrapper <<'EOF'
    #!/bin/sh
    exec uic-qt5 -g python "$@"
    EOF
    chmod +x uic-wrapper

  and then, in the arguments to %cmake, changing PYSIDEUICBINARY to:

    -DPYSIDEUICBINARY:PATH=${PWD}/uic-wrapper

  You can link https://github.com/PixarAnimationStudios/USD/issues/1419, which
  is the most relevant issue. I added this workaround in a comment there, while
  requesting direct support for uic-qt5 as the proper solution.

  Now you have the problem that the package is installed under
  %{python3_sitelib} even though it has compiled extensions. The ugly but
  simple solution is to add this after %cmake_install:

    mkdir -p %{buildroot}%{python3_sitearch}
    mv %{buildroot}%{python3_sitelib}/* %{buildroot}%{python3_sitearch}

  Worse, some files are installed under a flagrantly wrong path:

    mv %{buildroot}%{prefix}/lib/python/pxr/*.* \
        %{buildroot}%{python3_sitearch}/pxr/
    mv %{buildroot}%{prefix}/lib/python/pxr/Usdviewq/* \
        %{buildroot}%{python3_sitearch}/pxr/Usdviewq/

  Instead of all those “mv” commands in %install, you might prefer instead to
  patch the build system with sed in %prep; I have not taken the time to figure
  out the right way to do this.

  See the ancient issue https://github.com/PixarAnimationStudios/USD/issues/30.

- It turns out upstream also bundles a couple of fonts. You can unbundle these
  by, in %prep:

    rm -rvf pxr/usdImaging/usdviewq/fonts/*
    ln -s %{_datadir}/fonts/google-roboto pxr/usdImaging/usdviewq/fonts/Roboto
    ln -s %{_datadir}/fonts/google-roboto-mono \
        pxr/usdImaging/usdviewq/fonts/Roboto_Mono

  and add:

    Requires:       font(roboto)
    Requires:       font(robotoblack)
    Requires:       font(robotolight)
    Requires:       font(robotomono)

  to the Python subpackage. See
  https://docs.fedoraproject.org/en-US/packaging-guidelines/#_avoid_bundling_of_fonts_in_other_packages.

- Once I got the Python components building, I tried:

    python3 -m pxr.Usdviewq

  and got (on Fedora 33):

      File "/usr/lib64/python3.9/runpy.py", line 188, in _run_module_as_main
        mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
      File "/usr/lib64/python3.9/runpy.py", line 147, in _get_module_details
        return _get_module_details(pkg_main_name, error)
      File "/usr/lib64/python3.9/runpy.py", line 111, in _get_module_details
        __import__(pkg_name)
      File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/__init__.py", line 30, in <module>
        from .common import Timer
      File "/usr/lib64/python3.9/site-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
        return original_import(name, *args, **kwargs)
      File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/common.py", line 28, in <module>
        from pxr import Ar, Tf, Sdf, Kind, Usd, UsdGeom, UsdShade
      File "/usr/lib64/python3.9/site-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
        return original_import(name, *args, **kwargs)
      File "/usr/lib64/python3.9/site-packages/pxr/Ar/__init__.py", line 24, in <module>
        from . import _ar
      File "/usr/lib64/python3.9/site-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
        return original_import(name, *args, **kwargs)
    ImportError: /lib64/libjemalloc.so.2: cannot allocate memory in static TLS block

  so I tried putting

    BuildRequires:  pkgconfig(jemalloc)

  and

    -DPXR_MALLOC_LIBRARY="%{_libdir}/libjemalloc.so" \

  behind a disabled build conditional, and got this instead:

    /usr/bin/python3: No module named pxr.Usdviewq.__main__; 'pxr.Usdviewq' is a package and cannot be directly executed

  OK, I guess this isn’t how to start usdviewq, but the import is working, so
  it looks like not using jemalloc is the way to go. Maybe there is some other
  way to fix this, but this way works—maybe at some performance cost, or maybe
  not.

- It turns out that with Python enabled, you get quite a few more binaries in
  the main “usd” package:

    /usr/bin/sdfdump:        ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d5c4551cc2fc937008004724d7dabeab13f92be2, for GNU/Linux 3.2.0, stripped
    /usr/bin/sdffilter:      ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=f9c69423f6eea1aa506e58c95f99db631cfe78ec, for GNU/Linux 3.2.0, stripped
    /usr/bin/testusdview:    Python script, ASCII text executable
    /usr/bin/usdcat:         Python script, ASCII text executable
    /usr/bin/usdchecker:     Python script, ASCII text executable
    /usr/bin/usddiff:        Python script, ASCII text executable
    /usr/bin/usddumpcrate:   Python script, ASCII text executable
    /usr/bin/usdedit:        Python script, ASCII text executable
    /usr/bin/usdGenSchema:   Python script, ASCII text executable
    /usr/bin/usdrecord:      Python script, ASCII text executable
    /usr/bin/usdresolve:     Python script, ASCII text executable
    /usr/bin/usdstitch:      Python script, ASCII text executable
    /usr/bin/usdstitchclips: Python script, ASCII text executable
    /usr/bin/usdtree:        Python script, ASCII text executable
    /usr/bin/usdview:        Python script, ASCII text executable
    /usr/bin/usdzip:         Python script, ASCII text executable

  Hey, look, there’s the usdview launcher. Anyway, it looks like you now need
  to either put most of these in the python3-usd subpackage, or (probably
  better) you need to add

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

  to the main “usd” package.

- Since the importable Python package is actually called “pxr”, you should add

    %py_provides python3-pxr
 
  per
  https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_the_py_provides_macro
  to get the right virtual provides. Or, you could rename the Python subpackage
  to match the Python import, and the %py_provides would be unnecessary.

- I tried usdview on the file top.geom.usd and had the window appear for a
  couple of seconds, with a glitchy, transparent hole where the OpenGL render
  should be. Then it crashed:

    QSocketNotifier: Can only be used with threads started with QThread
    State file not found, a new one will be created.
    Traceback (most recent call last):
      File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/stageView.py", line 1659, in paintGL
        renderer = self._getRenderer()
      File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/stageView.py", line 970, in _getRenderer
        self._renderer = UsdImagingGL.Engine()
    pxr.Tf.ErrorException: 
    	Error in 'pxrInternal_v0_21__pxrReserved__::GlfContextCaps::_LoadCaps' at line 162 in file /builddir/build/BUILD/USD-21.02/pxr/imaging/glf/contextCaps.cpp : 'Failed verification: ' GlfGLContext::GetCurrentGLContext()->IsValid() ''
    	Error in 'pxrInternal_v0_21__pxrReserved__::{anonymous}::_IsHydraEnabled' at line 109 in file /builddir/build/BUILD/USD-21.02/pxr/usdImaging/usdImagingGL/engine.cpp : 'OpenGL context required, using reference renderer'
    /usr/include/c++/10/bits/stl_vector.h:1063: std::vector<_Tp, _Alloc>::const_reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) const [with _Tp = float; _Alloc = std::allocator<float>; std::vector<_Tp, _Alloc>::const_reference = const float&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.
    Aborted (core dumped)

  Is this what happens for you, once you fix the Python build?

  It looks similar to https://github.com/PixarAnimationStudios/USD/issues/1467
  and https://github.com/PixarAnimationStudios/USD/issues/764, but not
  identical. It may be something you can only report upstream. It would be nice
  not to have such a glaring bug right out of the gate, but I wouldn’t consider
  it a blocker for the package given how much other functionality it offers.

- Since usdview is a desktop application, you will need to write a downstream
  desktop file (which you can offer upstream):
  https://docs.fedoraproject.org/en-US/packaging-guidelines/#_desktop_files.

  AppStream XML files,
  https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/, are good
  too, and are a SHOULD, but I have found they are very hard to properly create
  downstream since they need to have screenshots and a description under an
  ultra-permissive license such as CC0. The .desktop file, though, is
  necessary.

- I think

    %global test OFF

  should be a build conditional:

    %bcond_with test

  and then you can replace

    -DPXR_BUILD_TESTS=%{test} \

  with

    -DPXR_BUILD_TESTS=%{?with_test:ON}%{!?with_test:OFF} \

- I would still like to see the tests runnable, but I am going to go ahead and
  provide this review while I look into what that would require. I intend to
  offer suggestions here if I can figure out why they did not work for you.

Notes (a change is not required)
================================

- This is not needed if you are only targeting F33 and later:

    %undefine       __cmake_in_source_build

  (Since F32 is almost EOL, why bother with it?)

- You could drop the license file from the main package “usd” since it depends
  on “usd-libs”, which does have the license file.

- You have correctly justified the ExclusiveArch in a comment. After the
  package is imported to dist-git, you must file Bugzilla tickets blocking the
  tracker bugs for all unsupported architectures, as required by
  https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures.

- Instead of

    # Fix all Python shebangs recursively in .
    pathfix.py -pni "%{__python3} %{py3_shbang_opts}" .

  it would be simpler to write

    %py3_shebang_fix .

- I think the pyproject-rpm-macros will not help with these Python bindings
  after all, since the build is integrated into the overall CMake build.

- See https://github.com/PixarAnimationStudios/USD/issues/1259 for feedback
  from an openSUSE packager dealing with some of the same issues.

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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Package does not contain any libtool archives (.la)
[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.
[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", "Khronos License Expat License Apache
     License 2.0", "Apache License 2.0", "Expat License", "BSD 3-clause
     "New" or "Revised" License", "Apache License 2.0 [generated file]",
     "Khronos License", "Apache License 2.0 GNU General Public License v3.0
     or later", "BSD 2-clause "Simplified" License", "the Unlicense Expat
     License", "*No copyright* Apache License 2.0". 2550 files have unknown
     license. Detailed output of licensecheck in
     /home/reviewer/1895567-usd/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.
[!]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/lib64/usd/plugin, /usr/lib64/usd/hd,
     /usr/lib64/usd/hgiGL, /usr/lib64/usd/hdx, /usr/lib64/usd/ndr,
     /usr/lib64/usd/usd/resources/usd, /usr/lib64/usd/usd/resources,
     /usr/lib64/usd/usd, /usr/lib64/usd/hdSt, /usr/lib64/usd/hio,
     /usr/lib64/usd/ar, /usr/lib64/usd/glf

     The -devel package should Require: cmake-filesystem for %{_libdir}/cmake.

[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib64/usd/hdx,
     /usr/lib64/usd/ndr, /usr/lib64/usd/plugin,
     /usr/lib64/usd/usd/resources, /usr/lib64/usd/usd,
     /usr/lib64/usd/usd/resources/usd, /usr/lib64/usd/hd,
     /usr/lib64/usd/hdSt, /usr/lib64/usd/hgiGL, /usr/lib64/usd/hio,
     /usr/lib64/usd/ar, /usr/lib64/usd/glf
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.

     This point in the fedora-review tool output is obsolete; there are now
     very specific rules for bundling libraries
     (https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling), no
     FPC exception required. As far as I can tell, you have followed them for
     all bundled libraries.

[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.

     (This will apply if you get the Python part working.)

[!]: Development files must be in a -devel package

     This will be correct after fixing the shared library versioning as
     described in the Issues section, above.

[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.
[-]: Package is not known to require an ExcludeArch tag.

     Package is correctly ExclusiveArch. Must file Bugzilla tickets after the
     package is imported to dist-git, as required by
     https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures.

[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 245760 bytes in 7 files.

     A -doc subpackage will be required if you manage to build the documentation.

[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]: 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]: Macros in Summary, %description expandable at SRPM build time.
[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

===== 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.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in usd-libs
     , usd-devel
[?]: Package functions as described.
[!]: Latest version is packaged.

     Version 21.05 is available. Please update.

[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[!]: %check is present and all tests pass.

     TODO: look into this.

[x]: 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]: 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]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[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]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: usd-21.02-4.fc35.x86_64.rpm
          usd-libs-21.02-4.fc35.x86_64.rpm
          usd-devel-21.02-4.fc35.x86_64.rpm
          usd-debuginfo-21.02-4.fc35.x86_64.rpm
          usd-debugsource-21.02-4.fc35.x86_64.rpm
          usd-21.02-4.fc35.src.rpm
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
usd.x86_64: W: no-manual-page-for-binary sdfdump
usd.x86_64: W: no-manual-page-for-binary sdffilter
usd-libs.x86_64: E: invalid-soname /usr/lib64/libar.so libar.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libarch.so libarch.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libcameraUtil.so libcameraUtil.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libgarch.so libgarch.so
usd-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/libgarch.so exit@GLIBC_2.2.5
usd-libs.x86_64: E: invalid-soname /usr/lib64/libgf.so libgf.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libglf.so libglf.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhd.so libhd.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhdSt.so libhdSt.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhdx.so libhdx.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhf.so libhf.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhgi.so libhgi.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhgiGL.so libhgiGL.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhgiInterop.so libhgiInterop.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhio.so libhio.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libjs.so libjs.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libkind.so libkind.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libndr.so libndr.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libpcp.so libpcp.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libplug.so libplug.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libpxOsd.so libpxOsd.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libsdf.so libsdf.so
usd-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/libsdf.so exit@GLIBC_2.2.5
usd-libs.x86_64: E: invalid-soname /usr/lib64/libsdr.so libsdr.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libtf.so libtf.so
usd-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/libtf.so exit@GLIBC_2.2.5
usd-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/libtf.so _exit@GLIBC_2.2.5
usd-libs.x86_64: E: invalid-soname /usr/lib64/libtrace.so libtrace.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusd.so libusd.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdAppUtils.so libusdAppUtils.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdGeom.so libusdGeom.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdHydra.so libusdHydra.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdImaging.so libusdImaging.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdImagingGL.so libusdImagingGL.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdLux.so libusdLux.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdMedia.so libusdMedia.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdRender.so libusdRender.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdRi.so libusdRi.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdRiImaging.so libusdRiImaging.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdShade.so libusdShade.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdSkel.so libusdSkel.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdSkelImaging.so libusdSkelImaging.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdUI.so libusdUI.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdUtils.so libusdUtils.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdVol.so libusdVol.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdVolImaging.so libusdVolImaging.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libvt.so libvt.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libwork.so libwork.so
usd-devel.x86_64: W: only-non-binary-in-usr-lib
6 packages and 0 specfiles checked; 44 errors, 11 warnings.




Rpmlint (debuginfo)
-------------------
Checking: usd-debuginfo-21.02-4.fc35.x86_64.rpm
          usd-libs-debuginfo-21.02-4.fc35.x86_64.rpm
2 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
usd-devel.x86_64: W: only-non-binary-in-usr-lib
usd-libs.x86_64: E: invalid-soname /usr/lib64/libar.so libar.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libarch.so libarch.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libcameraUtil.so libcameraUtil.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libgarch.so libgarch.so
usd-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/libgarch.so exit@GLIBC_2.2.5
usd-libs.x86_64: E: invalid-soname /usr/lib64/libgf.so libgf.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libglf.so libglf.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhd.so libhd.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhdSt.so libhdSt.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhdx.so libhdx.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhf.so libhf.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhgi.so libhgi.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhgiGL.so libhgiGL.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhgiInterop.so libhgiInterop.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libhio.so libhio.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libjs.so libjs.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libkind.so libkind.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libndr.so libndr.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libpcp.so libpcp.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libplug.so libplug.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libpxOsd.so libpxOsd.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libsdf.so libsdf.so
usd-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/libsdf.so exit@GLIBC_2.2.5
usd-libs.x86_64: E: invalid-soname /usr/lib64/libsdr.so libsdr.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libtf.so libtf.so
usd-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/libtf.so exit@GLIBC_2.2.5
usd-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/libtf.so _exit@GLIBC_2.2.5
usd-libs.x86_64: E: invalid-soname /usr/lib64/libtrace.so libtrace.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusd.so libusd.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdAppUtils.so libusdAppUtils.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdGeom.so libusdGeom.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdHydra.so libusdHydra.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdImaging.so libusdImaging.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdImagingGL.so libusdImagingGL.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdLux.so libusdLux.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdMedia.so libusdMedia.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdRender.so libusdRender.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdRi.so libusdRi.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdRiImaging.so libusdRiImaging.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdShade.so libusdShade.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdSkel.so libusdSkel.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdSkelImaging.so libusdSkelImaging.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdUI.so libusdUI.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdUtils.so libusdUtils.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdVol.so libusdVol.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libusdVolImaging.so libusdVolImaging.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libvt.so libvt.so
usd-libs.x86_64: E: invalid-soname /usr/lib64/libwork.so libwork.so
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
usd.x86_64: W: no-manual-page-for-binary sdfdump
usd.x86_64: W: no-manual-page-for-binary sdffilter
6 packages and 0 specfiles checked; 44 errors, 11 warnings.



Unversioned so-files
--------------------
usd-libs: /usr/lib64/libar.so
usd-libs: /usr/lib64/libarch.so
usd-libs: /usr/lib64/libcameraUtil.so
usd-libs: /usr/lib64/libgarch.so
usd-libs: /usr/lib64/libgf.so
usd-libs: /usr/lib64/libglf.so
usd-libs: /usr/lib64/libhd.so
usd-libs: /usr/lib64/libhdSt.so
usd-libs: /usr/lib64/libhdx.so
usd-libs: /usr/lib64/libhf.so
usd-libs: /usr/lib64/libhgi.so
usd-libs: /usr/lib64/libhgiGL.so
usd-libs: /usr/lib64/libhgiInterop.so
usd-libs: /usr/lib64/libhio.so
usd-libs: /usr/lib64/libjs.so
usd-libs: /usr/lib64/libkind.so
usd-libs: /usr/lib64/libndr.so
usd-libs: /usr/lib64/libpcp.so
usd-libs: /usr/lib64/libplug.so
usd-libs: /usr/lib64/libpxOsd.so
usd-libs: /usr/lib64/libsdf.so
usd-libs: /usr/lib64/libsdr.so
usd-libs: /usr/lib64/libtf.so
usd-libs: /usr/lib64/libtrace.so
usd-libs: /usr/lib64/libusd.so
usd-libs: /usr/lib64/libusdAppUtils.so
usd-libs: /usr/lib64/libusdGeom.so
usd-libs: /usr/lib64/libusdHydra.so
usd-libs: /usr/lib64/libusdImaging.so
usd-libs: /usr/lib64/libusdImagingGL.so
usd-libs: /usr/lib64/libusdLux.so
usd-libs: /usr/lib64/libusdMedia.so
usd-libs: /usr/lib64/libusdRender.so
usd-libs: /usr/lib64/libusdRi.so
usd-libs: /usr/lib64/libusdRiImaging.so
usd-libs: /usr/lib64/libusdShade.so
usd-libs: /usr/lib64/libusdSkel.so
usd-libs: /usr/lib64/libusdSkelImaging.so
usd-libs: /usr/lib64/libusdUI.so
usd-libs: /usr/lib64/libusdUtils.so
usd-libs: /usr/lib64/libusdVol.so
usd-libs: /usr/lib64/libusdVolImaging.so
usd-libs: /usr/lib64/libvt.so
usd-libs: /usr/lib64/libwork.so
usd-libs: /usr/lib64/usd/plugin/hdEmbree.so
usd-libs: /usr/lib64/usd/plugin/hdStorm.so
usd-libs: /usr/lib64/usd/plugin/hioOiio.so
usd-libs: /usr/lib64/usd/plugin/sdrGlslfx.so
usd-libs: /usr/lib64/usd/plugin/sdrOsl.so
usd-libs: /usr/lib64/usd/plugin/usdAbc.so
usd-libs: /usr/lib64/usd/plugin/usdShaders.so

Source checksums
----------------
https://github.com/PixarAnimationStudios/usd/archive/v21.02/usd-21.02.tar.gz :
  CHECKSUM(SHA256) this package     : 97bbae5d86d6e4db357645db183be03afe28fe024b242f27bd4f62b4e2eade53
  CHECKSUM(SHA256) upstream package : 97bbae5d86d6e4db357645db183be03afe28fe024b242f27bd4f62b4e2eade53


Requires
--------
usd (rpmlib, GLIBC filtered):
    libarch.so()(64bit)
    libboost_program_options.so.1.75.0()(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)
    libsdf.so()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libtf.so()(64bit)
    libvt.so()(64bit)
    rtld(GNU_HASH)
    usd-libs(x86-64)

usd-libs (rpmlib, GLIBC filtered):
    ld-linux-x86-64.so.2()(64bit)
    libAlembic.so.1.8()(64bit)
    libGL.so.1()(64bit)
    libHalf-2_5.so.25()(64bit)
    libOpenColorIO.so.1()(64bit)
    libOpenImageIO.so.2.2()(64bit)
    libPtex.so.2.3()(64bit)
    libX11.so.6()(64bit)
    libar.so()(64bit)
    libarch.so()(64bit)
    libc.so.6()(64bit)
    libcameraUtil.so()(64bit)
    libdl.so.2()(64bit)
    libembree3.so.3()(64bit)
    libgarch.so()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgf.so()(64bit)
    libglf.so()(64bit)
    libhd.so()(64bit)
    libhdSt.so()(64bit)
    libhdx.so()(64bit)
    libhf.so()(64bit)
    libhgi.so()(64bit)
    libhgiGL.so()(64bit)
    libhgiInterop.so()(64bit)
    libhio.so()(64bit)
    libjemalloc.so.2()(64bit)
    libjs.so()(64bit)
    libkind.so()(64bit)
    libm.so.6()(64bit)
    libndr.so()(64bit)
    libopenvdb.so.8.0()(64bit)
    libosdCPU.so.3.4.4()(64bit)
    libosdGPU.so.3.4.4()(64bit)
    liboslquery.so.1.11()(64bit)
    libpcp.so()(64bit)
    libplug.so()(64bit)
    libpthread.so.0()(64bit)
    libpxOsd.so()(64bit)
    libsdf.so()(64bit)
    libsdr.so()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.1)(64bit)
    libstdc++.so.6(CXXABI_1.3.11)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.7)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libtbb.so.2()(64bit)
    libtf.so()(64bit)
    libtrace.so()(64bit)
    libusd.so()(64bit)
    libusdGeom.so()(64bit)
    libusdImaging.so()(64bit)
    libusdImagingGL.so()(64bit)
    libusdLux.so()(64bit)
    libusdShade.so()(64bit)
    libusdSkel.so()(64bit)
    libusdVol.so()(64bit)
    libvt.so()(64bit)
    libwork.so()(64bit)
    rtld(GNU_HASH)

usd-devel (rpmlib, GLIBC filtered):
    cmake-filesystem(x86-64)
    usd-libs(x86-64)

usd-debuginfo (rpmlib, GLIBC filtered):

usd-debugsource (rpmlib, GLIBC filtered):



Provides
--------
usd:
    bundled(SPIRV-Reflect)
    bundled(VulkanMemoryAllocator)
    bundled(double-conversion)
    bundled(ilmbase)
    bundled(lz4)
    bundled(pugixml)
    bundled(rapidjson)
    bundled(stb_image)
    bundled(stb_image_resize)
    bundled(stb_image_write)
    usd
    usd(x86-64)

usd-libs:
    libar.so()(64bit)
    libarch.so()(64bit)
    libcameraUtil.so()(64bit)
    libgarch.so()(64bit)
    libgf.so()(64bit)
    libglf.so()(64bit)
    libhd.so()(64bit)
    libhdSt.so()(64bit)
    libhdx.so()(64bit)
    libhf.so()(64bit)
    libhgi.so()(64bit)
    libhgiGL.so()(64bit)
    libhgiInterop.so()(64bit)
    libhio.so()(64bit)
    libjs.so()(64bit)
    libkind.so()(64bit)
    libndr.so()(64bit)
    libpcp.so()(64bit)
    libplug.so()(64bit)
    libpxOsd.so()(64bit)
    libsdf.so()(64bit)
    libsdr.so()(64bit)
    libtf.so()(64bit)
    libtrace.so()(64bit)
    libusd.so()(64bit)
    libusdAppUtils.so()(64bit)
    libusdGeom.so()(64bit)
    libusdHydra.so()(64bit)
    libusdImaging.so()(64bit)
    libusdImagingGL.so()(64bit)
    libusdLux.so()(64bit)
    libusdMedia.so()(64bit)
    libusdRender.so()(64bit)
    libusdRi.so()(64bit)
    libusdRiImaging.so()(64bit)
    libusdShade.so()(64bit)
    libusdSkel.so()(64bit)
    libusdSkelImaging.so()(64bit)
    libusdUI.so()(64bit)
    libusdUtils.so()(64bit)
    libusdVol.so()(64bit)
    libusdVolImaging.so()(64bit)
    libvt.so()(64bit)
    libwork.so()(64bit)
    usd-libs
    usd-libs(x86-64)

usd-devel:
    cmake(pxr)
    usd-devel
    usd-devel(x86-64)

usd-debuginfo:
    debuginfo(build-id)
    usd-debuginfo
    usd-debuginfo(x86-64)

usd-debugsource:
    usd-debugsource
    usd-debugsource(x86-64)



Generated by fedora-review 0.7.6 (b083f91) last change: 2020-11-10
Command line :/usr/bin/fedora-review -b 1895567
Buildroot used: fedora-rawhide-x86_64
Active plugins: C/C++, Generic, Shell-api
Disabled plugins: PHP, fonts, Perl, Haskell, Python, SugarActivity, Java, R, Ocaml, Ruby
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 20 Luya Tshimbalanga 2021-04-30 22:55:41 UTC
(In reply to Ben Beasley from comment #19)
> This is getting much, much closer. There are still a few remaining things
> that
> need to be looked at.
> 

Thanks for taking the time addrssing some issues.


> 
> Issues:
> =======
> - Header files in -devel subpackage, if present.
>   Note: usd : /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h usd
>   : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h usd
>   : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h usd :
>   /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
>   See: https://docs.fedoraproject.org/en-US/packaging-
>   guidelines/#_devel_packages
> 
>   This is spurious; these are documentation. If you ever manage to build the
>   documentation, you will need a -doc subpackage, and they should go in that.
>   For now, they are fine where they are.

Sounds good.

> 
> - Development (unversioned) .so files in -devel subpackage, if present.
>   Note: Unversioned so-files directly in %_libdir.
>   See: https://docs.fedoraproject.org/en-US/packaging-
>   guidelines/#_devel_packages

Resolved.

> 
>   You have patched the CMake files to set an so-version, and offered the
> change
>   upstream—great! But your change only works when PXR_BUILD_MONOLITHIC is
> set, so
>   you need to set it.
>  
>   Then you can do something like:
> 
>   and
> 
>     %files libs
>     […]
>     %{_libdir}/lib%{name}_ms.so.%{libmajor}
>     […]
> 
>   and
> 
>     %files devel
>     […]
>     %{_libdir}/lib%{name}_ms.so
>     […]
> 
>   Interestingly, this also fixes the cmake install path, so you can remove
>   these lines:
> 
>     # Relocate cmake folder
>     mkdir -p %{buildroot}%{_libdir}/cmake
>     mv %{buildroot}%{_prefix}/cmake/* %{buildroot}%{_libdir}/cmake
>     rm -rf %{buildroot}%{_prefix}/cmake
> 
>   Note that the monolithic build means there is only one shared library file,
>   for better or for worse.

Done. PXR_BUILD_MONOLITH is enabled and the above lines are removed.


> - The License field appears correct, but you must break down which files are
>   covered by which licenses in a spec file comment or packaged auxiliary
>   license file, as mandated in
>  
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> LicensingGuidelines/#_multiple_licensing_scenarios.
> 
>   You can use “licensecheck -r” to help you look for files with various
> licenses.
> 

I realized I forgot to add with licenses are associated to the files. Using the above command reveals only ilmbase, pxrDouble conversion and lz4 are under BSD while the majority are under ASL 2.0 and remainig generated.

> - The -devel package should Require: cmake-filesystem for %{_libdir}/cmake.
> 
> - The package fails to own the following directories:
> 
>     /usr/lib64/usd/hdx, /usr/lib64/usd/ndr, /usr/lib64/usd/plugin,
>     /usr/lib64/usd/usd/resources, /usr/lib64/usd/usd,
>     /usr/lib64/usd/usd/resources/usd, /usr/lib64/usd/hd, /usr/lib64/usd/hdSt,
>     /usr/lib64/usd/hgiGL, /usr/lib64/usd/hio, /usr/lib64/usd/ar,
>     /usr/lib64/usd/glf
> 
>   The easiest way to fix this would be to change
> 
>     %dir %{_libdir}/%{name}
>     %{_libdir}/%{name}/sdf
>     %{_libdir}/%{name}/plugInfo.json
>     %{_libdir}/%{name}/{ar,glf,hd,hdSt,hdx,hgiGL,hio,ndr}/*
>     %{_libdir}/%{name}/plugin/*
>     %{_libdir}/%{name}/%{name}/resources/generatedSchema.usda
>     %{_libdir}/%{name}/%{name}/resources/plugInfo.json
>     %{_libdir}/%{name}/%{name}/resources/usd/schema.usda
>    
> %{_libdir}/%{name}/%{name}{Geom,Hydra,Imaging,ImagingGL,Lux,Media,Render}/
>     %{_libdir}/%{name}/%{name}{Ri,RiImaging,Shade,Skel,SkelImaging,UI}/
>     %{_libdir}/%{name}/%{name}{Vol,VolImaging}/
> 
>   to
> 
>     %{_libdir}/%{name}
>     %exclude %{_libdir}/%{name}/%{name}/resources/codegenTemplates
> 
> - Version 21.05 is available. Please update.
> 

Package is updated to 21.05 and the remaing lines are trimmed to the above suggestion. cmake-filesystem is added on devel subpackage.

> - The error you reported building the Python components was because uic-qt5
>   defaults to C++ output. You can fix it by adding, at the beginning of
> %build:
> 
>     cat > uic-wrapper <<'EOF'
>     #!/bin/sh
>     exec uic-qt5 -g python "$@"
>     EOF
>     chmod +x uic-wrapper
> 
>   and then, in the arguments to %cmake, changing PYSIDEUICBINARY to:
> 
>     -DPYSIDEUICBINARY:PATH=${PWD}/uic-wrapper
> 

Done. 
> 
>   Now you have the problem that the package is installed under
>   %{python3_sitelib} even though it has compiled extensions. The ugly but
>   simple solution is to add this after %cmake_install:
> 
>     mkdir -p %{buildroot}%{python3_sitearch}
>     mv %{buildroot}%{python3_sitelib}/* %{buildroot}%{python3_sitearch}
> 
>   Worse, some files are installed under a flagrantly wrong path:
> 
>     mv %{buildroot}%{prefix}/lib/python/pxr/*.* \
>         %{buildroot}%{python3_sitearch}/pxr/
>     mv %{buildroot}%{prefix}/lib/python/pxr/Usdviewq/* \
>         %{buildroot}%{python3_sitearch}/pxr/Usdviewq/
> 
>   Instead of all those “mv” commands in %install, you might prefer instead to
>   patch the build system with sed in %prep; I have not taken the time to
> figure
>   out the right way to do this.
> 
>   See the ancient issue
> https://github.com/PixarAnimationStudios/USD/issues/30.

The ugle workaround appears resolving the issue. The above command has a syntax releated to %{_prefix} but fixed on the incoming spec file.

> 
> - It turns out upstream also bundles a couple of fonts. You can unbundle
> these
>   by, in %prep:
> 
>     rm -rvf pxr/usdImaging/usdviewq/fonts/*
>     ln -s %{_datadir}/fonts/google-roboto
> pxr/usdImaging/usdviewq/fonts/Roboto
>     ln -s %{_datadir}/fonts/google-roboto-mono \
>         pxr/usdImaging/usdviewq/fonts/Roboto_Mono
> 
>   and add:
> 
>     Requires:       font(roboto)
>     Requires:       font(robotoblack)
>     Requires:       font(robotolight)
>     Requires:       font(robotomono)
> 
>   to the Python subpackage. See
>  
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_avoid_bundling_of_fonts_in_other_packages.

Done.

> 
> - Once I got the Python components building, I tried:
> 
>     python3 -m pxr.Usdviewq
> 
>   and got (on Fedora 33):
> 
>       File "/usr/lib64/python3.9/runpy.py", line 188, in _run_module_as_main
>         mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
>       File "/usr/lib64/python3.9/runpy.py", line 147, in _get_module_details
>         return _get_module_details(pkg_main_name, error)
>       File "/usr/lib64/python3.9/runpy.py", line 111, in _get_module_details
>         __import__(pkg_name)
>       File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/__init__.py",
> line 30, in <module>
>         from .common import Timer
>       File
> "/usr/lib64/python3.9/site-packages/shiboken2/files.dir/shibokensupport/
> __feature__.py", line 142, in _import
>         return original_import(name, *args, **kwargs)
>       File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/common.py", line
> 28, in <module>
>         from pxr import Ar, Tf, Sdf, Kind, Usd, UsdGeom, UsdShade
>       File
> "/usr/lib64/python3.9/site-packages/shiboken2/files.dir/shibokensupport/
> __feature__.py", line 142, in _import
>         return original_import(name, *args, **kwargs)
>       File "/usr/lib64/python3.9/site-packages/pxr/Ar/__init__.py", line 24,
> in <module>
>         from . import _ar
>       File
> "/usr/lib64/python3.9/site-packages/shiboken2/files.dir/shibokensupport/
> __feature__.py", line 142, in _import
>         return original_import(name, *args, **kwargs)
>     ImportError: /lib64/libjemalloc.so.2: cannot allocate memory in static
> TLS block
> 
>   so I tried putting
> 
>     BuildRequires:  pkgconfig(jemalloc)
> 
>   and
> 
>     -DPXR_MALLOC_LIBRARY="%{_libdir}/libjemalloc.so" \
> 
>   behind a disabled build conditional, and got this instead:
> 
>     /usr/bin/python3: No module named pxr.Usdviewq.__main__; 'pxr.Usdviewq'
> is a package and cannot be directly executed
> 
>   OK, I guess this isn’t how to start usdviewq, but the import is working, so
>   it looks like not using jemalloc is the way to go. Maybe there is some
> other
>   way to fix this, but this way works—maybe at some performance cost, or
> maybe
>   not.
> 
jemalloc is disabled. Trying to execute usdview generates the following traceback:

 usdview 
Traceback (most recent call last):
  File "/usr/bin/usdview", line 28, in <module>
    import pxr.Usdviewq as Usdviewq
  File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/__init__.py", line 29, in <module>
    from .qt import QtWidgets, QtCore
  File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/qt.py", line 42, in <module>
    PySideModule = GetPySideModule()
  File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/qt.py", line 31, in GetPySideModule
    from . import attributeValueEditorUI
  File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/attributeValueEditorUI.py", line 11, in <module>
    from PySide2.QtCore import *



> - It turns out that with Python enabled, you get quite a few more binaries in
>   the main “usd” package:
> 
>     /usr/bin/sdfdump:        ELF 64-bit LSB pie executable, x86-64, version
> 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,
> BuildID[sha1]=d5c4551cc2fc937008004724d7dabeab13f92be2, for GNU/Linux 3.2.0,
> stripped
>     /usr/bin/sdffilter:      ELF 64-bit LSB pie executable, x86-64, version
> 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,
> BuildID[sha1]=f9c69423f6eea1aa506e58c95f99db631cfe78ec, for GNU/Linux 3.2.0,
> stripped
>     /usr/bin/testusdview:    Python script, ASCII text executable
>     /usr/bin/usdcat:         Python script, ASCII text executable
>     /usr/bin/usdchecker:     Python script, ASCII text executable
>     /usr/bin/usddiff:        Python script, ASCII text executable
>     /usr/bin/usddumpcrate:   Python script, ASCII text executable
>     /usr/bin/usdedit:        Python script, ASCII text executable
>     /usr/bin/usdGenSchema:   Python script, ASCII text executable
>     /usr/bin/usdrecord:      Python script, ASCII text executable
>     /usr/bin/usdresolve:     Python script, ASCII text executable
>     /usr/bin/usdstitch:      Python script, ASCII text executable
>     /usr/bin/usdstitchclips: Python script, ASCII text executable
>     /usr/bin/usdtree:        Python script, ASCII text executable
>     /usr/bin/usdview:        Python script, ASCII text executable
>     /usr/bin/usdzip:         Python script, ASCII text executable
> 
>   Hey, look, there’s the usdview launcher. Anyway, it looks like you now need
>   to either put most of these in the python3-usd subpackage, or (probably
>   better) you need to add
> 
>     Requires:       python3-%{name}%{?_isa} = %{version}-%{release}
> 
>   to the main “usd” package.

Done.

> 
> - Since the importable Python package is actually called “pxr”, you should
> add
> 
>     %py_provides python3-pxr
>  
>   per
>  
> https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/
> #_the_py_provides_macro
>   to get the right virtual provides. Or, you could rename the Python
> subpackage
>   to match the Python import, and the %py_provides would be unnecessary.
> 
> - I tried usdview on the file top.geom.usd and had the window appear for a
>   couple of seconds, with a glitchy, transparent hole where the OpenGL render
>   should be. Then it crashed:
> 
>     QSocketNotifier: Can only be used with threads started with QThread
>     State file not found, a new one will be created.
>     Traceback (most recent call last):
>       File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/stageView.py",
> line 1659, in paintGL
>         renderer = self._getRenderer()
>       File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/stageView.py",
> line 970, in _getRenderer
>         self._renderer = UsdImagingGL.Engine()
>     pxr.Tf.ErrorException: 
>     	Error in 'pxrInternal_v0_21__pxrReserved__::GlfContextCaps::_LoadCaps'
> at line 162 in file
> /builddir/build/BUILD/USD-21.02/pxr/imaging/glf/contextCaps.cpp : 'Failed
> verification: ' GlfGLContext::GetCurrentGLContext()->IsValid() ''
>     	Error in
> 'pxrInternal_v0_21__pxrReserved__::{anonymous}::_IsHydraEnabled' at line 109
> in file
> /builddir/build/BUILD/USD-21.02/pxr/usdImaging/usdImagingGL/engine.cpp :
> 'OpenGL context required, using reference renderer'
>     /usr/include/c++/10/bits/stl_vector.h:1063: std::vector<_Tp,
> _Alloc>::const_reference std::vector<_Tp,
> _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) const [with _Tp =
> float; _Alloc = std::allocator<float>; std::vector<_Tp,
> _Alloc>::const_reference = const float&; std::vector<_Tp, _Alloc>::size_type
> = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)'
> failed.
>     Aborted (core dumped)
> 
>   Is this what happens for you, once you fix the Python build?
> 
See above. For some reason, pyside2 is missing.

>   It looks similar to
> https://github.com/PixarAnimationStudios/USD/issues/1467
>   and https://github.com/PixarAnimationStudios/USD/issues/764, but not
>   identical. It may be something you can only report upstream. It would be
> nice
>   not to have such a glaring bug right out of the gate, but I wouldn’t
> consider
>   it a blocker for the package given how much other functionality it offers.
> 
> - Since usdview is a desktop application, you will need to write a downstream
>   desktop file (which you can offer upstream):
>   https://docs.fedoraproject.org/en-US/packaging-guidelines/#_desktop_files.
> 
>   AppStream XML files,
>   https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/, are
> good
>   too, and are a SHOULD, but I have found they are very hard to properly
> create
>   downstream since they need to have screenshots and a description under an
>   ultra-permissive license such as CC0. The .desktop file, though, is
>   necessary.
> 
Done. Appstream files is not included yet. Maybe once usdview is functional, I will take some screenshots and submit to upstream.
For the desktop icon, upstream has logo but in a lower resolution.

> - I think
> 
>     %global test OFF
> 
>   should be a build conditional:
> 
>     %bcond_with test
> 
>   and then you can replace
> 
>     -DPXR_BUILD_TESTS=%{test} \
> 
>   with
> 
>     -DPXR_BUILD_TESTS=%{?with_test:ON}%{!?with_test:OFF} \

Done.
> 
> - I would still like to see the tests runnable, but I am going to go ahead
> and
>   provide this review while I look into what that would require. I intend to
>   offer suggestions here if I can figure out why they did not work for you.

Thanks.
> 
> Notes (a change is not required)
> ================================
> 
> - This is not needed if you are only targeting F33 and later:
> 
>     %undefine       __cmake_in_source_build
> 
>   (Since F32 is almost EOL, why bother with it?)

You are right. The above line is now dropped.

> 
> - You could drop the license file from the main package “usd” since it
> depends
>   on “usd-libs”, which does have the license file.
> 
Done.

> - You have correctly justified the ExclusiveArch in a comment. After the
>   package is imported to dist-git, you must file Bugzilla tickets blocking
> the
>   tracker bugs for all unsupported architectures, as required by
>  
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_architecture_build_failures.
> 
Will do.

> - Instead of
> 
>     # Fix all Python shebangs recursively in .
>     pathfix.py -pni "%{__python3} %{py3_shbang_opts}" .
> 
>   it would be simpler to write
> 
>     %py3_shebang_fix .

At last a macro. Fixed.


Here is the updated
SPEC: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-rawhide-x86_64/02155514-usd/usd.spec
SRPM: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-rawhide-x86_64/02155514-usd/usd-21.05-1.fc35.src.rpm

Comment 21 Ben Beasley 2021-05-02 14:14:36 UTC
Looking at your update now. I’m curious about the pyside error you saw, since it didn’t happen to me. I’ll see if I can spot what was happening once I’ve rebuilt your latest version.

Comment 22 Ben Beasley 2021-05-04 15:25:39 UTC
Still working on this. I do have an explanation for the pyside error.

Comment 23 Luya Tshimbalanga 2021-05-05 00:33:16 UTC
Thank you the update. I will for the reason behind the pyside error.

Comment 24 Ben Beasley 2021-05-06 20:35:29 UTC
Okay, we’re still getting closer.

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

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


Issues:
=======
- Header files in -devel subpackage, if present.
  Note: usd : /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h usd
  : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h usd
  : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h usd :
  /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_devel_packages

  This is spurious; these are documentation. If you ever manage to build the
  documentation, you will need a -doc subpackage, and they should go in that.
  For now, they are fine where they are.

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

  Here, fedora-review is saying the mentioned BR is missing, because it doesn’t
  recognize

    BuildRequires:  pkgconfig(python3)

  as equivalent to 

    BuildRequires:  python3-devel

  Since this will probably always work, I think it is permissible. However,
  it’s still an odd way to express the dependency unless Python 3 is actually
  detected using pkg-config/pkgconf.

- Package does not contain duplicates in %files.
  Note: warning: File listed twice: /usr/lib64/usd
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_duplicate_files

  Since you have
    %{_libdir}/%{name}

  in %files now, you can drop

    %dir %{_libdir}/%{name}

- You still need to document the license breakdown in the spec file
  (https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#_multiple_licensing_scenarios).

  I pretty much tabulated this for you in the original review.

  I believe this would be one correct implementation:

    # The entire source is ASL 2.0 except:
    #
    # BSD:
    #   - pxr/base/gf/ilmbase_*
    #   - pxr/base/js/rapidjson/msinttypes/
    #   - pxr/base/tf/pxrDoubleConversion/
    #   - pxr/base/tf/pxrLZ4/
    # MIT:
    #   - pxr/imaging/garch/khrplatform.h
    #   - pxr/base/js/rapidjson/, except pxr/base/js/rapidjson/msinttypes/
    #   - pxr/base/tf/pyLock.cpp (only some sections; most of the file is
    #     ASL 2.0)
    #   - third_party/renderman-23/plugin/rmanArgsParser/pugixml/
    # MIT or Unlicense:
    #   - pxr/imaging/hio/stb/
    #
    # (Certain build system files are also under licenses other than ASL 2.0, but
    # do not contribute their license terms to the built RPMs.)
    License:        ASL 2.0 and BSD and MIT and (MIT or Unlicense)

  You should probably double-check my work.

- A minor quibble, but I think if the usdview binary is going to be in the
  “usd” package, the desktop file should be there too instead of in the
  python3-usd package, i.e.:

    %files
    %doc NOTICE.txt README.md
    %{_bindir}/*
    %dir %{_datadir}/%{name}
    %dir %{_datadir}/%{name}/examples/
    %{_datadir}/%{name}/examples/*
    %if %{with python3}
    %{_datadir}/applications/org.open%{name}.%{name}view.desktop
    %endif

  But in the end it’s going to work well enough either way.

- Rpmlint reports: 

    python3-usd.x86_64: E: non-executable-script /usr/lib64/python3.9/site-packages/pxr/Sdr/shaderParserTestUtils.py 644 /usr/bin/python3 -s
    python3-usd.x86_64: E: non-executable-script /usr/lib64/python3.9/site-packages/pxr/UsdUtils/updateSchemaWithSdrNode.py 644 /usr/bin/python3 -s
    python3-usd.x86_64: E: non-executable-script /usr/lib64/python3.9/site-packages/pxr/Usdviewq/usdviewApi.py 644 /usr/bin/python3 -s

  and in fact, based on their contents, none of these would be usable as a
  script even if they were executable, so you should remove the shebang lines.
  This would do it in %prep:

    sed -r -i '1{/^#!/d}' \
        pxr/usd/sdr/shaderParserTestUtils.py \
	pxr/usd/usdUtils/updateSchemaWithSdrNode.py \
	pxr/usdImaging/usdviewq/usdviewApi.py

- You reported:

    Trying to execute usdview generates the following traceback:
    
     usdview 
    Traceback (most recent call last):
      File "/usr/bin/usdview", line 28, in <module>
        import pxr.Usdviewq as Usdviewq
      File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/__init__.py", line 29, in <module>
        from .qt import QtWidgets, QtCore
      File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/qt.py", line 42, in <module>
        PySideModule = GetPySideModule()
      File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/qt.py", line 31, in GetPySideModule
        from . import attributeValueEditorUI
      File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/attributeValueEditorUI.py", line 11, in <module>
        from PySide2.QtCore import *

  I see:

    python3-usd (rpmlib, GLIBC filtered):
        font(roboto)
        font(robotoblack)
        font(robotolight)
        font(robotomono)
        ld-linux-x86-64.so.2()(64bit)
        libOpenImageIO_Util.so.2.2()(64bit)
        libboost_python39.so.1.75.0()(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)
        libpthread.so.0()(64bit)
        libpython3.9.so.1.0()(64bit)
        libstdc++.so.6()(64bit)
        libstdc++.so.6(CXXABI_1.3)(64bit)
        libstdc++.so.6(CXXABI_1.3.1)(64bit)
        libstdc++.so.6(CXXABI_1.3.5)(64bit)
        libstdc++.so.6(CXXABI_1.3.9)(64bit)
        libtbb.so.2()(64bit)
        libusd_ms.so.0()(64bit)
        python(abi)
        rtld(GNU_HASH)

  So the boost-python-based build is not generating the dist-info or egg-info
  metadata that would be required for the Python dependency generator
  (https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_automatically_generated_dependencies)
  to work. You will have to manually add the appropriate dependencies (ones
  used only as Python imports; those linked as C or C++ libraries are still
  detectable) to the spec file:

    Requires:       python3dist(jinja2)
    Requires:       python3dist(pyside2)
    Requires:       python3dist(pyopengl)

- The line

    %dir %{_datadir}/%{name}

  is not a correct path for %files docs. (It is not affecting anything
  since you are not currently building the documentation.)

- You could drop the desktop-file-validate invocation since you are installing
  the desktop file with desktop-file-install. (However, the double validation
  doesn’t do any harm.)
  https://docs.fedoraproject.org/en-US/packaging-guidelines/#_desktop_file_install_usage

- If you enable the tests, here’s the error I see:

    /home/reviewer/rpmbuild/BUILD/USD-21.05/pxr/base/tf/testenv/weakPtr.cpp: In function 'bool Test_TfCreateRefPtrFromProtectedWeakPtr()':
    /home/reviewer/rpmbuild/BUILD/USD-21.05/pxr/base/tf/testenv/weakPtr.cpp:338:27: error: 'sleep_for' is not a member of 'std::this_thread'
      338 |         std::this_thread::sleep_for(std::chrono::milliseconds(250));
          |                           ^~~~~~~~~
    gmake[2]: *** [pxr/base/tf/CMakeFiles/testTf.dir/build.make:644: pxr/base/tf/CMakeFiles/testTf.dir/testenv/weakPtr.cpp.o] Error 1
    gmake[2]: *** Waiting for unfinished jobs....
    gmake[2]: Leaving directory '/home/reviewer/rpmbuild/BUILD/USD-21.05/x86_64-redhat-linux-gnu'
    gmake[1]: *** [CMakeFiles/Makefile2:2961: pxr/base/tf/CMakeFiles/testTf.dir/all] Error 2
    gmake[1]: Leaving directory '/home/reviewer/rpmbuild/BUILD/USD-21.05/x86_64-redhat-linux-gnu'
    gmake: *** [Makefile:163: all] Error 2
    error: Bad exit status from /var/tmp/rpm-tmp.f9uxSV (%build)

  It turns out that this is just a missing include, and there’s another one you
  run into after fixing that one. The patch usd-21.05-missing-includes.patc
  fixes all of them; please forward it upstream.

  Now the tests are built and (unfortunately) installed, in the nonstandard
  path /usr/tests/; cmake/macros/Public.cmake seems to govern this. There is a
  comment

    # XXX -- We shouldn't have to install to run tests.

  (I agree!) but I couldn’t find a corresponding upstream issue. There might be
  a way to change where the tests are installed—I didn’t look into it too
  closely—or perhaps one could %exclude %{_prefix}/tests in %files, although
  that use of %exclude (ignoring installed files altogether so that they are
  not in any subpackage) is allegedly supposed to go away in a future version
  of RPM.

  This

    %{?test:%ctest}

  must be now be changed to

    %{?with_test:%ctest}

  in order to try to run the tests.

  Once I do all that, I get a huge number of test failures because all the
  tests are trying to use absolute paths, but they are installed inside the
  buildroot directory. So I think the endgame here is an upstream issue for the
  patch I offered, plus an upstream issue about running the tests without
  installing them, and comments linking those where the %check section would
  be. I don’t think actually running the tests right now is going to be
  practical.

- Man pages for the executables would be great, if practical. You might be able
  to use help2man to generate acceptable ones. If not, and if you don’t want to
  hand-write them, you can at least ask upstream if they would consider
  providing them. See
  https://docs.fedoraproject.org/en-US/packaging-guidelines/#_manpages.

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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[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.

     All remaining unversioned .so files are Python extension modules properly
     installed under %{python3_sitearch}.

[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]: 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.
[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", "Khronos License Expat License Apache
     License 2.0", "Apache License 2.0", "Expat License", "BSD 3-clause
     "New" or "Revised" License", "Apache License 2.0 [generated file]",
     "Khronos License", "Apache License 2.0 GNU General Public License v3.0
     or later", "BSD 2-clause "Simplified" License", "the Unlicense Expat
     License", "*No copyright* Apache License 2.0". 2567 files have unknown
     license. Detailed output of licensecheck in
     /home/reviewer/1895567-usd/2/1895567-usd/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.

     I still don’t see the breakdown documented in the spec file. See Issues
     section.

[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]: 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.
[!]: Requires correct, justified where necessary.

     See Issues above regarding Python dependencies

[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.
[-]: Package is not known to require an ExcludeArch tag.


     Package is correctly ExclusiveArch. Must file Bugzilla tickets after the
     package is imported to dist-git, as required by
     https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures.

[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 276480 bytes in 7 files.

     A -doc subpackage will be required if you manage to build the documentation.

[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]: 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]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install or
     desktop-file-validate if there is such a file.
[x]: Dist tag is present.
[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:
[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
[x]: Binary eggs must be removed in %prep

===== 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.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in usd-libs
     , usd-devel , python3-usd
[!]: Package functions as described.

     See Issues section regarding fixes for usdview

[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[!]: %check is present and all tests pass.

     See Issues section; but I don’t think this will be practical for now.

[x]: 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]: 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]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[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]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: usd-21.05-1.fc35.x86_64.rpm
          usd-libs-21.05-1.fc35.x86_64.rpm
          usd-devel-21.05-1.fc35.x86_64.rpm
          python3-usd-21.05-1.fc35.x86_64.rpm
          usd-debuginfo-21.05-1.fc35.x86_64.rpm
          usd-debugsource-21.05-1.fc35.x86_64.rpm
          usd-21.05-1.fc35.src.rpm
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
usd.x86_64: W: no-manual-page-for-binary sdfdump
usd.x86_64: W: no-manual-page-for-binary sdffilter
usd.x86_64: W: no-manual-page-for-binary testusdview
usd.x86_64: W: no-manual-page-for-binary usdGenSchema
usd.x86_64: W: no-manual-page-for-binary usdcat
usd.x86_64: W: no-manual-page-for-binary usdchecker
usd.x86_64: W: no-manual-page-for-binary usddiff
usd.x86_64: W: no-manual-page-for-binary usddumpcrate
usd.x86_64: W: no-manual-page-for-binary usdedit
usd.x86_64: W: no-manual-page-for-binary usdrecord
usd.x86_64: W: no-manual-page-for-binary usdresolve
usd.x86_64: W: no-manual-page-for-binary usdstitch
usd.x86_64: W: no-manual-page-for-binary usdstitchclips
usd.x86_64: W: no-manual-page-for-binary usdtree
usd.x86_64: W: no-manual-page-for-binary usdview
usd.x86_64: W: no-manual-page-for-binary usdzip
python3-usd.x86_64: W: no-documentation
python3-usd.x86_64: E: non-executable-script /usr/lib64/python3.9/site-packages/pxr/Sdr/shaderParserTestUtils.py 644 /usr/bin/python3 -s
python3-usd.x86_64: E: non-executable-script /usr/lib64/python3.9/site-packages/pxr/UsdUtils/updateSchemaWithSdrNode.py 644 /usr/bin/python3 -s
python3-usd.x86_64: W: dangling-symlink /usr/lib64/python3.9/site-packages/pxr/Usdviewq/fonts/Roboto /usr/share/fonts/google-roboto
python3-usd.x86_64: W: dangling-symlink /usr/lib64/python3.9/site-packages/pxr/Usdviewq/fonts/Roboto_Mono /usr/share/fonts/google-roboto-mono
python3-usd.x86_64: E: non-executable-script /usr/lib64/python3.9/site-packages/pxr/Usdviewq/usdviewApi.py 644 /usr/bin/python3 -s
python3-usd.x86_64: W: desktopfile-without-binary /usr/share/applications/org.openusd.usdview.desktop usdview
usd.src:250: E: hardcoded-library-path in %{_prefix}/lib/python/pxr/*.*
usd.src:252: E: hardcoded-library-path in %{_prefix}/lib/python/pxr/Usdviewq/*
7 packages and 0 specfiles checked; 5 errors, 24 warnings.




Rpmlint (debuginfo)
-------------------
Checking: usd-libs-debuginfo-21.05-1.fc35.x86_64.rpm
          usd-debuginfo-21.05-1.fc35.x86_64.rpm
2 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
usd.x86_64: W: no-manual-page-for-binary sdfdump
usd.x86_64: W: no-manual-page-for-binary sdffilter
usd.x86_64: W: no-manual-page-for-binary testusdview
usd.x86_64: W: no-manual-page-for-binary usdGenSchema
usd.x86_64: W: no-manual-page-for-binary usdcat
usd.x86_64: W: no-manual-page-for-binary usdchecker
usd.x86_64: W: no-manual-page-for-binary usddiff
usd.x86_64: W: no-manual-page-for-binary usddumpcrate
usd.x86_64: W: no-manual-page-for-binary usdedit
usd.x86_64: W: no-manual-page-for-binary usdrecord
usd.x86_64: W: no-manual-page-for-binary usdresolve
usd.x86_64: W: no-manual-page-for-binary usdstitch
usd.x86_64: W: no-manual-page-for-binary usdstitchclips
usd.x86_64: W: no-manual-page-for-binary usdtree
usd.x86_64: W: no-manual-page-for-binary usdview
usd.x86_64: W: no-manual-page-for-binary usdzip
python3-usd.x86_64: W: no-documentation
python3-usd.x86_64: E: non-executable-script /usr/lib64/python3.9/site-packages/pxr/Sdr/shaderParserTestUtils.py 644 /usr/bin/python3 -s
python3-usd.x86_64: E: non-executable-script /usr/lib64/python3.9/site-packages/pxr/UsdUtils/updateSchemaWithSdrNode.py 644 /usr/bin/python3 -s
python3-usd.x86_64: W: dangling-symlink /usr/lib64/python3.9/site-packages/pxr/Usdviewq/fonts/Roboto /usr/share/fonts/google-roboto
python3-usd.x86_64: W: dangling-symlink /usr/lib64/python3.9/site-packages/pxr/Usdviewq/fonts/Roboto_Mono /usr/share/fonts/google-roboto-mono
python3-usd.x86_64: E: non-executable-script /usr/lib64/python3.9/site-packages/pxr/Usdviewq/usdviewApi.py 644 /usr/bin/python3 -s
7 packages and 0 specfiles checked; 3 errors, 23 warnings.



Unversioned so-files
--------------------
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Ar/_ar.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/CameraUtil/_cameraUtil.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Garch/_garch.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Gf/_gf.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Glf/_glf.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Kind/_kind.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Ndr/_ndr.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Pcp/_pcp.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Plug/_plug.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/PxOsd/_pxOsd.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Sdf/_sdf.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Sdr/_sdr.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/SdrOsl/_sdrOsl.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Tf/_tf.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Trace/_trace.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Usd/_usd.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdAbc/_usdAbc.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdAppUtils/_usdAppUtils.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdGeom/_usdGeom.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdHydra/_usdHydra.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdImagingGL/_usdImagingGL.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdLux/_usdLux.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdMedia/_usdMedia.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdRender/_usdRender.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdRi/_usdRi.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdShade/_usdShade.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdSkel/_usdSkel.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdUI/_usdUI.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdUtils/_usdUtils.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdVol/_usdVol.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Usdviewq/_usdviewq.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Vt/_vt.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Work/_work.so

Source checksums
----------------
https://github.com/PixarAnimationStudios/usd/archive/v21.05/usd-21.05.tar.gz :
  CHECKSUM(SHA256) this package     : 165d0e1e45385076121268eba0da2a0ba4a7e5c2b8eab9ab26fb2fcd81a1a478
  CHECKSUM(SHA256) upstream package : 165d0e1e45385076121268eba0da2a0ba4a7e5c2b8eab9ab26fb2fcd81a1a478


Requires
--------
usd (rpmlib, GLIBC filtered):
    /usr/bin/python3
    libOpenImageIO_Util.so.2.2()(64bit)
    libboost_program_options.so.1.75.0()(64bit)
    libboost_python39.so.1.75.0()(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)
    libpython3.9.so.1.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libusd_ms.so.0()(64bit)
    python3-usd(x86-64)
    rtld(GNU_HASH)
    usd-libs(x86-64)

usd-libs (rpmlib, GLIBC filtered):
    ld-linux-x86-64.so.2()(64bit)
    libAlembic.so.1.8()(64bit)
    libGL.so.1()(64bit)
    libHalf-2_5.so.25()(64bit)
    libOpenColorIO.so.1()(64bit)
    libOpenImageIO.so.2.2()(64bit)
    libPtex.so.2.3()(64bit)
    libX11.so.6()(64bit)
    libboost_python39.so.1.75.0()(64bit)
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libembree3.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libopenvdb.so.8.0()(64bit)
    libosdCPU.so.3.4.4()(64bit)
    libosdGPU.so.3.4.4()(64bit)
    liboslquery.so.1.11()(64bit)
    libpthread.so.0()(64bit)
    libpython3.9.so.1.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.1)(64bit)
    libstdc++.so.6(CXXABI_1.3.11)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.7)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libtbb.so.2()(64bit)
    rtld(GNU_HASH)

usd-devel (rpmlib, GLIBC filtered):
    cmake-filesystem
    cmake-filesystem(x86-64)
    libusd_ms.so.0()(64bit)
    usd-libs(x86-64)

python3-usd (rpmlib, GLIBC filtered):
    font(roboto)
    font(robotoblack)
    font(robotolight)
    font(robotomono)
    ld-linux-x86-64.so.2()(64bit)
    libOpenImageIO_Util.so.2.2()(64bit)
    libboost_python39.so.1.75.0()(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)
    libpthread.so.0()(64bit)
    libpython3.9.so.1.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.1)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libtbb.so.2()(64bit)
    libusd_ms.so.0()(64bit)
    python(abi)
    rtld(GNU_HASH)

usd-debuginfo (rpmlib, GLIBC filtered):

usd-debugsource (rpmlib, GLIBC filtered):



Provides
--------
usd:
    bundled(SPIRV-Reflect)
    bundled(VulkanMemoryAllocator)
    bundled(double-conversion)
    bundled(ilmbase)
    bundled(lz4)
    bundled(pugixml)
    bundled(rapidjson)
    bundled(stb_image)
    bundled(stb_image_resize)
    bundled(stb_image_write)
    usd
    usd(x86-64)

usd-libs:
    libusd_ms.so.0()(64bit)
    usd-libs
    usd-libs(x86-64)

usd-devel:
    cmake(pxr)
    usd-devel
    usd-devel(x86-64)

python3-usd:
    application()
    application(org.openusd.usdview.desktop)
    python-pxr
    python-usd
    python3-pxr
    python3-usd
    python3-usd(x86-64)
    python3.9-pxr
    python3.9-usd

usd-debuginfo:
    debuginfo(build-id)
    usd-debuginfo
    usd-debuginfo(x86-64)

usd-debugsource:
    usd-debugsource
    usd-debugsource(x86-64)



Generated by fedora-review 0.7.6 (b083f91) last change: 2020-11-10
Command line :/usr/bin/fedora-review -b 1895567
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, Python, C/C++
Disabled plugins: Java, fonts, Perl, PHP, Ocaml, Ruby, SugarActivity, Haskell, R
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 25 Luya Tshimbalanga 2021-05-08 18:51:35 UTC
(In reply to Ben Beasley from comment #24)

> Issues:
> =======
> - Header files in -devel subpackage, if present.
>   Note: usd : /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h usd
>   : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h usd
>   : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h usd :
>   /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
>   See: https://docs.fedoraproject.org/en-US/packaging-
>   guidelines/#_devel_packages
> 
>   This is spurious; these are documentation. If you ever manage to build the
>   documentation, you will need a -doc subpackage, and they should go in that.
>   For now, they are fine where they are.

Sounds good.

> 
> - Package contains BR: python2-devel or python3-devel
> 
>   Here, fedora-review is saying the mentioned BR is missing, because it
> doesn’t
>   recognize
> 
>     BuildRequires:  pkgconfig(python3)
> 
>   as equivalent to 
> 
>     BuildRequires:  python3-devel
> 
>   Since this will probably always work, I think it is permissible. However,
>   it’s still an odd way to express the dependency unless Python 3 is actually
>   detected using pkg-config/pkgconf.
> 

It seemms like a bug for fedora-review because Python 3 is detected using pkgconfig(python3). See https://fedora.pkgs.org/rawhide/fedora-x86_64/python3-devel-3.9.5-1.fc35.x86_64.rpm.html listing pkgconfig files. 

> - Package does not contain duplicates in %files.
>   Note: warning: File listed twice: /usr/lib64/usd
> 
>   Since you have
>     %{_libdir}/%{name}
> 
>   in %files now, you can drop
> 
>     %dir %{_libdir}/%{name}

Done.

> 
> - You still need to document the license breakdown in the spec file
>  
> (https://docs.fedoraproject.org/en-US/packaging-guidelines/
> LicensingGuidelines/#_multiple_licensing_scenarios).
> 
>   I pretty much tabulated this for you in the original review.
> 
>   I believe this would be one correct implementation:
> 
>     # The entire source is ASL 2.0 except:
>     #
>     # BSD:
>     #   - pxr/base/gf/ilmbase_*
>     #   - pxr/base/js/rapidjson/msinttypes/
>     #   - pxr/base/tf/pxrDoubleConversion/
>     #   - pxr/base/tf/pxrLZ4/
>     # MIT:
>     #   - pxr/imaging/garch/khrplatform.h
>     #   - pxr/base/js/rapidjson/, except pxr/base/js/rapidjson/msinttypes/
>     #   - pxr/base/tf/pyLock.cpp (only some sections; most of the file is
>     #     ASL 2.0)
>     #   - third_party/renderman-23/plugin/rmanArgsParser/pugixml/
>     # MIT or Unlicense:
>     #   - pxr/imaging/hio/stb/
>     #
>     # (Certain build system files are also under licenses other than ASL
> 2.0, but
>     # do not contribute their license terms to the built RPMs.)
>     License:        ASL 2.0 and BSD and MIT and (MIT or Unlicense)
> 
>   You should probably double-check my work.

Done. I double-check the list with yours and it matches.

> 
> - A minor quibble, but I think if the usdview binary is going to be in the
>   “usd” package, the desktop file should be there too instead of in the
>   python3-usd package, i.e.:
> 
>     %files
>     %doc NOTICE.txt README.md
>     %{_bindir}/*
>     %dir %{_datadir}/%{name}
>     %dir %{_datadir}/%{name}/examples/
>     %{_datadir}/%{name}/examples/*
>     %if %{with python3}
>     %{_datadir}/applications/org.open%{name}.%{name}view.desktop
>     %endif
> 
>   But in the end it’s going to work well enough either way.

Maybe improve those lines after package is pushed on the main repository.


> 
> - Rpmlint reports: 
> 
>     python3-usd.x86_64: E: non-executable-script
> /usr/lib64/python3.9/site-packages/pxr/Sdr/shaderParserTestUtils.py 644
> /usr/bin/python3 -s
>     python3-usd.x86_64: E: non-executable-script
> /usr/lib64/python3.9/site-packages/pxr/UsdUtils/updateSchemaWithSdrNode.py
> 644 /usr/bin/python3 -s
>     python3-usd.x86_64: E: non-executable-script
> /usr/lib64/python3.9/site-packages/pxr/Usdviewq/usdviewApi.py 644
> /usr/bin/python3 -s
> 
>   and in fact, based on their contents, none of these would be usable as a
>   script even if they were executable, so you should remove the shebang
> lines.
>   This would do it in %prep:
> 
>     sed -r -i '1{/^#!/d}' \
>         pxr/usd/sdr/shaderParserTestUtils.py \
> 	pxr/usd/usdUtils/updateSchemaWithSdrNode.py \
> 	pxr/usdImaging/usdviewq/usdviewApi.py

Done,


> 
> - You reported:
> 
>     Trying to execute usdview generates the following traceback:
>     
>      usdview 
>     Traceback (most recent call last):
>       File "/usr/bin/usdview", line 28, in <module>
>         import pxr.Usdviewq as Usdviewq
>       File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/__init__.py",
> line 29, in <module>
>         from .qt import QtWidgets, QtCore
>       File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/qt.py", line 42,
> in <module>
>         PySideModule = GetPySideModule()
>       File "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/qt.py", line 31,
> in GetPySideModule
>         from . import attributeValueEditorUI
>       File
> "/usr/lib64/python3.9/site-packages/pxr/Usdviewq/attributeValueEditorUI.py",
> line 11, in <module>
>         from PySide2.QtCore import *
> 
>   I see:
> 
>     python3-usd (rpmlib, GLIBC filtered):
>         font(roboto)
>         font(robotoblack)
>         font(robotolight)
>         font(robotomono)
>         ld-linux-x86-64.so.2()(64bit)
>         libOpenImageIO_Util.so.2.2()(64bit)
>         libboost_python39.so.1.75.0()(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)
>         libpthread.so.0()(64bit)
>         libpython3.9.so.1.0()(64bit)
>         libstdc++.so.6()(64bit)
>         libstdc++.so.6(CXXABI_1.3)(64bit)
>         libstdc++.so.6(CXXABI_1.3.1)(64bit)
>         libstdc++.so.6(CXXABI_1.3.5)(64bit)
>         libstdc++.so.6(CXXABI_1.3.9)(64bit)
>         libtbb.so.2()(64bit)
>         libusd_ms.so.0()(64bit)
>         python(abi)
>         rtld(GNU_HASH)
> 
>   So the boost-python-based build is not generating the dist-info or egg-info
>   metadata that would be required for the Python dependency generator
>  
> (https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/
> #_automatically_generated_dependencies)
>   to work. You will have to manually add the appropriate dependencies (ones
>   used only as Python imports; those linked as C or C++ libraries are still
>   detectable) to the spec file:
> 
>     Requires:       python3dist(jinja2)
>     Requires:       python3dist(pyside2)
>     Requires:       python3dist(pyopengl)

usdview works now with these added requirement.


> 
> - The line
> 
>     %dir %{_datadir}/%{name}
> 
>   is not a correct path for %files docs. (It is not affecting anything
>   since you are not currently building the documentation.)

Fixed just in case.

> 
> - You could drop the desktop-file-validate invocation since you are
> installing
>   the desktop file with desktop-file-install. (However, the double validation
>   doesn’t do any harm.)

Let's keep it for new.

>  
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_desktop_file_install_usage
> 
> - If you enable the tests, here’s the error I see:
> 
>     /home/reviewer/rpmbuild/BUILD/USD-21.05/pxr/base/tf/testenv/weakPtr.cpp:
> In function 'bool Test_TfCreateRefPtrFromProtectedWeakPtr()':
>    
> /home/reviewer/rpmbuild/BUILD/USD-21.05/pxr/base/tf/testenv/weakPtr.cpp:338:
> 27: error: 'sleep_for' is not a member of 'std::this_thread'
>       338 |        
> std::this_thread::sleep_for(std::chrono::milliseconds(250));
>           |                           ^~~~~~~~~
>     gmake[2]: *** [pxr/base/tf/CMakeFiles/testTf.dir/build.make:644:
> pxr/base/tf/CMakeFiles/testTf.dir/testenv/weakPtr.cpp.o] Error 1
>     gmake[2]: *** Waiting for unfinished jobs....
>     gmake[2]: Leaving directory
> '/home/reviewer/rpmbuild/BUILD/USD-21.05/x86_64-redhat-linux-gnu'
>     gmake[1]: *** [CMakeFiles/Makefile2:2961:
> pxr/base/tf/CMakeFiles/testTf.dir/all] Error 2
>     gmake[1]: Leaving directory
> '/home/reviewer/rpmbuild/BUILD/USD-21.05/x86_64-redhat-linux-gnu'
>     gmake: *** [Makefile:163: all] Error 2
>     error: Bad exit status from /var/tmp/rpm-tmp.f9uxSV (%build)
> 
>   It turns out that this is just a missing include, and there’s another one
> you
>   run into after fixing that one. The patch usd-21.05-missing-includes.patc
>   fixes all of them; please forward it upstream.
> 
>   Now the tests are built and (unfortunately) installed, in the nonstandard
>   path /usr/tests/; cmake/macros/Public.cmake seems to govern this. There is
> a
>   comment
> 
>     # XXX -- We shouldn't have to install to run tests.
> 
>   (I agree!) but I couldn’t find a corresponding upstream issue. There might
> be
>   a way to change where the tests are installed—I didn’t look into it too
>   closely—or perhaps one could %exclude %{_prefix}/tests in %files, although
>   that use of %exclude (ignoring installed files altogether so that they are
>   not in any subpackage) is allegedly supposed to go away in a future version
>   of RPM.
> 
>   This
> 
>     %{?test:%ctest}
> 
>   must be now be changed to
> 
>     %{?with_test:%ctest}
> 
>   in order to try to run the tests.
> 
>   Once I do all that, I get a huge number of test failures because all the
>   tests are trying to use absolute paths, but they are installed inside the
>   buildroot directory. So I think the endgame here is an upstream issue for
> the
>   patch I offered, plus an upstream issue about running the tests without
>   installing them, and comments linking those where the %check section would
>   be. I don’t think actually running the tests right now is going to be
>   practical.

Right as test is disabled for the time being.

> 
> - Man pages for the executables would be great, if practical. You might be
> able
>   to use help2man to generate acceptable ones. If not, and if you don’t want
> to
>   hand-write them, you can at least ask upstream if they would consider
>   providing them. See
>   https://docs.fedoraproject.org/en-US/packaging-guidelines/#_manpages.

Filed requests upstream on https://github.com/PixarAnimationStudios/USD/issues/1518


Updated 
SPEC: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-34-x86_64/02173489-usd/usd.spec
SRPM: https://download.copr.fedorainfracloud.org/results/luya/blender-egl/fedora-34-x86_64/02173489-usd/usd-21.05-2.fc34.src.rpm

Comment 26 Ben Beasley 2021-05-12 13:10:56 UTC
Package approved. Thanks for all your hard work on this difficult package. Please see my remaining notes below.

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

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


Issues:
=======

- Mixed tabs and spaces in spec file (line 174 contains a tab); please fix this
  when importing.

- The currently-disabled -docs subpackage has some issues:

  - Description has typo “Documenation”
  - Should really conditionalize the whole %package docs and not just
    %files docs
  - The -docs subpackage should be BuildArch: noarch
  - The suffix -doc, rather than -docs, would be more conventional for this
    subpackage.
  - If you set “%global __cmake_in_source_build” in the spec file, then
    enabling the documentation seems to work. I didn’t take time to verify that
    Doxygen actually found all the things it should be documenting, and by
    default the documentation is installed in the wrong path
    (/usr/docs/doxy_{html,xml} instead of %{_pkgdocdir}).

  I think getting the documentation building and installing properly would be
  great, but it doesn‘t have to block approval.

Non-Issues from fedora-review:
==============================

- Header files in -devel subpackage, if present.
  Note: usd : /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h usd
  : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h usd
  : /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h usd :
  /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_devel_packages

  This is spurious feedback from fedora-review; these are documentation. If you
  ever manage to build the documentation, you will need a -doc subpackage, and
  they should go in that. For now, they are fine where they are.

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

  This is from fedora-review; it does not like pkgconfig(python3), but that is
  acceptable.   

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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[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.
[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]: 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.
[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", "Khronos License Expat License Apache
     License 2.0", "Apache License 2.0", "Expat License", "BSD 3-clause
     "New" or "Revised" License", "Apache License 2.0 [generated file]",
     "Khronos License", "Apache License 2.0 GNU General Public License v3.0
     or later", "BSD 2-clause "Simplified" License", "the Unlicense Expat
     License", "*No copyright* Apache License 2.0". 2567 files have unknown
     license. Detailed output of licensecheck in
     /home/reviewer/1895567-usd/20210511/1895567-usd/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]: 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.
[-]: Package is not known to require an ExcludeArch tag.

     Package is correctly ExclusiveArch. Must file Bugzilla tickets after the
     package is imported to dist-git, as required by
     https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures.

[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 276480 bytes in 7 files.

     A -doc subpackage will be required if you manage to build the documentation.

[x]: Package complies to the Packaging Guidelines
[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]: 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]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install or
     desktop-file-validate if there is such a file.
[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:
[x]: 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
[x]: Binary eggs must be removed in %prep

===== 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.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in usd-libs
     , usd-devel , python3-usd
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[-]: %check is present and all tests pass.

     Tests are disabled; this review has established the reasons why it is not
     practical to enable them.

[x]: 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]: 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]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[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]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: usd-21.05-2.fc35.x86_64.rpm
          usd-libs-21.05-2.fc35.x86_64.rpm
          usd-devel-21.05-2.fc35.x86_64.rpm
          python3-usd-21.05-2.fc35.x86_64.rpm
          usd-debuginfo-21.05-2.fc35.x86_64.rpm
          usd-debugsource-21.05-2.fc35.x86_64.rpm
          usd-21.05-2.fc35.src.rpm
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
usd.x86_64: W: no-manual-page-for-binary sdfdump
usd.x86_64: W: no-manual-page-for-binary sdffilter
usd.x86_64: W: no-manual-page-for-binary testusdview
usd.x86_64: W: no-manual-page-for-binary usdGenSchema
usd.x86_64: W: no-manual-page-for-binary usdcat
usd.x86_64: W: no-manual-page-for-binary usdchecker
usd.x86_64: W: no-manual-page-for-binary usddiff
usd.x86_64: W: no-manual-page-for-binary usddumpcrate
usd.x86_64: W: no-manual-page-for-binary usdedit
usd.x86_64: W: no-manual-page-for-binary usdrecord
usd.x86_64: W: no-manual-page-for-binary usdresolve
usd.x86_64: W: no-manual-page-for-binary usdstitch
usd.x86_64: W: no-manual-page-for-binary usdstitchclips
usd.x86_64: W: no-manual-page-for-binary usdtree
usd.x86_64: W: no-manual-page-for-binary usdview
usd.x86_64: W: no-manual-page-for-binary usdzip
python3-usd.x86_64: W: no-documentation
python3-usd.x86_64: W: dangling-symlink /usr/lib64/python3.9/site-packages/pxr/Usdviewq/fonts/Roboto /usr/share/fonts/google-roboto
python3-usd.x86_64: W: dangling-symlink /usr/lib64/python3.9/site-packages/pxr/Usdviewq/fonts/Roboto_Mono /usr/share/fonts/google-roboto-mono
python3-usd.x86_64: W: desktopfile-without-binary /usr/share/applications/org.openusd.usdview.desktop usdview
usd.src:275: E: hardcoded-library-path in %{_prefix}/lib/python/pxr/*.*
usd.src:277: E: hardcoded-library-path in %{_prefix}/lib/python/pxr/Usdviewq/*
usd.src:174: W: mixed-use-of-spaces-and-tabs (spaces: line 1, tab: line 174)
7 packages and 0 specfiles checked; 2 errors, 25 warnings.




Rpmlint (debuginfo)
-------------------
Checking: usd-libs-debuginfo-21.05-2.fc35.x86_64.rpm
          usd-debuginfo-21.05-2.fc35.x86_64.rpm
2 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/mesh.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderDelegate.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/renderPass.h
usd.x86_64: W: devel-file-in-non-devel-package /usr/share/usd/examples/include/pxr/imaging/hdTiny/rendererPlugin.h
usd.x86_64: W: no-manual-page-for-binary sdfdump
usd.x86_64: W: no-manual-page-for-binary sdffilter
usd.x86_64: W: no-manual-page-for-binary testusdview
usd.x86_64: W: no-manual-page-for-binary usdGenSchema
usd.x86_64: W: no-manual-page-for-binary usdcat
usd.x86_64: W: no-manual-page-for-binary usdchecker
usd.x86_64: W: no-manual-page-for-binary usddiff
usd.x86_64: W: no-manual-page-for-binary usddumpcrate
usd.x86_64: W: no-manual-page-for-binary usdedit
usd.x86_64: W: no-manual-page-for-binary usdrecord
usd.x86_64: W: no-manual-page-for-binary usdresolve
usd.x86_64: W: no-manual-page-for-binary usdstitch
usd.x86_64: W: no-manual-page-for-binary usdstitchclips
usd.x86_64: W: no-manual-page-for-binary usdtree
usd.x86_64: W: no-manual-page-for-binary usdview
usd.x86_64: W: no-manual-page-for-binary usdzip
python3-usd.x86_64: W: no-documentation
python3-usd.x86_64: W: dangling-symlink /usr/lib64/python3.9/site-packages/pxr/Usdviewq/fonts/Roboto /usr/share/fonts/google-roboto
python3-usd.x86_64: W: dangling-symlink /usr/lib64/python3.9/site-packages/pxr/Usdviewq/fonts/Roboto_Mono /usr/share/fonts/google-roboto-mono
7 packages and 0 specfiles checked; 0 errors, 23 warnings.



Unversioned so-files
--------------------
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Ar/_ar.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/CameraUtil/_cameraUtil.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Garch/_garch.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Gf/_gf.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Glf/_glf.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Kind/_kind.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Ndr/_ndr.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Pcp/_pcp.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Plug/_plug.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/PxOsd/_pxOsd.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Sdf/_sdf.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Sdr/_sdr.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/SdrOsl/_sdrOsl.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Tf/_tf.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Trace/_trace.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Usd/_usd.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdAbc/_usdAbc.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdAppUtils/_usdAppUtils.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdGeom/_usdGeom.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdHydra/_usdHydra.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdImagingGL/_usdImagingGL.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdLux/_usdLux.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdMedia/_usdMedia.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdRender/_usdRender.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdRi/_usdRi.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdShade/_usdShade.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdSkel/_usdSkel.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdUI/_usdUI.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdUtils/_usdUtils.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/UsdVol/_usdVol.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Usdviewq/_usdviewq.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Vt/_vt.so
python3-usd: /usr/lib64/python3.9/site-packages/pxr/Work/_work.so

Source checksums
----------------
https://github.com/PixarAnimationStudios/usd/archive/v21.05/usd-21.05.tar.gz :
  CHECKSUM(SHA256) this package     : 165d0e1e45385076121268eba0da2a0ba4a7e5c2b8eab9ab26fb2fcd81a1a478
  CHECKSUM(SHA256) upstream package : 165d0e1e45385076121268eba0da2a0ba4a7e5c2b8eab9ab26fb2fcd81a1a478


Requires
--------
usd (rpmlib, GLIBC filtered):
    /usr/bin/python3
    libOpenImageIO_Util.so.2.2()(64bit)
    libboost_program_options.so.1.75.0()(64bit)
    libboost_python39.so.1.75.0()(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)
    libpython3.9.so.1.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libusd_ms.so.0()(64bit)
    python3-usd(x86-64)
    rtld(GNU_HASH)
    usd-libs(x86-64)

usd-libs (rpmlib, GLIBC filtered):
    ld-linux-x86-64.so.2()(64bit)
    libAlembic.so.1.8()(64bit)
    libGL.so.1()(64bit)
    libHalf-2_5.so.25()(64bit)
    libOpenColorIO.so.1()(64bit)
    libOpenImageIO.so.2.2()(64bit)
    libPtex.so.2.3()(64bit)
    libX11.so.6()(64bit)
    libboost_python39.so.1.75.0()(64bit)
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libembree3.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libopenvdb.so.8.0()(64bit)
    libosdCPU.so.3.4.4()(64bit)
    libosdGPU.so.3.4.4()(64bit)
    liboslquery.so.1.11()(64bit)
    libpthread.so.0()(64bit)
    libpython3.9.so.1.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.1)(64bit)
    libstdc++.so.6(CXXABI_1.3.11)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.7)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libtbb.so.2()(64bit)
    rtld(GNU_HASH)

usd-devel (rpmlib, GLIBC filtered):
    cmake-filesystem
    cmake-filesystem(x86-64)
    libusd_ms.so.0()(64bit)
    usd-libs(x86-64)

python3-usd (rpmlib, GLIBC filtered):
    font(roboto)
    font(robotoblack)
    font(robotolight)
    font(robotomono)
    ld-linux-x86-64.so.2()(64bit)
    libOpenImageIO_Util.so.2.2()(64bit)
    libboost_python39.so.1.75.0()(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)
    libpthread.so.0()(64bit)
    libpython3.9.so.1.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.1)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libtbb.so.2()(64bit)
    libusd_ms.so.0()(64bit)
    python(abi)
    python3dist(jinja2)
    python3dist(pyopengl)
    python3dist(pyside2)
    rtld(GNU_HASH)

usd-debuginfo (rpmlib, GLIBC filtered):

usd-debugsource (rpmlib, GLIBC filtered):



Provides
--------
usd:
    bundled(SPIRV-Reflect)
    bundled(VulkanMemoryAllocator)
    bundled(double-conversion)
    bundled(ilmbase)
    bundled(lz4)
    bundled(pugixml)
    bundled(rapidjson)
    bundled(stb_image)
    bundled(stb_image_resize)
    bundled(stb_image_write)
    usd
    usd(x86-64)

usd-libs:
    libusd_ms.so.0()(64bit)
    usd-libs
    usd-libs(x86-64)

usd-devel:
    cmake(pxr)
    usd-devel
    usd-devel(x86-64)

python3-usd:
    application()
    application(org.openusd.usdview.desktop)
    python-pxr
    python-usd
    python3-pxr
    python3-usd
    python3-usd(x86-64)
    python3.9-pxr
    python3.9-usd

usd-debuginfo:
    debuginfo(build-id)
    usd-debuginfo
    usd-debuginfo(x86-64)

usd-debugsource:
    usd-debugsource
    usd-debugsource(x86-64)



Generated by fedora-review 0.7.6 (b083f91) last change: 2020-11-10
Command line :/usr/bin/fedora-review -b 1895567
Buildroot used: fedora-rawhide-x86_64
Active plugins: C/C++, Generic, Shell-api, Python
Disabled plugins: Java, Perl, SugarActivity, Ruby, R, PHP, Haskell, fonts, Ocaml
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 27 Luya Tshimbalanga 2021-05-12 23:32:23 UTC
You are very welcome Ben. I really appreciate your review and feedback. Note that I assigned the review to you in order to validate the importation of the package in the main branch. See https://fedoraproject.org/wiki/Package_Review_Process
Feel free to become a co-maintainer if you like.

Comment 28 Gwyn Ciesla 2021-05-14 14:14:07 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/usd

Comment 29 Fedora Update System 2021-05-15 04:22:24 UTC
FEDORA-2021-c918be3bc8 has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-c918be3bc8

Comment 30 Fedora Update System 2021-05-15 04:23:02 UTC
FEDORA-2021-78544b11bd has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-78544b11bd

Comment 31 Ben Beasley 2021-05-15 11:45:55 UTC
Thanks. Don’t forget to create Bugzilla bugs blocking the various ExcludeArch tracker bugs, even if you close them immediately as WONTFIX (https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures).

> Feel free to become a co-maintainer if you like.

I think you’ll have to the one to add me, but sure, I’ll co-maintain. I’ve spent enough time understanding this package that I might as well stick around and help. :-)

Comment 32 Luya Tshimbalanga 2021-05-15 15:52:21 UTC
(In reply to Ben Beasley from comment #31)
> Thanks. Don’t forget to create Bugzilla bugs blocking the various
> ExcludeArch tracker bugs, even if you close them immediately as WONTFIX
> (https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_architecture_build_failures).


Done. https://bugzilla.redhat.com/show_bug.cgi?id=1960848



> I think you’ll have to the one to add me, but sure, I’ll co-maintain. I’ve
> spent enough time understanding this package that I might as well stick
> around and help. :-)

Would you provide your Fedora account username please?

Comment 33 Ben Beasley 2021-05-15 15:57:00 UTC
> Would you provide your Fedora account username please?

music

Comment 34 Luya Tshimbalanga 2021-05-15 17:13:19 UTC
All set.

Comment 35 Fedora Update System 2021-05-16 02:47:41 UTC
FEDORA-2021-c918be3bc8 has been pushed to the Fedora 34 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2021-c918be3bc8 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-c918be3bc8

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 36 Fedora Update System 2021-05-16 03:02:23 UTC
FEDORA-2021-78544b11bd has been pushed to the Fedora 33 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2021-78544b11bd \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-78544b11bd

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 37 Fedora Update System 2021-05-24 01:00:40 UTC
FEDORA-2021-c918be3bc8 has been pushed to the Fedora 34 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 38 Fedora Update System 2021-05-24 01:14:56 UTC
FEDORA-2021-78544b11bd has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.


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