#67404 closed defect (worksforme)
libheif @1.16.1_0: error: non-portable path to file '<DAV1D/xxx.h>' and '<AOM/xxx.h>'
Reported by: | cave-canem | Owned by: | mascguy (Christopher Nielsen) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.8.1 |
Keywords: | Mavericks | Cc: | MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), cave-canem, rmottola (Riccardo) |
Port: | libheif |
Description
sudo port -vd upgrade libheif :debug:clean Starting logging for libheif @1.16.1_0 :debug:sysinfo OS X 10.9.5 (darwin/13.4.0) arch i386 :debug:sysinfo MacPorts 2.8.1 :debug:sysinfo Xcode 6.2, CLT 6.2.0.0.1.1424975374 :debug:sysinfo SDK 10.9 :debug:sysinfo MACOSX_DEPLOYMENT_TARGET: 10.9 :msg:clean ---> Computing dependencies for libheif:debug:clean libheif has no conflicts ... /opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/libheif-1.16.1/libheif/plugins/decoder_dav1d.cc :info:build /opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/libheif-1.16.1/libheif/plugins/decoder_dav1d.cc:36:10: error: non-portable path to file '<DAV1D/version.h>'; specified path differs in case from file name on disk [-Werror,-Wnonportable-include-path] :info:build #include <dav1d/version.h> :info:build ^~~~~~~~~~~~~~~~~ :info:build <DAV1D/version.h> :info:build /opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/libheif-1.16.1/libheif/plugins/decoder_dav1d.cc:37:10: error: non-portable path to file '<DAV1D/dav1d.h>'; specified path differs in case from file name on disk [-Werror,-Wnonportable-include-path] :info:build #include <dav1d/dav1d.h> :info:build ^~~~~~~~~~~~~~~ :info:build <DAV1D/dav1d.h> :info:build 2 errors generated. :info:build make[2]: *** [libheif/CMakeFiles/heif.dir/build.make:457: libheif/CMakeFiles/heif.dir/plugins/decoder_dav1d.cc.o] Error 1 :info:build make[2]: *** Waiting for unfinished jobs.... :info:build make[2]: Leaving directory '/opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/build' :info:build make[1]: *** [CMakeFiles/Makefile2:310: libheif/CMakeFiles/heif.dir/all] Error 2 :info:build make[1]: Leaving directory '/opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/build' :info:build make: *** [Makefile:159: all] Error 2 :info:build make: Leaving directory '/opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/build' :info:build Command failed: cd "/opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/build" && /usr/bin/make -j4 -w all VERBOSE=ON :info:build Exit code: 2 :error:build Failed to build libheif: command execution failed :debug:build Error code: CHILDSTATUS 27425 2 :debug:build Backtrace: command execution failed :debug:build while executing :debug:build "system {*}$notty {*}$callback {*}$nice $fullcmdstring" :debug:build invoked from within :debug:build "command_exec -callback portprogress::target_progress_callback build" :debug:build (procedure "portbuild::build_main" line 8) :debug:build invoked from within :debug:build "$procedure $targetname"
port installed dav1d The following ports are currently installed: dav1d @1.2.0_0 (active)
See attachment for detailed log.
Attachments (2)
Change History (24)
Changed 18 months ago by cave-canem
Attachment: | main.log.tar.xz added |
---|
comment:1 Changed 18 months ago by mascguy (Christopher Nielsen)
Cc: | mascguy removed |
---|---|
Owner: | set to mascguy |
Status: | new → assigned |
I'll test locally, both with and without a case-sensitive filesystem.
In the interim, you can install our published binary, unless you're only interested in building from source:
$ sudo port -b install libheif
Binary installation is the default anyway, but here we're forcing it to avoid a source build.
comment:2 follow-up: 3 Changed 18 months ago by mascguy (Christopher Nielsen)
Can you run the following, and paste the output in here: port contents dav1d
comment:3 Changed 18 months ago by mascguy (Christopher Nielsen)
Summary: | libheif @1.16.1_0: libheif/CMakeFiles/heif.dir/plugins/decoder_dav1d.cc.o] Error 1 → libheif @1.16.1_0: error: non-portable path to file '<DAV1D/xxx.h> |
---|
Replying to mascguy:
Can you run the following, and paste the output in here:
port contents dav1d
Also, do you have HomeBrew installed?
And finally, can you try building with trace mode enabled, via the following:
$ sudo port clean libheif $ sudo port -st upgrade libheif
comment:4 Changed 18 months ago by cave-canem
Christopher Nielsen:
sudo port contents dav1d Password: Port dav1d contains: /opt/MacPorts/bin/dav1d /opt/MacPorts/include/dav1d/common.h /opt/MacPorts/include/dav1d/data.h /opt/MacPorts/include/dav1d/dav1d.h /opt/MacPorts/include/dav1d/headers.h /opt/MacPorts/include/dav1d/picture.h /opt/MacPorts/include/dav1d/version.h /opt/MacPorts/lib/libdav1d.6.dylib /opt/MacPorts/lib/libdav1d.dylib /opt/MacPorts/lib/pkgconfig/dav1d.pc /opt/MacPorts/share/doc/dav1d/CONTRIBUTING.md /opt/MacPorts/share/doc/dav1d/COPYING /opt/MacPorts/share/doc/dav1d/NEWS /opt/MacPorts/share/doc/dav1d/README.md /opt/MacPorts/share/doc/dav1d/THANKS.md /opt/MacPorts/share/doc/dav1d/dav1d_logo.png
comment:5 Changed 18 months ago by cave-canem
Christopher Nielsen:
- I can't install published binary because they don't exist for my OS (not published).
- I don't have HomeBrew installed.
sudo port clean libheif ---> Cleaning libheif
sudo port -stvd upgrade libheif DEBUG: Copying /Users/ES/Library/Preferences/com.apple.dt.Xcode.plist to /opt/MacPorts/var/macports/home/Library/Preferences DEBUG: epoch: in tree: 0 installed: 0 DEBUG: libheif 1.16.1_0 exists in the ports tree DEBUG: libheif 1.15.2_0 is the latest installed DEBUG: libheif 1.15.2_0 is active DEBUG: Merging existing requested variants '' into variants DEBUG: new fully merged portvariants: bash_completion + DEBUG: Changing to port directory: /opt/macports-ports/multimedia/libheif DEBUG: OS darwin/13.4.0 (macOS 10.9.5) arch i386 DEBUG: Sourcing PortGroup github 1.0 from /opt/macports-ports/_resources/port1.0/group/github-1.0.tcl ... DEBUG: system: cd "/opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/build" && /opt/MacPorts/bin/cmake -G "CodeBlocks - Unix Makefiles" -DCMAKE_BUILD_TYPE=MacPorts -DCMAKE_INSTALL_PREFIX="/opt/MacPorts" -DCMAKE_INSTALL_NAME_DIR="/opt/MacPorts/lib" -DCMAKE_SYSTEM_PREFIX_PATH="/opt/MacPorts;/usr" -DCMAKE_C_COMPILER="$CC" -DCMAKE_CXX_COMPILER="$CXX" -DCMAKE_OBJC_COMPILER="$CC" -DCMAKE_OBJCXX_COMPILER="$CXX" -DCMAKE_POLICY_DEFAULT_CMP0025=NEW -DCMAKE_POLICY_DEFAULT_CMP0060=NEW -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COLOR_MAKEFILE=ON -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_MAKE_PROGRAM=/usr/bin/make -DCMAKE_MODULE_PATH="/opt/MacPorts/share/cmake/Modules" -DCMAKE_PREFIX_PATH="/opt/MacPorts/share/cmake/Modules" -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON -DCMAKE_INSTALL_RPATH="/opt/MacPorts/lib" -Wno-dev -DENABLE_PLUGIN_LOADING:BOOL=OFF -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.9" -DCMAKE_OSX_SYSROOT="/" /opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/libheif-1.16.1 CMake Error: The source directory "/opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/libheif-1.16.1" does not exist. Specify --help for usage, or press the help button on the CMake GUI. Command failed: cd "/opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/build" && /opt/MacPorts/bin/cmake -G "CodeBlocks - Unix Makefiles" -DCMAKE_BUILD_TYPE=MacPorts -DCMAKE_INSTALL_PREFIX="/opt/MacPorts" -DCMAKE_INSTALL_NAME_DIR="/opt/MacPorts/lib" -DCMAKE_SYSTEM_PREFIX_PATH="/opt/MacPorts;/usr" -DCMAKE_C_COMPILER="$CC" -DCMAKE_CXX_COMPILER="$CXX" -DCMAKE_OBJC_COMPILER="$CC" -DCMAKE_OBJCXX_COMPILER="$CXX" -DCMAKE_POLICY_DEFAULT_CMP0025=NEW -DCMAKE_POLICY_DEFAULT_CMP0060=NEW -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COLOR_MAKEFILE=ON -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_MAKE_PROGRAM=/usr/bin/make -DCMAKE_MODULE_PATH="/opt/MacPorts/share/cmake/Modules" -DCMAKE_PREFIX_PATH="/opt/MacPorts/share/cmake/Modules" -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON -DCMAKE_INSTALL_RPATH="/opt/MacPorts/lib" -Wno-dev -DENABLE_PLUGIN_LOADING:BOOL=OFF -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.9" -DCMAKE_OSX_SYSROOT="/" /opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/libheif-1.16.1 Exit code: 1 The following file would have been hidden from the build system by trace mode if it existed: /usr/local/MacPorts/var/macports/home/.CFUserTextEncoding Error: Failed to configure libheif: configure failure: command execution failed DEBUG: Error code: NONE DEBUG: Backtrace: configure failure: command execution failed while executing "$procedure $targetname" Error: See /opt/MacPorts/var/macports/logs/_opt_macports-ports_multimedia_libheif/libheif/main.log for details.
See attachment for detailed log. (main.log_v2.tar.xz)
comment:6 Changed 18 months ago by cave-canem
Christopher Nielsen:
port deps ffmpeg-upstream Full Name: ffmpeg-upstream @6.0_0+gpl2 Extract Dependencies: xz Build Dependencies: pkgconfig, gmake, cctools, texinfo, nasm Library Dependencies: lame, libiconv, libvorbis, libopus, libogg, librsvg, libtheora, libmodplug, libass, libbluray, libvpx, gnutls, openjpeg, zvbi, fontconfig, freetype, fribidi, speex, soxr, bzip2, lzo2, xz, zimg, zlib, libsdl2, dav1d, aom, rav1e, svt-av1, XviD, x264, x265, libvidstab, legacy-support
port installed ffmpeg-upstream The following ports are currently installed: ffmpeg-upstream @6.0_0+gpl2+gpl3+jack+libdc1394+librtmp+nonfree+x11 (active)
ffmpeg -version ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers built with clang version 16.0.3 configuration: --prefix=/opt/MacPorts --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-librsvg --enable-libtheora --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex --enable-libass --enable-libbluray --enable-libzimg --enable-libzvbi --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --enable-zlib --enable-libjack --disable-libopencore-amrnb --disable-libopencore-amrwb --enable-indev=jack --enable-opencl --disable-outdev=xv --enable-audiotoolbox --enable-videotoolbox --enable-sdl2 --disable-securetransport --mandir=/opt/MacPorts/share/man --enable-shared --enable-pthreads --cc=/opt/MacPorts/bin/clang --enable-libdav1d --enable-libaom --enable-librav1e --enable-libsvtav1 --arch=x86_64 --enable-x86asm --enable-libdc1394 --enable-librtmp --enable-gpl --enable-postproc --enable-libx264 --enable-libx265 --enable-libxvid --enable-libvidstab --enable-version3 --enable-libsmbclient --enable-libaribb24 --enable-nonfree --enable-libfdk-aac libavutil 58. 2.100 / 58. 2.100 libavcodec 60. 3.100 / 60. 3.100 libavformat 60. 3.100 / 60. 3.100 libavdevice 60. 1.100 / 60. 1.100 libavfilter 9. 3.100 / 9. 3.100 libswscale 7. 1.100 / 7. 1.100 libswresample 4. 10.100 / 4. 10.100 libpostproc 57. 1.100 / 57. 1.100
comment:7 Changed 18 months ago by mascguy (Christopher Nielsen)
Summary: | libheif @1.16.1_0: error: non-portable path to file '<DAV1D/xxx.h> → libheif @1.16.1_0: error: non-portable path to file '<DAV1D/xxx.h>' and '<AOM/xxx.h>' |
---|
It looks like the same thing is happening with aom
headers as well. All of which makes no sense, as the case matches exactly between the project, and the dependents it's utilizing:
:info:build /opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_libheif/libheif/work/libheif-1.16.1/libheif/plugins/decoder_aom.cc:33:10: error: non-portable path to file '<AOM/aom_decoder.h>'; specified path differs in case from file name on disk [-Werror,-Wnonportable-include-path] :info:build #include <aom/aom_decoder.h> :info:build ^~~~~~~~~~~~~~~~~~~ :info:build <AOM/aom_decoder.h>
Marcus/Anyone, what am I missing here...?
comment:8 Changed 18 months ago by mascguy (Christopher Nielsen)
It looks (?) like you may have a default MacPorts Clang configured. Can you run the following, and paste in the output: port select clang
.
comment:9 follow-up: 10 Changed 18 months ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
I must say, I am at a loss.
I cannot reproduce these errors, but I do not have access to a case-sensitive file system.
Could there be two installations of aom
and dav1d
, and the compiler is finding the wrong one?
If the compiler is doing something strange, perhaps we can create a simple test case.
If you look through the config.log for libheif, do the values of pkg_cv_dav1d_CFLAGS
and/or pkg_cv_aom_CFLAGS
give any hints?
comment:10 Changed 18 months ago by mascguy (Christopher Nielsen)
Replying to MarcusCalhoun-Lopez:
I cannot reproduce these errors, but I do not have access to a case-sensitive file system.
There's an easy way to fix that, by creating either a RAM disk - or other temporary storage - for the MacPorts build area (formatted as case-sensitive):
$ sudo bash -c 'dev=$(hdiutil attach -nomount ram://16777216) ; newfs_hfs -s -v "MacPorts-RamDisk-8G" ${dev} ; mount -t hfs ${dev} /opt/local/var/macports/build'
Inspiration taken from open enhancement request: comment:7:issue:32261. I've been using this approach for many months, and it works well. It's also allowed me to proactively catch legitimate instances of case mis-mismatches prior to committing, so it's worthwhile in-general.
Even with that in play though, I'm not able to reproduce this issue either. (Nor did this occur on any of the buildbots.) So I suspect it's related to a newer version of Clang.
comment:11 follow-up: 14 Changed 18 months ago by cave-canem
Christopher Nielsen:
port select clang Available versions for clang: mp-clang-10 mp-clang-11 mp-clang-13 mp-clang-14 mp-clang-15 mp-clang-16 (active) mp-clang-3.7 mp-clang-5.0 mp-clang-9.0 none
port select --summary | rg "(Name|====|clang|llvm)" Name Selected Options ==== ======== ======= clang mp-clang-16 mp-clang-10 mp-clang-11 mp-clang-13 mp-clang-14 mp-clang-15 mp-clang-16 mp-clang-3.7 mp-clang-5.0 mp-clang-9.0 none llvm mp-llvm-16 mp-llvm-10 mp-llvm-11 mp-llvm-12 mp-llvm-13 mp-llvm-14 mp-llvm-15 mp-llvm-16 mp-llvm-3.7 mp-llvm-5.0 mp-llvm-9.0 mp-llvm-devel none
clang --version clang version 16.0.3 Target: x86_64-apple-darwin13.4.0 Thread model: posix InstalledDir: /opt/MacPorts/libexec/llvm-16/bin
cat /opt/MacPorts/etc/macports/macports.conf | rg "default_compilers" #default_compilers macports-clang default_compilers macports-clang macports-gcc clang #default_compilers macports-gcc macports-clang clang #default_compilers macports-gcc #default_compilers clang
Marcus Calhoun-Lopez:
port contents aom Port aom contains: /opt/MacPorts/bin/aomdec /opt/MacPorts/bin/aomenc /opt/MacPorts/include/aom/aom.h /opt/MacPorts/include/aom/aom_codec.h /opt/MacPorts/include/aom/aom_decoder.h /opt/MacPorts/include/aom/aom_encoder.h /opt/MacPorts/include/aom/aom_external_partition.h /opt/MacPorts/include/aom/aom_frame_buffer.h /opt/MacPorts/include/aom/aom_image.h /opt/MacPorts/include/aom/aom_integer.h /opt/MacPorts/include/aom/aomcx.h /opt/MacPorts/include/aom/aomdx.h /opt/MacPorts/lib/libaom.3.6.0.dylib /opt/MacPorts/lib/libaom.3.dylib /opt/MacPorts/lib/libaom.a /opt/MacPorts/lib/libaom.dylib /opt/MacPorts/lib/pkgconfig/aom.pc
comment:12 Changed 18 months ago by cave-canem
Christopher Nielsen:
diskutil info /dev/disk0s2 | rg "File System Personality" File System Personality: Journaled HFS+
Not a "hfsx" or "jhfsx"
comment:14 Changed 18 months ago by mascguy (Christopher Nielsen)
Replying to cave-canem:
port select --summary | rg "(Name|====|clang|llvm)" Name Selected Options ==== ======== ======= clang mp-clang-16 mp-clang-10 mp-clang-11 mp-clang-13 mp-clang-14 mp-clang-15 mp-clang-16 mp-clang-3.7 mp-clang-5.0 mp-clang-9.0 none llvm mp-llvm-16 mp-llvm-10 mp-llvm-11 mp-llvm-12 mp-llvm-13 mp-llvm-14 mp-llvm-15 mp-llvm-16 mp-llvm-3.7 mp-llvm-5.0 mp-llvm-9.0 mp-llvm-devel none
Okay, that matches with what I saw in the logs. Bear in mind that by selecting defaults, this takes precedence over which Clang version is chosen for a given port. And that increases your chances of build errors, like what you're experiencing here.
Net-Net, don't do that.
Can you please select none
for both clang
and llvm
, run sudo port clean libheif
to clean the logs, and try your upgrade again?
comment:15 follow-up: 17 Changed 18 months ago by cave-canem
Christopher Nielsen:
Firstly:
sudo bash -c 'dev=$(hdiutil attach -nomount ram://16777216) ; newfs_hfs -s -v "MacPorts-RamDisk-8G" ${dev} ; mount -t hfs ${dev} /opt/local/var/macports/build'
But:
echo "$((16777216/2048))MB" 8192MB
system_profiler "SPMemoryDataType" | rg "(BANK|Size)" BANK 0/DIMM0: Size: 2 GB BANK 1/DIMM0: Size: 2 GB
Secondly:
I went the other way and found out that only two compilers cause libheif to build successfully, namely:
/usr/bin/clang -v Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) Target: x86_64-apple-darwin13.4.0 Thread model: posix
and
/opt/MacPorts/bin/clang --version clang version 3.7.1 (tags/RELEASE_371/final) Target: x86_64-apple-darwin13.4.0 Thread model: posix
The ticket may be closed.
comment:16 Changed 18 months ago by cave-canem
Christopher Nielsen:
P.S.
cat "/Users/ES/Desktop/Скрипты/clang-37_select.sh" #!/usr/bin/env bash sudo port select --set llvm mp-llvm-3.7 sudo port select --set clang mp-clang-3.7 sudo port activate "cctools @949.0.1_3+llvm37" sudo port activate "ld64-274 @274.2_0+llvm37" sudo port activate "legacy-support @1.0.10" sudo port activate "ld64-latest @450.3_0+llvm37"
comment:17 Changed 18 months ago by mascguy (Christopher Nielsen)
Resolution: | → worksforme |
---|---|
Status: | assigned → closed |
Replying to cave-canem:
I went the other way and found out that only two compilers cause libheif to build successfully, namely:
/usr/bin/clang -v Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) Target: x86_64-apple-darwin13.4.0 Thread model: posixand
/opt/MacPorts/bin/clang --version clang version 3.7.1 (tags/RELEASE_371/final) Target: x86_64-apple-darwin13.4.0 Thread model: posixThe ticket may be closed
Sorry for the confusion, re: the RAM disk: I was suggesting that for Marcus's testing alone, and I should have been more clear.
But glad to see the issue is resolved, and thank you for your patience!
comment:18 Changed 18 months ago by cave-canem
Christopher Nielsen:
Thank you for your help and for your kind words!
comment:19 follow-up: 20 Changed 18 months ago by cave-canem
Sorry, dear Christopher Nielsen, my housemates massively decided to switch to higher speed rates - so the Internet provider had to change equipment - replace 1000BASE-T (SFTP) with optics (fiber) and replace the switch.
Unfortunately, it took longer than I expected, so I was without internet for a couple of days and couldn't immediately thank you for your help.
Please forgive me for this oversight.
(Je suis Russe, les Russes se souviennent très bien de qui essaie au moins de leur faire du bien, et qui essaie de leur faire du mal.
Es-tu satisfait de ma réponse ? Avez-vous reçu satisfaction ?)
comment:20 Changed 18 months ago by mascguy (Christopher Nielsen)
Replying to cave-canem:
Unfortunately, it took longer than I expected, so I was without internet for a couple of days and couldn't immediately thank you for your help.
Please forgive me for this oversight.
No worries, glad we could help!
comment:21 Changed 18 months ago by Christopher Nielsen <mascguy@…>
comment:22 Changed 8 months ago by mascguy (Christopher Nielsen)
Cc: | rmottola added |
---|
Has duplicate issue:69442
main.log