Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 728102 - media-video/ffmpeg-4.2.3 with USE=-samba fails to compile
Summary: media-video/ffmpeg-4.2.3 with USE=-samba fails to compile
Status: RESOLVED TEST-REQUEST
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Media-video project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-06-13 00:52 UTC by Sandino Araico Sanchez
Modified: 2020-06-20 05:37 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
The complete build log (media-video:ffmpeg-4.2.3:20200610-121603.log.gz,5.17 KB, application/gzip)
2020-06-13 00:55 UTC, Sandino Araico Sanchez
Details
emerge --info '=media-video/ffmpeg-4.2.3::gentoo' (file_728102.txt,10.58 KB, text/plain)
2020-06-13 00:57 UTC, Sandino Araico Sanchez
Details
emerge -pqv '=media-video/ffmpeg-4.2.3::gentoo' (file_728102.txt,1.34 KB, text/plain)
2020-06-13 00:57 UTC, Sandino Araico Sanchez
Details
Fixed ebuild (ffmpeg-4.2.3.ebuild,17.91 KB, text/plain)
2020-06-13 01:30 UTC, Sandino Araico Sanchez
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sandino Araico Sanchez 2020-06-13 00:52:23 UTC
mkdir -p tests/
mkdir -p "/usr/src/portage/media-video/ffmpeg-4.2.3/image/usr/share/man/man1"
install -m 644 doc/ffmpeg.1 doc/ffplay.1 doc/ffprobe.1    doc/ffmpeg-all.1 doc/ffplay-all.1 doc/ffprobe-all.1    doc/ffmpeg-utils.1 doc/ffmpeg-scaler.1 doc/ffmpeg-resa
mpler.1 doc/ffmpeg-codecs.1 doc/ffmpeg-bitstream-filters.1 doc/ffmpeg-formats.1 doc/ffmpeg-protocols.1 doc/ffmpeg-devices.1 doc/ffmpeg-filters.1 "/usr/src/portage/medi
a-video/ffmpeg-4.2.3/image/usr/share/man/man1"
mkdir -p "/usr/src/portage/media-video/ffmpeg-4.2.3/image/usr/share/man/man3"
install -m 644 doc/libavutil.3 doc/libswscale.3 doc/libswresample.3 doc/libavcodec.3 doc/libavformat.3 doc/libavdevice.3 doc/libavfilter.3 "/usr/src/portage/media-vide
o/ffmpeg-4.2.3/image/usr/share/man/man3"
src/libavformat/libsmbclient.c:21:10: fatal error: libsmbclient.h: No such file or directory
   21 | #include <libsmbclient.h>
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
make: *** [/usr/src/portage/media-video/ffmpeg-4.2.3/work/ffmpeg-4.2.3/ffbuild/common.mak:59: libavformat/libsmbclient.o] Error 1
 * ERROR: media-video/ffmpeg-4.2.3::gentoo failed (install phase):
 *   emake failed
 * 


Reproducible: Always
Comment 1 Sandino Araico Sanchez 2020-06-13 00:55:53 UTC
Created attachment 644538 [details]
The complete build log
Comment 2 Sandino Araico Sanchez 2020-06-13 00:57:08 UTC
Created attachment 644540 [details]
emerge --info '=media-video/ffmpeg-4.2.3::gentoo'
Comment 3 Sandino Araico Sanchez 2020-06-13 00:57:59 UTC
Created attachment 644542 [details]
emerge -pqv '=media-video/ffmpeg-4.2.3::gentoo'
Comment 4 Sandino Araico Sanchez 2020-06-13 01:30:15 UTC
Created attachment 644544 [details]
Fixed ebuild

Lines added:

	# Disable samba support
	use samba || myconf+=( --disable-protocol=libsmbclient )
Comment 5 Thomas Deutschmann (RETIRED) gentoo-dev 2020-06-17 18:08:35 UTC
Please attach complete build.log (current build.log only contains src_install phase).

I am unable to reproduce. Also, your fix shouldn't be necessary: libsmbclient_protocol depends on libsmbclient (https://github.com/FFmpeg/FFmpeg/blob/release/4.2/configure#L3406). When ebuild is called with USE=-samba, this should translate to --disable-libsmbclient which should cause the check_deps call for libsmbclient_protocol to fail. I added conditional debugging for libsmbclient:

> # ./configure --disable-libsmbclient
> + eval '[' 'x$libsmbclient_protocol_checking' = xdone ']'
> ++ '[' x = xdone ']'
> + eval '[' 'x$libsmbclient_protocol_checking' = xinprogress ']'
> ++ '[' x = xinprogress ']'
> + eval '
>         dep_all=$libsmbclient_protocol_deps
>         dep_any=$libsmbclient_protocol_deps_any
>         dep_con=$libsmbclient_protocol_conflict
>         dep_sel=$libsmbclient_protocol_select
>         dep_sgs=$libsmbclient_protocol_suggest
>         dep_ifa=$libsmbclient_protocol_if
>         dep_ifn=$libsmbclient_protocol_if_any
>         '
> ++ dep_all='libsmbclient gplv3'
> ++ dep_any=
> ++ dep_con=
> ++ dep_sel=
> ++ dep_sgs=
> ++ dep_ifa=
> ++ dep_ifn=
> + '[' 'libsmbclient gplv3' ']'
> + eval libsmbclient_protocol_checking=inprogress
> ++ libsmbclient_protocol_checking=inprogress
> + set -- libsmbclient_protocol 'libsmbclient gplv3' '' '' '' '' '' ''
> + check_deps libsmbclient gplv3
> + for cfg in "$@"
> + [[ libsmbclient == libsmbclient_protocol ]]
> + eval '[' 'x$libsmbclient_checking' = xdone ']'
> ++ '[' xdone = xdone ']'
> + continue
> + for cfg in "$@"
> + [[ gplv3 == libsmbclient_protocol ]]
> + eval '[' 'x$gplv3_checking' = xdone ']'
> ++ '[' x = xdone ']'
> + eval '[' 'x$gplv3_checking' = xinprogress ']'
> ++ '[' x = xinprogress ']'
> + eval '
>         dep_all=$gplv3_deps
>         dep_any=$gplv3_deps_any
>         dep_con=$gplv3_conflict
>         dep_sel=$gplv3_select
>         dep_sgs=$gplv3_suggest
>         dep_ifa=$gplv3_if
>         dep_ifn=$gplv3_if_any
>         '
> ++ dep_all=
> ++ dep_any=
> ++ dep_con=
> ++ dep_sel=
> ++ dep_sgs=
> ++ dep_ifa=
> ++ dep_ifn=
> + '[' '' ']'
> + eval gplv3_checking=done
> ++ gplv3_checking=done
> + [[ gplv3 == libsmbclient_protocol ]]
> + cfg=libsmbclient_protocol
> + dep_all='libsmbclient gplv3'
> + dep_any=
> + dep_con=
> + dep_sel=
> + dep_sgs=
> + dep_ifa=
> + dep_ifn=
> + '[' -n '' ']'
> + '[' -n '' ']'
> + enabled_all libsmbclient gplv3
> + for opt in "$@"
> + enabled libsmbclient
> + test libsmbclient = libsmbclient
> + op==
> + eval test 'x$libsmbclient' = xyes
> ++ test xno = xyes
> + return 1
> + disable_with_reason libsmbclient_protocol 'not all dependencies are satisfied: libsmbclient gplv3'
> + disable libsmbclient_protocol
> + set_all no libsmbclient_protocol
> + value=no
> + shift
> + for var in $*
> + eval libsmbclient_protocol=no
> ++ libsmbclient_protocol=no
> + eval 'libsmbclient_protocol_disable_reason="not all dependencies are satisfied: libsmbclient gplv3"'
> ++ libsmbclient_protocol_disable_reason='not all dependencies are satisfied: libsmbclient gplv3'
> + requested libsmbclient_protocol
> + test libsmbclient_protocol = libsmbclient_protocol
> + op==
> + eval test 'x$libsmbclient_protocol_requested' = xyes
> ++ test x = xyes
> + enabled_any
> + disabled_all
> + disabled_any
> + return 1
> + enabled libsmbclient_protocol
> + test libsmbclient_protocol = libsmbclient_protocol
> + op==
> + eval test 'x$libsmbclient_protocol' = xyes
> ++ test xno = xyes
> + for dep in $dep_all $dep_any $dep_sel $dep_sgs
> + is_in libsmbclient avdevice avfilter swscale postproc avformat avcodec swresample avresample avutil
> + value=libsmbclient
> + shift
> + for var in $*
> + '[' avdevice = libsmbclient ']'
> + for var in $*
> + '[' avfilter = libsmbclient ']'
> + for var in $*
> + '[' swscale = libsmbclient ']'
> + for var in $*
> + '[' postproc = libsmbclient ']'
> + for var in $*
> + '[' avformat = libsmbclient ']'
> + for var in $*
> + '[' avcodec = libsmbclient ']'
> + for var in $*
> + '[' swresample = libsmbclient ']'
> + for var in $*
> + '[' avresample = libsmbclient ']'
> + for var in $*
> + '[' avutil = libsmbclient ']'
> + return 1
> + enabled libsmbclient
> + test libsmbclient = libsmbclient
> + op==
> + eval test 'x$libsmbclient' = xyes
> ++ test xno = xyes
> + for dep in $dep_all $dep_any $dep_sel $dep_sgs
> + is_in gplv3 avdevice avfilter swscale postproc avformat avcodec swresample avresample avutil
> + value=gplv3
> + shift
> + for var in $*
> + '[' avdevice = gplv3 ']'
> + for var in $*
> + '[' avfilter = gplv3 ']'
> + for var in $*
> + '[' swscale = gplv3 ']'
> + for var in $*
> + '[' postproc = gplv3 ']'
> + for var in $*
> + '[' avformat = gplv3 ']'
> + for var in $*
> + '[' avcodec = gplv3 ']'
> + for var in $*
> + '[' swresample = gplv3 ']'
> + for var in $*
> + '[' avresample = gplv3 ']'
> + for var in $*
> + '[' avutil = gplv3 ']'
> + return 1
> + enabled gplv3
> + test gplv3 = gplv3
> + op==
> + eval test 'x$gplv3' = xyes
> ++ test x = xyes
> + eval libsmbclient_protocol_checking=done
> ++ libsmbclient_protocol_checking=done
> + [[ libsmbclient_protocol == libsmbclient_protocol ]]
> + set +x
> DEBUG END
Comment 6 Sandino Araico Sanchez 2020-06-17 23:59:45 UTC
libsmbclient is provided by samba package.
If the fixed ebuild compiles without samba installed I can give it a try and confirm.
Comment 7 Alexis Ballier gentoo-dev 2020-06-18 11:30:56 UTC
Please attach a full build.log as obtained by using 'emerge'.

ffmpeg's configure has:
libsmbclient_protocol_deps="libsmbclient gplv3"

so the line you add shouldn't be necessary: that protocol wont be built if either libsmbclient or gplv3 is disabled
Comment 8 Alexis Ballier gentoo-dev 2020-06-18 11:34:23 UTC
btw:
# emerge -pvO media-video/ffmpeg samba
[ebuild   R   ] media-video/ffmpeg-4.2.3  USE="X encode fontconfig gpl iconv libdrm lzma network openssl opus postproc threads v4l x264 x265 zlib -alsa (-amr) -amrenc (-appkit) -bluray (-bs2b) -bzip2 -cdio -chromaprint -chromium -codec2 -cpudetection (-cuda) -dav1d -debug -doc -fdk -flite -frei0r -fribidi -gcrypt -gme -gmp -gnutls -gsm -hardcoded-tables -iec61883 (-ieee1394) -jack -jpeg2k -kvazaar (-ladspa) -libaom -libaribb24 -libass -libcaca -libilbc -libressl -librtmp -libsoxr -libtesseract -libv4l -libxml2 -lv2 (-mipsdspr1) (-mipsdspr2) (-mipsfpu) (-mmal) -modplug -mp3 -openal (-opencl) -opengl -openh264 -oss -pic -pulseaudio -rubberband -samba -sdl -snappy -speex -srt -ssh -static-libs -svg -test -theora -truetype -twolame -vaapi (-vdpau) -vidstab -vorbis (-vpx) -wavpack -webp -xvid -zeromq -zimg (-zvbi)" CPU_FLAGS_ARM="(neon) (thumb) (thumb2) (v6) (v8) (vfp) (vfpv3)" FFTOOLS="aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart sidxindex trasher" VIDEO_CARDS="(-nvidia)" 
[ebuild  N    ] net-fs/samba-4.12.3-r1  USE="acl pam system-mitkrb5 (-addc) (-addns) (-ads) (-ceph) -client (-cluster) -cups -debug (-dmapi) (-fam) -gpg -iprint -json -ldap -profiling-data (-python) -quota (-selinux) -snapper -syslog (-system-heimdal) -systemd (-test) -winbind -zeroconf" KERNEL="(linux)" PYTHON_SINGLE_TARGET="python3_7 -python3_6 -python3_8"
Comment 9 Sandino Araico Sanchez 2020-06-20 05:37:31 UTC
It compiles now.