[Bug 1895567] Review Request: usd - 3D VFX pipeline interchange file format

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

Luya Tshimbalanga <luya_tfz@xxxxxxxxxxxxxxxx> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
              Flags|needinfo?(luya_tfz@thefinal |
                   |zone.net)                   |



--- Comment #25 from Luya Tshimbalanga <luya_tfz@xxxxxxxxxxxxxxxx> ---
(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


-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux