Repository navigation
0.1.2+ubuntu2404
Pre-release
Pre-release
Update reference pHash library
Under Ubuntu 24.04, there was a compile problem with the old version:
Using cached cppyy_cling-6.32.8-py2.py3-none-manylinux2014_x86_64.whl (47.8 MB)
Building wheels for collected packages: pHashPy
Building wheel for pHashPy (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for pHashPy (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [235 lines of output]
/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
self._finalize_license_expression()
running bdist_wheel
running build
running build_py
creating build/lib.linux-x86_64-cpython-312/pHashPy
copying pHashPy/__init__.py -> build/lib.linux-x86_64-cpython-312/pHashPy
copying pHashPy/__main__.py -> build/lib.linux-x86_64-cpython-312/pHashPy
copying pHashPy/helpers.py -> build/lib.linux-x86_64-cpython-312/pHashPy
copying pHashPy/image.py -> build/lib.linux-x86_64-cpython-312/pHashPy
copying pHashPy/video.py -> build/lib.linux-x86_64-cpython-312/pHashPy
running build_ext
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- The C compiler identification is GNU 13.3.0
-- The CXX compiler identification is GNU 13.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) at CMakeLists.txt:33 (EXEC_PROGRAM):
Policy CMP0153 is not set: The exec_program command should not be called.
Run "cmake --help-policy CMP0153" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
Use execute_process() instead.
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at CMakeLists.txt:34 (EXEC_PROGRAM):
Policy CMP0153 is not set: The exec_program command should not be called.
Run "cmake --help-policy CMP0153" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
Use execute_process() instead.
This warning is for project developers. Use -Wno-dev to suppress it.
libmpg123 found at /usr/lib/x86_64-linux-gnu/libmpg123.so
-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/build/temp.linux-x86_64-cpython-312
[ 5%] Building CXX object CMakeFiles/pHash.dir/src/ph_fft.cpp.o
[ 29%] Building CXX object bindings/java/CMakeFiles/pHash-jni.dir/dummy.cpp.o
[ 29%] Building CXX object CMakeFiles/pHash.dir/src/audiophash.cpp.o
[ 29%] Building CXX object CMakeFiles/pHash.dir/src/cimgffmpeg.cpp.o
[ 29%] Building CXX object CMakeFiles/pHash.dir/src/pHash.cpp.o
[ 35%] Linking CXX shared library libpHash-jni.so
In file included from /tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/pHash.h:59,
from /tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/audiophash.h:33,
from /tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/audiophash.cpp:25:
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/third-party/CImg/CImg.h:483:10: fatal error: jpeglib.h: No such file or directory
483 | #include "jpeglib.h"
| ^~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/pHash.dir/build.make:90: CMakeFiles/pHash.dir/src/audiophash.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 35%] Built target pHash-jni
In file included from /tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/pHash.h:59,
from /tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/pHash.cpp:25:
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/third-party/CImg/CImg.h:483:10: fatal error: jpeglib.h: No such file or directory
483 | #include "jpeglib.h"
| ^~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/pHash.dir/build.make:76: CMakeFiles/pHash.dir/src/pHash.cpp.o] Error 1
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp: In function ‘int ReadFrames(VFInfo*, cimg_library::CImgList<unsigned char>*, unsigned int, unsigned int)’:
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:69:50: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘codec’
69 | if (st_info->pFormatCtx->streams[i]->codec->codec_type ==
| ^~~~~
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:79:65: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘codec’
79 | st_info->pFormatCtx->streams[st_info->videoStream]->codec;
| ^~~~~
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:85:47: error: invalid conversion from ‘const AVCodec*’ to ‘AVCodec*’ [-fpermissive]
85 | st_info->pCodec = avcodec_find_decoder(st_info->pCodecCtx->codec_id);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| const AVCodec*
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:113:9: error: ‘avpicture_get_size’ was not declared in this scope
113 | avpicture_get_size(ffmpeg_pixfmt, st_info->width, st_info->height);
| ^~~~~~~~~~~~~~~~~~
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:117:21: error: ‘AVPicture’ was not declared in this scope; did you mean ‘AVPictureType’?
117 | avpicture_fill((AVPicture *)pConvertedFrame, buffer, ffmpeg_pixfmt,
| ^~~~~~~~~
| AVPictureType
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:117:32: error: expected primary-expression before ‘)’ token
117 | avpicture_fill((AVPicture *)pConvertedFrame, buffer, ffmpeg_pixfmt,
| ^
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:117:5: error: ‘avpicture_fill’ was not declared in this scope
117 | avpicture_fill((AVPicture *)pConvertedFrame, buffer, ffmpeg_pixfmt,
| ^~~~~~~~~~~~~~
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:138:27: warning: ‘void av_init_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
138 | av_init_packet(&avpkt);
| ~~~~~~~~~~~~~~^~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:44,
from /tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.h:36,
from /tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:25:
/usr/include/x86_64-linux-gnu/libavcodec/packet.h:629:6: note: declared here
629 | void av_init_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:146:13: error: ‘avcodec_decode_video2’ was not declared in this scope; did you mean ‘avcodec_decode_subtitle2’?
146 | avcodec_decode_video2(st_info->pCodecCtx, pFrame, &frameFinished,
| ^~~~~~~~~~~~~~~~~~~~~
| avcodec_decode_subtitle2
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:167:13: error: ‘av_free_packet’ was not declared in this scope; did you mean ‘av_new_packet’?
167 | av_free_packet(&packet);
| ^~~~~~~~~~~~~~
| av_new_packet
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp: In function ‘int NextFrames(VFInfo*, cimg_library::CImgList<unsigned char>*)’:
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:225:50: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘codec’
225 | if (st_info->pFormatCtx->streams[i]->codec->codec_type ==
| ^~~~~
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:238:65: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘codec’
238 | st_info->pFormatCtx->streams[st_info->videoStream]->codec;
| ^~~~~
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:241:47: error: invalid conversion from ‘const AVCodec*’ to ‘AVCodec*’ [-fpermissive]
241 | st_info->pCodec = avcodec_find_decoder(st_info->pCodecCtx->codec_id);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| const AVCodec*
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:271:9: error: ‘avpicture_get_size’ was not declared in this scope
271 | avpicture_get_size(ffmpeg_pixfmt, st_info->width, st_info->height);
| ^~~~~~~~~~~~~~~~~~
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:277:21: error: ‘AVPicture’ was not declared in this scope; did you mean ‘AVPictureType’?
277 | avpicture_fill((AVPicture *)pConvertedFrame, buffer, ffmpeg_pixfmt,
| ^~~~~~~~~
| AVPictureType
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:277:32: error: expected primary-expression before ‘)’ token
277 | avpicture_fill((AVPicture *)pConvertedFrame, buffer, ffmpeg_pixfmt,
| ^
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:277:5: error: ‘avpicture_fill’ was not declared in this scope
277 | avpicture_fill((AVPicture *)pConvertedFrame, buffer, ffmpeg_pixfmt,
| ^~~~~~~~~~~~~~
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:295:27: warning: ‘void av_init_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
295 | av_init_packet(&avpkt);
| ~~~~~~~~~~~~~~^~~~~~~~
/usr/include/x86_64-linux-gnu/libavcodec/packet.h:629:6: note: declared here
629 | void av_init_packet(AVPacket *pkt);
| ^~~~~~~~~~~~~~
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:303:13: error: ‘avcodec_decode_video2’ was not declared in this scope; did you mean ‘avcodec_decode_subtitle2’?
303 | avcodec_decode_video2(st_info->pCodecCtx, pFrame, &frameFinished,
| ^~~~~~~~~~~~~~~~~~~~~
| avcodec_decode_subtitle2
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:326:9: error: ‘av_free_packet’ was not declared in this scope; did you mean ‘av_new_packet’?
326 | av_free_packet(&packet);
| ^~~~~~~~~~~~~~
| av_new_packet
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp: In function ‘long int GetNumberVideoFrames(const char*)’:
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:384:41: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘codec’
384 | if (pFormatCtx->streams[i]->codec->codec_type ==
| ^~~~~
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp: In function ‘float fps(const char*)’:
/tmp/pip-install-60k485jl/phashpy_abeddbe8b2c348c9b7afb94b650ce8a8/pHash/src/cimgffmpeg.cpp:438:37: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘codec’
438 | if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
| ^~~~~
make[2]: *** [CMakeFiles/pHash.dir/build.make:118: CMakeFiles/pHash.dir/src/cimgffmpeg.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:125: CMakeFiles/pHash.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
Traceback (most recent call last):
File "/pyenv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File "/pyenv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/pyenv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
return _build_backend().build_wheel(wheel_directory, config_settings,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 435, in build_wheel
return _build(['bdist_wheel', '--dist-info-dir', str(metadata_directory)])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 423, in _build
return self._build_with_temp_dir(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 404, in _build_with_temp_dir
self.run_setup()
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 512, in run_setup
super().run_setup(setup_script=setup_script)
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 317, in run_setup
exec(code, locals())
File "<string>", line 60, in <module>
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 115, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 186, in setup
return run_commands(dist)
^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
dist.run_commands()
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1002, in run_commands
self.run_command(cmd)
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 1102, in run_command
super().run_command(command)
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/command/bdist_wheel.py", line 370, in run
self.run_command("build")
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 357, in run_command
self.distribution.run_command(command)
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 1102, in run_command
super().run_command(command)
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 357, in run_command
self.distribution.run_command(command)
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 1102, in run_command
super().run_command(command)
File "/tmp/pip-build-env-wp7331xn/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
cmd_obj.run()
File "<string>", line 39, in run
File "<string>", line 53, in build_cmake
File "/usr/lib/python3.12/subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['make', '-j']' returned non-zero exit status 2.
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pHashPy
Failed to build pHashPy
ERROR: Could not build wheels for pHashPy, which is required to install pyproject.toml-based projects