Bug 891123

Summary: flac unreleased git source break with stream_decoder.h
Product: [Fedora] Fedora Reporter: Nicolas Chauvet (kwizart) <kwizart>
Component: flacAssignee: Miroslav Lichvar <mlichvar>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: mlichvar
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-01-02 15:07:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
rpmsodiff between 1.2.1 and current git none

Description Nicolas Chauvet (kwizart) 2013-01-01 22:39:57 UTC
Description of problem:
The build of vlc fails on f19 with the the unreleased git version of flac with:

http://buildsys.rpmfusion.org/logs/fedora-development-rpmfusion_free/15415-vlc-2.0.5-1.fc19/i686/build.log

Version-Release number of selected component (if applicable):
flac-1.2.1-12.20121204gita43f56.fc18

How reproducible:
always

Steps to Reproduce:
1. build vlc with the version of flac currently only available in rawhide (f19)
2.
3.
  
Actual results:
flac.c:41:28: fatal error: stream_decoder.h: No such file or directory

Expected results:
vlc should built fine with every released version of it's dependencies.

Additional info:
unless flac upstream is close to make a new release, I don't think it worth to make an intermediate git release available, given API/ABI may broke before the release. I would suggest to only backport the needed patches instead.

Comment 1 Miroslav Lichvar 2013-01-02 14:08:47 UTC
The flac upstream is planning to make a 1.3.x release soon, so this is a prerelease. There shouldn't be any breakage in the libFLAC or libFLAC++ API/ABI since 1.2.1, only some extensions and mainly in libFLAC++.

This looks like a problem with the packaged pkg-config file, for some reason it doesn't include -I/usr/include/FLAC.

Comment 2 Miroslav Lichvar 2013-01-02 14:36:01 UTC
It looks like that change was intentional and the previous pc file was wrong.

https://git.xiph.org/?p=flac.git;a=commitdiff;h=b76d4f817c54c6fcfcb82fe72e38660c1b480774

The header should be included as FLAC/stream_decoder.h, the names of the headers in the FLAC directory alone are indeed too generic and could clash with other codecs. The example code in examples/c/decode/file/main.c always used FLAC/stream_decoder.h.

I'll ask the upstream, but I think it would be better to fix the vlc code instead of putting back the CPP flag.

Comment 3 Miroslav Lichvar 2013-01-02 15:07:41 UTC
It seems it was already causing conflicts with assert.h and I don't think the change in the pc file will be reverted.

http://lists.xiph.org/pipermail/flac-dev/2012-April/003355.html

Please forward the bugfix to the vlc upstream. Thanks.

Comment 4 Nicolas Chauvet (kwizart) 2013-01-02 20:10:31 UTC
OK, I will make the change in vlc upstream.

What about flac for f18 ? It would be fine to revert to current 1.2.1 version in repo given that there is a silent ABI change according to rpmsodiff.
(please see as attachment).

Comment 5 Nicolas Chauvet (kwizart) 2013-01-02 20:12:06 UTC
Created attachment 671663 [details]
rpmsodiff between 1.2.1 and current git

I haven't checked if the symbols removed are exported in the API.

Comment 6 Miroslav Lichvar 2013-01-03 09:03:18 UTC
The rpmsodiff output looks good to me, the removed symbols are private and they are no longer visible, because flac is now compiled with -fvisibility=hidden.

In any case, f18 still has the old 1.2.1, there were no updates yet.