[vlc-devel] State of broken CI for 3.0?
Steve Lhomme
robux4 at ycbcr.xyz
Tue Jun 15 07:19:25 UTC 2021
On 2021-06-15 9:00, David Fuhrmann wrote:
>
>
>> Am 15.06.2021 um 08:21 schrieb Steve Lhomme <robux4 at ycbcr.xyz
>> <mailto:robux4 at ycbcr.xyz>>:
>>
>> On 2021-06-15 7:59, Steve Lhomme wrote:
>>> On 2021-06-15 7:53, Steve Lhomme wrote:
>>>> On 2021-06-14 19:48, Lyndon Brown wrote:
>>>>> As I'm sure has been noticed, pipelines started failing across the
>>>>> board yesterday for mac-arm64 on the 3.0.x branch, with an error
>>>>> whereby the taglib module could not find taglib.h for some reason:
>>>>>
>>>>> /Users/videolan/builds/puw5iUHi/0/videolan/vlc/extras/package/macosx/..
>>>>> /../../modules/meta_engine/taglib.cpp:52:10: fatal error: 'taglib.h'
>>>>> file not found
>>>>>
>>>>> I've noticed that Felix's MRs (248, 254) are now passing CI
>>>>> successfully, yet mine still won't, whether I re-run the failed run,
>>>>> create a new pipeline from a rebase, or whether someone else does (e.g.
>>>>> 232 by David, 228 by Steve)...
>>>>>
>>>>> Just wondering what the status/situation is. :)
>>>>
>>>> There might be an issue with pkgconfig, the <contrib>/include/taglib
>>>> should be passed. Or maybe the taglib.h file in the pre-built
>>>> contrib is bogus. But it is extracted.
>>> taglib.pc has the pathes hardcoded. So unless it's built on the same
>>> machine with the same path, it cannot work. This is the content of
>>> the one used by the image:
>>> prefix=/Users/videolanci/builds/o5P11sBb/0/videolan/vlc/contrib/aarch64-apple-darwin19
>>> exec_prefix=/Users/videolanci/builds/o5P11sBb/0/videolan/vlc/contrib/aarch64-apple-darwin19
>>> libdir=/Users/videolanci/builds/o5P11sBb/0/videolan/vlc/contrib/aarch64-apple-darwin19/lib
>>> includedir=/Users/videolanci/builds/o5P11sBb/0/videolan/vlc/contrib/aarch64-apple-darwin19/include
>>> Other .pc files usually have something like this:
>>> prefix=@@CONTRIB_PREFIX@@
>>> exec_prefix=${prefix}
>>> libdir=@@CONTRIB_PREFIX@@/lib
>>> includedir=@@CONTRIB_PREFIX@@/include
>>
>> This job [1] created the tarball of contribs. It contains a lot of
>> prefix=@@CONTRIB_PREFIX@@ but many are kept to their original path as
>> well.
>>
>> Looking at the job it transforms the contrib pathes to a generic value
>> before creating the tarball:
>>
>> change_prefix.sh
>> /Volumes/External/videolanci/builds/o5P11sBb/0/videolan/vlc/contrib/aarch64-apple-darwin19
>> @@CONTRIB_PREFIX@@
>>
>> But some of the pathes don't match this path, they have
>> /Users/videolanci/builds/o5P11sBb/0/videolan/vlc/contrib/aarch64-apple-darwin19
>> instead of
>> /Volumes/External/videolanci/builds/o5P11sBb/0/videolan/vlc/contrib/aarch64-apple-darwin19
>>
>> It seems to be the case for all CMake based projects. This seems to be
>> an issue only on macos. A 3.0 prebuilt contrib for win64 doesn't have
>> an issue with the CMake based projects (there are some /usr and
>> /usr/local hardcoded though but they are bogus and useless no matter
>> what).
>>
>> We either have to fix CMake (long term solution) and add that extra
>> user path to the translated path. Or maybe there is a way to have
>> always one or the other ?
>
>
> Hi,
>
> I also analysed this issue yesterday evening.
> It is broken for CMake based contribs, working for auto tools based, and
> for FFmpeg pkgconfig, it seems half working, half not working. IIRC they
> have their own sh-based build system...
>
> I remember that some external drive was recently attached to one /
> some of the macOS builders, (/Volumes/External), and someone wanted to
> include it in the ci builders.
>
> I am not sure how this was done on the machine, but my first guess is
> that a symlink has been created, which is sometimes resolved, sometimes not.
>
> I would propose to check again what was done on the mac machine, and
> maybe revert it for now. Or use some alternative solution (bind mount?).
>
> If it is a symlink, then we can consider patching all contribs to
> support symlinks in the prefix path all the same way, but not sure if
> this is worth the effort…
I modified the CMake contribs to use cmake --install after the build.
The prefix can be forced so hopefully it can be consistent with the one
with have with autotools.
https://code.videolan.org/videolan/vlc/-/merge_requests/259
I'll inspect the generated contribs once they are built.
More information about the vlc-devel
mailing list