bigcat88/pillow_heif

Failed to build x265 in freebsd 13.2

gcourchinoux opened this issue · 6 comments

Describe the bug

Impossible to build x265 dependency on freebsd 13.2.

Missing the <sys/stat.h> header in ringmem.cpp

Fix it in tmp directory is useless because the build script at each call replace in tmp dir with the buggy x265.

Steps/Code to Reproduce

Clone this repo on freebsd with python 3.9 and clang 15.0.7 x265 will fail.

Expected Results

X265 be build.

Actual Results

[ 98%] Building CXX object common/CMakeFiles/common.dir/ringmem.cpp.o 1 warning generated. /tmp/ph_build_stuff/x265/source/common/ringmem.cpp:163:27: error: use of undeclared identifier 'S_IRUSR' mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; ^ /tmp/ph_build_stuff/x265/source/common/ringmem.cpp:163:37: error: use of undeclared identifier 'S_IWUSR' mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; ^ /tmp/ph_build_stuff/x265/source/common/ringmem.cpp:163:47: error: use of undeclared identifier 'S_IRGRP' mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; ^ /tmp/ph_build_stuff/x265/source/common/ringmem.cpp:163:57: error: use of undeclared identifier 'S_IWGRP' mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; ^ /tmp/ph_build_stuff/x265/source/common/ringmem.cpp:163:67: error: use of undeclared identifier 'S_IROTH' mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; ^ /tmp/ph_build_stuff/x265/source/common/ringmem.cpp:163:77: error: use of undeclared identifier 'S_IWOTH' mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; ^

Versions

Imposible to install pillow_heif.

Thanks for the info.
In theory, you can build and install x265 in FreeBSD (or in general the entire libheif with dependencies), although I don’t know if the installation script will find it (as far as I remember, in FreeBSD you need to check if the library is worth using ldconfig -r)
As soon as I have time, I'll try to fix it, there is simply no FriBSD nearby to do it quickly.

Thanks for your answer.

I have already tried to build with a patched version of x265. But the configure script doesn't find it.

I don't find how x265 is pointed by the configure script.

Why not just build libheif itself after building x265?
Wrote test CI for FreeBSD, everything works if libeif is already installed.

Hi, thanks for your message .
It's a good idea
I will try when I have a time and I will keep you inform.

Wrote test CI for FreeBSD, everything works if libeif is already installed.

We’ll probably stop here, because in the next versions I’m going to remove the automatic assembly of all libraries, that is, only the detection of the libheif library will remain.

Anyone who needs a custom build can build libheif or install it from their OS repository.

Thanks for this issue, I think it can be closed(am I right?), since now there is a test in CI that cover it, and I will try to keep minimal supported equal libheif version to last avalaible libheif in FreeBSD repo.

Thanks , I will close it.