Bug 261415

Summary: multimedia/onevpl: wrong python version used if newer python (than default) is installed ('make install' fails)
Product: Ports & Packages Reporter: John Hein <jcfyecrayz>
Component: Individual Port(s)Assignee: Jan Beich <jbeich>
Status: Closed FIXED    
Severity: Affects Some People CC: python
Priority: --- Flags: bugzilla: maintainer-feedback? (jbeich)
jbeich: merge-quarterly+
Version: Latest   
Hardware: Any   
OS: Any   
See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262109

Description John Hein 2022-01-23 15:28:06 UTC
If you have a newer python installed (say python3.10 now while python3.8 is the default ports version), then 'make install' fails (or 'make check-plist').


 .
 .
===>  Configuring for oneVPL-2022.0.2
 .
 .
-- Found Python3: /usr/local/bin/python3.10 (found version "3.10.2") found components: Interpreter Development Development.Module Development.Embed
 .
 .
--   BUILD_PYTHON_BINDING                 : true
 .
 .
  Manually-specified variables were not used by the project:

    BOOST_PYTHON_SUFFIX
    CMAKE_VERBOSE_MAKEFILE
    Python_ADDITIONAL_VERSIONS
 .
 .
===>  Building for oneVPL-2022.0.2
 .
 .
[ 84% 101/116] /usr/bin/c++ -DLIBVA_SUPPORT -DPYBIND11_COMPILER_TYPE=\"_librs_abi\" -D_FORTIFY_SOURCE=2 -Dpyvpl_EXPORTS -I/usr/ports/multimedia/onevpl/work/oneVPL-2022.0.2/api -isystem /usr/local/include/python3.10 -z relro -z now -z noexecstack -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -fPIC -fvisibility=hidden -Wformat -Wformat-security -Werror=format-security -fstack-protector-strong -Wall -flto -std=gnu++17 -MD -MT preview/python/binding/CMakeFiles/pyvpl.dir/bitstream.cpp.o -MF preview/python/binding/CMakeFiles/pyvpl.dir/bitstream.cpp.o.d -o preview/python/binding/CMakeFiles/pyvpl.dir/bitstream.cpp.o -c /usr/ports/multimedia/onevpl/work/oneVPL-2022.0.2/preview/python/binding/bitstream.cpp
c++: warning: -z relro: 'linker' input unused [-Wunused-command-line-argument]
c++: warning: -z now: 'linker' input unused [-Wunused-command-line-argument]
c++: warning: -z noexecstack: 'linker' input unused [-Wunused-command-line-argument]
 .
 .
===>   Registering installation for oneVPL-2022.0.2 as automatic
/usr/ports/multimedia/onevpl/work/.PLIST.mktmp
pkg-static: Unable to access file /usr/ports/multimedia/onevpl/work/stage/usr/local/lib/python3.8/pyvpl.cpython-38.so:No such file or directory
*** Error code 1


% ls /usr/ports/multimedia/onevpl/work/stage/usr/local/lib/python3.8
pyvpl.cpython-310.so
Comment 1 John Hein 2022-01-24 16:02:33 UTC
Adding -DPython3_EXECUTABLE=${PYTHON_CMD} to CMAKE_ARGS seems to do the trick.

This might be considered a bug in the cmake support in Uses/python.mk (Python_ADDITIONAL_VERSIONS did not seem to help - maybe because of changes over the years to the "FindPython" infrastructure in cmake).  Maybe Python3_EXECUTABLE should be added in python.mk

python@ CC'd for input.
Comment 2 commit-hook freebsd_committer freebsd_triage 2022-02-11 11:09:31 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0378719b21c61d5a5d3dc8f31be7781fd7ff11ef

commit 0378719b21c61d5a5d3dc8f31be7781fd7ff11ef
Author:     John Hein <jcfyecrayz@liamekaens.com>
AuthorDate: 2022-01-24 16:02:33 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2022-02-11 11:07:00 +0000

    multimedia/onevpl: respect PYTHON_DEFAULT

    $ pkg install python311
    $ make -V PYTHON_DEFAULT
    3.8
    $ make clean all
    [...]
    -- Found Python3: /usr/local/bin/python3.11 (found version "3.11.0") found components: Interpreter Development Development.Module Development.Embed
    [...]
    CMake Warning:
      Manually-specified variables were not used by the project:
    [...]
        Python_ADDITIONAL_VERSIONS
    [...]
    $ make check-plist
    ====> Checking for pkg-plist issues (check-plist)
    ===> Parsing plist
    ===> Checking for items in STAGEDIR missing from pkg-plist
    Error: Orphaned: %%PYTHON_LIBDIR%%/pyvpl.cpython-311.so
    ===> Checking for items in pkg-plist which are not in STAGEDIR
    Error: Missing: %%PYTHON_LIBDIR%%/pyvpl%%PYTHON_EXT_SUFFIX%%.so
    ===> Error: Plist issues found.
    *** Error code 1

    PR:             261415

 multimedia/onevpl/Makefile | 1 +
 1 file changed, 1 insertion(+)
Comment 3 commit-hook freebsd_committer freebsd_triage 2022-02-11 11:09:32 UTC
A commit in branch 2022Q1 references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d4d984097ef8f4a36b05b610f5ff8de7a22d58c2

commit d4d984097ef8f4a36b05b610f5ff8de7a22d58c2
Author:     John Hein <jcfyecrayz@liamekaens.com>
AuthorDate: 2022-01-24 16:02:33 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2022-02-11 11:08:43 +0000

    multimedia/onevpl: respect PYTHON_DEFAULT

    $ pkg install python311
    $ make -V PYTHON_DEFAULT
    3.8
    $ make clean all
    [...]
    -- Found Python3: /usr/local/bin/python3.11 (found version "3.11.0") found components: Interpreter Development Development.Module Development.Embed
    [...]
    CMake Warning:
      Manually-specified variables were not used by the project:
    [...]
        Python_ADDITIONAL_VERSIONS
    [...]
    $ make check-plist
    ====> Checking for pkg-plist issues (check-plist)
    ===> Parsing plist
    ===> Checking for items in STAGEDIR missing from pkg-plist
    Error: Orphaned: %%PYTHON_LIBDIR%%/pyvpl.cpython-311.so
    ===> Checking for items in pkg-plist which are not in STAGEDIR
    Error: Missing: %%PYTHON_LIBDIR%%/pyvpl%%PYTHON_EXT_SUFFIX%%.so
    ===> Error: Plist issues found.
    *** Error code 1

    PR:             261415
    (cherry picked from commit 0378719b21c61d5a5d3dc8f31be7781fd7ff11ef)

 multimedia/onevpl/Makefile | 1 +
 1 file changed, 1 insertion(+)