FS#54247 - [ffmpeg] Removal of --enable-netcdf in 3.3.1-9 makes sofalizer filter unavailable

Attached to Project: Arch Linux
Opened by Anonymous Submitter - Wednesday, 31 May 2017, 21:41 GMT
Last edited by Eli Schwartz (eschwartz) - Tuesday, 08 May 2018, 13:38 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Maxime Gauduin (Alucryd)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
  • Anonymous Submitter (2017-05-31)
Private No

Details

Description: The removal of the --enable-netcdf configure flag in version 3.3.1-9 [1] makes the Sofalizer filter unavailable in ffmpeg, which was previously added in response to bug report [2] in [3].

The original point of  FS#49217  still stands; this change removes the ability to work with HRTFs in Arch Linux' mainline ffmpeg build. Is there a strict policy for Extra packages not being able to depend on packages in Community (netcdf)? If not, please consider readding netcdf to the ffmpeg build.

[1] https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/ffmpeg&id=61c5f19f7aa9b3d23393cc040efd086fd2a0f7ca
[2] https://bugs.archlinux.org/task/49217
[3] https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/ffmpeg&id=e03468ae63379080ae16e339d335c8b729afb7cf

Additional info:
* ffmpeg 3.3.1-9
* Required build flags for sofalizer at https://ffmpeg.org/ffmpeg-filters.html#sofalizer


Steps to reproduce:
This task depends upon

Closed by  Eli Schwartz (eschwartz)
Tuesday, 08 May 2018, 13:38 GMT
Reason for closing:  Won't implement
Additional comments about closing:  sofalizer filter has been ported upstream to a library we do not even package (it's in the AUR), therefore enabling netcdf has become a moot point
Comment by Maxime Gauduin (Alucryd) - Saturday, 03 June 2017, 20:40 GMT
An extra package cannot depend on a community package, this removal was deliberate to avoid netcdf & cie rotting in extra without a maintainer. Also I've been adding too much bloat into our ffmpeg lately, trimming some of the underused features like sofalizer means less bloat for most users. People who really need sofalizer can build their own custom ffmpeg or use ffmpeg-full from AUR.
Comment by Doug Newgard (Scimmia) - Saturday, 03 June 2017, 22:35 GMT
An Extra package can absolutely depend on a Community package, there are TONS of examples. Nobody cares about the repo hierarchy.
Comment by Maxime Gauduin (Alucryd) - Sunday, 04 June 2017, 19:17 GMT
A package should only depend on packages from its own repo and those above it, not below. People should be able to deactivate community and still be able to install all of extra. The demoting of netcdf was actually discussed in #archlinux-dev and we agreed it should be removed from ffmpeg first. This is not the first time we went through dependency promoting or demoting for this exact reason, so we do care about the repo hierarchy.
Comment by Doug Newgard (Scimmia) - Sunday, 04 June 2017, 21:55 GMT
People care about he hierarchy in that base should all be in core. Beyond that, not really. From the latest repo check email:

community/playonlinux depends on multilib/wine (144 extra (make)deps to pull)
community/wine-mono depends on multilib/wine (144 extra (make)deps to pull)
core/make depends on extra/guile (581 extra (make)deps to pull)
core/openldap depends on extra/unixodbc (581 extra (make)deps to pull)
core/python-gpgme depends on extra/python (581 extra (make)deps to pull)
core/qgpgme depends on extra/qt5-base (581 extra (make)deps to pull)
core/sqlite-analyzer depends on extra/tcl (581 extra (make)deps to pull)
extra/accerciser depends on community/ipython (89 extra (make)deps to pull)
extra/archboot depends on community/arch-wiki-lite (83 extra (make)deps to pull)
extra/archboot depends on community/arch-wiki-lite (83 extra (make)deps to pull)
extra/archboot depends on community/chntpw (81 extra (make)deps to pull)
extra/archboot depends on community/cpupower (82 extra (make)deps to pull)
extra/archboot depends on community/squashfs-tools (81 extra (make)deps to pull)
extra/archboot depends on community/usb_modeswitch (81 extra (make)deps to pull)
extra/archboot depends on community/weechat (81 extra (make)deps to pull)
extra/archboot depends on community/wvdial (84 extra (make)deps to pull)
extra/archboot depends on community/xl2tpd (81 extra (make)deps to pull)
extra/archiso depends on community/squashfs-tools (81 extra (make)deps to pull)
extra/archivetools depends on community/hardlink (81 extra (make)deps to pull)
extra/asp depends on community/jq (82 extra (make)deps to pull)
extra/brasero depends on community/cdrtools (81 extra (make)deps to pull)
extra/brltty depends on community/espeak (82 extra (make)deps to pull)
extra/dvd+rw-tools depends on community/cdrtools (81 extra (make)deps to pull)
extra/easytag depends on community/opusfile (81 extra (make)deps to pull)
extra/efl depends on community/luajit (81 extra (make)deps to pull)
extra/emovix depends on community/cdrtools (81 extra (make)deps to pull)
extra/evolution depends on community/gtkspell3 (81 extra (make)deps to pull)
extra/fontforge depends on community/zeromq (81 extra (make)deps to pull)
extra/gitg depends on community/gtkspell3 (81 extra (make)deps to pull)
extra/gnome-builder depends on community/autoconf-archive (81 extra (make)deps to pull)
extra/gnome-builder depends on community/python-jedi (81 extra (make)deps to pull)
extra/gnome-builder depends on community/sysprof (81 extra (make)deps to pull)
extra/gnome-common depends on community/autoconf-archive (81 extra (make)deps to pull)
extra/gnome-photos depends on community/libgexiv2 (81 extra (make)deps to pull)
extra/gnome-video-effects depends on community/frei0r-plugins (88 extra (make)deps to pull)
extra/gnote depends on community/gtkspell3 (81 extra (make)deps to pull)
extra/gnucash depends on community/aqbanking (84 extra (make)deps to pull)
extra/gnucash depends on community/libdbi-drivers (83 extra (make)deps to pull)
extra/gst-plugins-bad depends on community/libfdk-aac (81 extra (make)deps to pull)
extra/gvfs-nfs depends on community/libnfs (81 extra (make)deps to pull)
extra/ibus-typing-booster depends on community/python-pyenchant (81 extra (make)deps to pull)
extra/kapidox depends on community/python-jinja (81 extra (make)deps to pull)
extra/kapidox depends on community/python-yaml (81 extra (make)deps to pull)
extra/libgda depends on community/goocanvas (81 extra (make)deps to pull)
extra/libnm depends on community/jansson (81 extra (make)deps to pull)
extra/libquvi-scripts depends on community/lua52-bitop (81 extra (make)deps to pull)
extra/libquvi-scripts depends on community/lua52-expat (81 extra (make)deps to pull)
extra/libquvi-scripts depends on community/lua52-socket (81 extra (make)deps to pull)
extra/libreoffice-fresh depends on community/libtommath (81 extra (make)deps to pull)
extra/libteam depends on community/jansson (81 extra (make)deps to pull)
extra/libteam depends on community/zeromq (81 extra (make)deps to pull)
extra/lirc depends on community/libftdi (81 extra (make)deps to pull)
extra/meson depends on community/ninja (81 extra (make)deps to pull)
extra/mkisolinux depends on community/cdrtools (81 extra (make)deps to pull)
extra/monodevelop depends on community/referenceassemblies-pcl (81 extra (make)deps to pull)
extra/mpd depends on community/libnfs (81 extra (make)deps to pull)
extra/musepack-tools depends on community/libreplaygain (81 extra (make)deps to pull)
extra/networkmanager depends on community/libnewt (81 extra (make)deps to pull)
extra/nghttp2 depends on community/jansson (81 extra (make)deps to pull)
extra/nghttp2 depends on community/libev (81 extra (make)deps to pull)
extra/nvidia-settings depends on community/jansson (81 extra (make)deps to pull)
extra/octave depends on community/arpack (81 extra (make)deps to pull)
extra/openconnect depends on community/pcsclite (81 extra (make)deps to pull)
extra/perl-crypt-ssleay depends on community/perl-path-class (81 extra (make)deps to pull)
extra/perl-xml-simple depends on community/perl-xml-sax-expat (81 extra (make)deps to pull)
extra/python-django depends on community/python-pytz (81 extra (make)deps to pull)
extra/python-incremental depends on community/python-click (81 extra (make)deps to pull)
extra/python-rdflib depends on community/python-isodate (81 extra (make)deps to pull)
extra/python-wstools depends on community/python-docutils (81 extra (make)deps to pull)
extra/python2-astroid depends on community/python2-enum34 (81 extra (make)deps to pull)
extra/python2-astroid depends on community/python2-singledispatch (81 extra (make)deps to pull)
extra/python2-cryptography depends on community/python2-enum34 (81 extra (make)deps to pull)
extra/python2-django depends on community/python2-pytz (81 extra (make)deps to pull)
extra/python2-incremental depends on community/python2-click (81 extra (make)deps to pull)
extra/python2-pylint depends on community/python2-singledispatch (81 extra (make)deps to pull)
extra/python2-rdflib depends on community/python2-isodate (81 extra (make)deps to pull)
extra/python2-wstools depends on community/python2-docutils (81 extra (make)deps to pull)
extra/qemu depends on community/libnfs (81 extra (make)deps to pull)
extra/qemu depends on community/usbredir (81 extra (make)deps to pull)
extra/qemu-block-gluster depends on community/glusterfs (82 extra (make)deps to pull)
extra/qemu-headless depends on community/libnfs (81 extra (make)deps to pull)
extra/qemu-headless depends on community/usbredir (81 extra (make)deps to pull)
extra/quodlibet depends on community/python2-faulthandler (81 extra (make)deps to pull)
extra/quodlibet depends on community/python2-futures (81 extra (make)deps to pull)
extra/samba depends on community/perl-parse-yapp (81 extra (make)deps to pull)
extra/syslog-ng depends on community/libdbi (81 extra (make)deps to pull)
extra/tracker depends on community/libiptcdata (81 extra (make)deps to pull)
extra/tracker depends on community/libosinfo (83 extra (make)deps to pull)
extra/vinagre depends on community/freerdp (86 extra (make)deps to pull)
extra/vinagre depends on community/spice-gtk3 (83 extra (make)deps to pull)
extra/x2goserver depends on community/pwgen (81 extra (make)deps to pull)
extra/x2goserver depends on community/sshfs (82 extra (make)deps to pull)
extra/xfce4-session depends on community/polkit-gnome (81 extra (make)deps to pull)
Comment by Doug Newgard (Scimmia) - Sunday, 04 June 2017, 22:02 GMT
As for it being discussed in #archlinux-dev, I don't see it in my logs back to last Nov. I could have happened in a couple of the very short windows when I wasn't connected, but the chances of that seem small.
Comment by Doug Newgard (Scimmia) - Sunday, 04 June 2017, 22:07 GMT
I will also add that I have no interest in this at all. If you want to get rid of it just because you don't want it, I have no problem with that. Saying that you can't because netcdf is in Community now is just not a reason.
Comment by Maxime Gauduin (Alucryd) - Monday, 05 June 2017, 12:36 GMT
That discussion happened on #archlinux-tu, my bad, but it doesn't matter anyway. For someone who doesn't care, you sure are going a lot out of your way to keep arguing... Nice of you to point that list out BTW, why do you think we have a report warning about which packages depend on lower repositories? Precisely because they aren't supposed to.

Now please don't assume I don't want netcdf support in ffmpeg. Thing is, I couldn't care less either. I have more than enough space to handle 10 or so additional MB (netcdf + hdf5) of libraries on any of my machines, and since there is no performance impact on ffmpeg whatsoever I personally see no reason not to enable it. But that's just me, and people have been calling things bloated for an order of magnitude less than that. It is perfectly understandable that such a niche feature would be disabled, and I only mentioned it as further justification as to why we chose to do it, the main reason still being repo hierarchy.
Comment by James Almer (jamrial) - Friday, 16 June 2017, 20:49 GMT
I wanted to add, in case it's not known by those interested in this functionality, that the sofalizer filter has been ported to use libmysofa instead of netcdf [1], and as such support for the latter has been removed.
This change will be visible in the next stable release of ffmpeg (Not in a point release of the 3.3 release).

[1] https://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=2336c76b224628f20ed0ef8a683ad602ed1739c3

Loading...