Bug 1989125

Summary: missing kernel headers files in kernel-headers-5.14.0-0.rc3.git0.1.fc35.x86_64.rpm package
Product: [Fedora] Fedora Reporter: MartinKG <mgansser>
Component: kernel-headersAssignee: Justin M. Forbes <jforbes>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: acaringi, jforbes, lgoncalv, pbrobinson, ptalbert
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-08-04 09:52:59 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:

Description MartinKG 2021-08-02 13:46:19 UTC
Description of problem:

i want to compile vdr [1] on f35, but this fails with:

+ for plugin in dvbhddevice dvbsddevice rcu skincurses
+ /usr/bin/make -O -j8 V=1 VERBOSE=1 -C PLUGINS/src/dvbhddevice
VDRDIR=/builddir/build/BUILD/vdr-2.4.7
PLGCFG=/builddir/build/BUILD/vdr-2.4.7/bundled-plugins.mk all
make: Entering directory
'/builddir/build/BUILD/vdr-2.4.7/PLUGINS/src/dvbhddevice'
g++ -O3 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mcpu=power8 -mtune=power8
-fasynchronous-unwind-tables -fstack-clash-protection -fPIC -Werror=overloaded-virtual
-Wno-parentheses -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -I/builddir/build/BUILD/vdr-2.4.7/include -c
-DPLUGIN_NAME_I18N='"dvbhddevice"'  -o dvbhdffdevice.o dvbhdffdevice.c
dvbhdffdevice.c:14:10: fatal error: linux/dvb/audio.h: No such file or directory
   14 | #include <linux/dvb/audio.h>
      |          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:64: dvbhdffdevice.o] Error 1
make: Leaving directory '/builddir/build/BUILD/vdr-2.4.7/PLUGINS/src/dvbhddevice'
make: *** Waiting for unfinished jobs....
make: Entering directory
'/builddir/build/BUILD/vdr-2.4.7/PLUGINS/src/dvbhddevice'
g++ -O3 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mcpu=power8 -mtune=power8
-fasynchronous-unwind-tables -fstack-clash-protection -fPIC -Werror=overloaded-virtual
-Wno-parentheses -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -I/builddir/build/BUILD/vdr-2.4.7/include -c
-DPLUGIN_NAME_I18N='"dvbhddevice"'  -o hdffosd.o hdffosd.c
hdffosd.c:8:10: fatal error: linux/dvb/osd.h: No such file or directory
    8 | #include <linux/dvb/osd.h>
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.

[1] https://koji.fedoraproject.org/koji/buildinfo?buildID=1807563


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1. rpmbuild -ba vdr.spec


Actual results:
fails with above error message.


Expected results:
compiles w/o errors


Additional info:

I'am missing the 3 files audio.h, osd.h and video.h in the kernel-headers of f35.

rpm -ql kernel-headers-5.14.0-0.rc3.git0.1.fc35.x86_64.rpm |grep "/usr/include/linux/dvb/"
/usr/include/linux/dvb/ca.h
/usr/include/linux/dvb/dmx.h
/usr/include/linux/dvb/frontend.h
/usr/include/linux/dvb/net.h
/usr/include/linux/dvb/version.h

the kernel-headers of f34 containing this files:

 rpm -ql kernel-headers-5.13.3-200.fc34.x86_64.rpm |grep "/usr/include/linux/dvb/"
/usr/include/linux/dvb/audio.h
/usr/include/linux/dvb/ca.h
/usr/include/linux/dvb/dmx.h
/usr/include/linux/dvb/frontend.h
/usr/include/linux/dvb/net.h
/usr/include/linux/dvb/osd.h
/usr/include/linux/dvb/version.h
/usr/include/linux/dvb/video.h


This is the result of this kernel commit:

commit 819fbd3d8ef36c09576c2a0ffea503f5c46e9177
Author: Mauro Carvalho Chehab <mchehab+huawei(a)kernel.org&gt;
Date:   Tue Jun 1 11:31:30 2021 +0200

    media: dvb header files: move some headers to staging
    
    The audio, video and OSD APIs are used upstream only by the
    av7110 driver, which was moved to staging.
    
    So, move the corresponding header files to it.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei(a)kernel.org&gt;

The deprecation of this headers was announced two years ago:

commit 9ff4d4e08ba8471f6c4cae05544f1802f6aab828
Author: Mauro Carvalho Chehab <mchehab+samsung(a)kernel.org&gt;
Date:   Tue Jun 4 10:41:20 2019 -0400

    media: dvb: tag deprecated DVB APIs as such
    
    There are three headers at DVB that should not be used on
    future projects: audio.h, osd.h and video.h.
    
    While this is already clear at the docs, make clear also at
    the headers that those files should not be used on future
    drivers.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung(a)kernel.org&gt;

Comment 1 MartinKG 2021-08-02 13:53:01 UTC
I need the two plugins (dvbhddevice and dvbsddevice) for my Technotrend TV card (TT DVB-S2
6400) in order to be able to watch HDTV or SD channels. The two plugins now need the
header files audio.h osd.h and video.h, which are missing since the kernel change to 5.14
rc3. Is there any chance this change will reverse?

Comment 2 Peter Robinson 2021-08-02 13:56:47 UTC
(In reply to MartinKG from comment #1)
> I need the two plugins (dvbhddevice and dvbsddevice) for my Technotrend TV
> card (TT DVB-S2
> 6400) in order to be able to watch HDTV or SD channels. The two plugins now
> need the
> header files audio.h osd.h and video.h, which are missing since the kernel
> change to 5.14
> rc3. Is there any chance this change will reverse?

Extremely unlikely, the audio.h osd.h and video.h header files were marked deprecated 2 years ago and are only used by the av7110 driver which is also scheduled to be removed. Does your DVB card use the av7110 driver?

Comment 3 MartinKG 2021-08-02 14:33:35 UTC
I need the 3 files (audio.h, osd.h and video.h) for the 2 included VDR plugins (dvbhddevice and dvbsddevice) to compile it,
see error messages above.

Comment 4 Peter Robinson 2021-08-02 14:50:33 UTC
(In reply to MartinKG from comment #3)
> I need the 3 files (audio.h, osd.h and video.h) for the 2 included VDR
> plugins (dvbhddevice and dvbsddevice) to compile it,
> see error messages above.

Can you disable the functionality that depends on those include files because the functionality in the kernel is only supported on the av7110 driver/HW. If there's other functionality that is used on other HW that is tied into this driver/includes it should probably be reviewed upstream in vdr. It will be very unlikely the header files will come back.

Comment 5 MartinKG 2021-08-03 09:53:48 UTC
(In reply to Peter Robinson from comment #4)
> (In reply to MartinKG from comment #3)
> > I need the 3 files (audio.h, osd.h and video.h) for the 2 included VDR
> > plugins (dvbhddevice and dvbsddevice) to compile it,
> > see error messages above.
> 
> Can you disable the functionality that depends on those include files
> because the functionality in the kernel is only supported on the av7110
> driver/HW. If there's other functionality that is used on other HW that is
> tied into this driver/includes it should probably be reviewed upstream in
> vdr. It will be very unlikely the header files will come back.

I think I will deliver the removed header files in a subpackage of the vdr.

Comment 6 Peter Robinson 2021-08-04 10:02:46 UTC
> I think I will deliver the removed header files in a subpackage of the vdr.

Why would you do that? Firstly you shouldn't be shipping kernel headers elsewhere. Secondly while it may compile without the kernel functionality it won't actually work so achieves nothing in the end. If you are going do a complete hack to get it to compile you shouldn't ship it as a sub package, this is also a violation of packaging guidelines, you should just include it in the source for vdr to build.