radiorabe / centos-rpm-liquidsoap

RaBe Liquidsoap Distribution for CentOS 8 & Fedora (RaBe-LSD)
https://build.opensuse.org/project/show/home:radiorabe:liquidsoap
GNU General Public License v3.0
9 stars 3 forks source link

liquidsoap 1.4.3 - enable fdk-aac (ocaml-fdkaac) #36

Open tzumbrunnen opened 3 years ago

tzumbrunnen commented 3 years ago

I would like to test the latest drop on Centos 8 with %fdkaac, unfortunately its not working since ocaml-fdkaac is missing. Beside that the old library from Nux Dextop Repos won't work (and disappeared). I tried to find a package on RPMFusionall, but failed. Are you planing to deliver a solution, i.e. a dedicated rpm package for ocaml-fdkaac ?

hairmare commented 3 years ago

Due to legal reasons (mainly @radiorabe not having an MPEG-LA license and us not planning on getting one) we cannot distribute ocaml-fdkaac binaries atm.

What we can do is provide instructions on how you can build your own... I updated the usage section in the centos-rpm-ocaml-fdkaac repo to provide detailed instructions on how you can build you own RPM using fdk-aac from RPMfusion nonfree. I also updated the specfile so it builds a version of ocaml-fdkaac that should work with 1.4.3.

I usually run this in the quay.io/hairmare/centos8_rpmdev container (see folded example below). Let me know if this works out for you or if you need any further assistance in getting fdk-aac working again.

container example with output

``` $ docker run --rm -ti -v `pwd`:'/git' -v `pwd`/RPMS:/root/rpmbuild/RPMS quay.io/hairmare/centos8_rpmdev bash [root@dd916d343ef4 git]# dnf install -y \ > http://download1.rpmfusion.org/free/el/updates/8/x86_64/r/rpmfusion-free-release-8-0.1.noarch.rpm \ > http://download1.rpmfusion.org/nonfree/el/updates/8/x86_64/r/rpmfusion-nonfree-release-8-0.1.noarch.rpm Failed to set locale, defaulting to C.UTF-8 CentOS-8 - AppStream 3.5 MB/s | 5.8 MB 00:01 CentOS-8 - Base 3.1 MB/s | 2.2 MB 00:00 CentOS-8 - Extras 19 kB/s | 8.6 kB 00:00 Extra Packages for Enterprise Linux Modular 8 - x86_64 113 kB/s | 98 kB 00:00 Extra Packages for Enterprise Linux 8 - x86_64 8.8 MB/s | 8.4 MB 00:00 rpmfusion-free-release-8-0.1.noarch.rpm 74 kB/s | 11 kB 00:00 rpmfusion-nonfree-release-8-0.1.noarch.rpm 218 kB/s | 11 kB 00:00 Dependencies resolved. ============================================================================================================================================================================================================================================== Package Architecture Version Repository Size ============================================================================================================================================================================================================================================== Installing: rpmfusion-free-release noarch 8-0.1 @commandline 11 k rpmfusion-nonfree-release noarch 8-0.1 @commandline 11 k Transaction Summary ============================================================================================================================================================================================================================================== Install 2 Packages Total size: 22 k Installed size: 7.6 k Downloading Packages: Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : rpmfusion-free-release-8-0.1.noarch 1/2 Installing : rpmfusion-nonfree-release-8-0.1.noarch 2/2 Verifying : rpmfusion-free-release-8-0.1.noarch 1/2 Verifying : rpmfusion-nonfree-release-8-0.1.noarch 2/2 Installed: rpmfusion-free-release-8-0.1.noarch rpmfusion-nonfree-release-8-0.1.noarch Complete! [root@dd916d343ef4 git]# [root@dd916d343ef4 git]# # the RaBe-LSD liquidsoap binaries are using an OCaml build chain based on a backport of fc33 ocaml [root@dd916d343ef4 git]# curl -o /etc/yum.repos.d/ocaml.repo \ > "https://download.opensuse.org/repositories/home:/radiorabe:/liquidsoap:/ocaml/CentOS_8/home:radiorabe:liquidsoap:ocaml.repo" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 308 100 308 0 0 2905 0 --:--:-- --:--:-- --:--:-- 2905 [root@dd916d343ef4 git]# [root@dd916d343ef4 git]# rpmdev-setuptree [root@dd916d343ef4 git]# [root@dd916d343ef4 git]# spectool -R -g ocaml-fdkaac.spec perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). Getting https://github.com/savonet/ocaml-fdkaac/archive/0.3.2.tar.gz?#/ocaml-fdkaac-0.3.2.tar.gz to /root/rpmbuild/SOURCES/ocaml-fdkaac-0.3.2.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 127 100 127 0 0 535 0 --:--:-- --:--:-- --:--:-- 535 100 15369 0 15369 0 0 30017 0 --:--:-- --:--:-- --:--:-- 30017 [root@dd916d343ef4 git]# [root@dd916d343ef4 git]# dnf builddep -y ocaml-fdkaac.spec Failed to set locale, defaulting to C.UTF-8 OCaml 4.11 (CentOS_8) 617 kB/s | 224 kB 00:00 RPM Fusion for EL 8 - Free - Updates 323 kB/s | 258 kB 00:00 RPM Fusion for EL 8 - Nonfree - Updates 268 kB/s | 89 kB 00:00 Dependencies resolved. ============================================================================================================================================================================================================================================== Package Architecture Version Repository Size ============================================================================================================================================================================================================================================== Installing: fdk-aac-devel x86_64 2.0.0-3.el8 rpmfusion-nonfree-updates 768 k ocaml x86_64 4.11.1-0.1.2.rabe home_radiorabe_liquidsoap_ocaml 72 M ocaml-dune-devel x86_64 2.7.1-0.1.2.rabe home_radiorabe_liquidsoap_ocaml 3.2 M ocaml-findlib x86_64 1.8.1-0.1.2.rabe home_radiorabe_liquidsoap_ocaml 725 k Installing dependencies: fdk-aac x86_64 2.0.0-3.el8 rpmfusion-nonfree-updates 683 k ocaml-compiler-libs x86_64 4.11.1-0.1.2.rabe home_radiorabe_liquidsoap_ocaml 13 M ocaml-csexp x86_64 1.3.2-0.1.2.rabe home_radiorabe_liquidsoap_ocaml 47 k ocaml-csexp-devel x86_64 1.3.2-0.1.2.rabe home_radiorabe_liquidsoap_ocaml 72 k ocaml-dune x86_64 2.7.1-0.1.2.rabe home_radiorabe_liquidsoap_ocaml 3.8 M ocaml-runtime x86_64 4.11.1-0.1.2.rabe home_radiorabe_liquidsoap_ocaml 2.8 M Transaction Summary ============================================================================================================================================================================================================================================== Install 10 Packages Total download size: 97 M Installed size: 361 M Downloading Packages: (1/10): ocaml-csexp-1.3.2-0.1.2.rabe.x86_64.rpm 156 kB/s | 47 kB 00:00 (2/10): ocaml-csexp-devel-1.3.2-0.1.2.rabe.x86_64.rpm 410 kB/s | 72 kB 00:00 (3/10): ocaml-dune-2.7.1-0.1.2.rabe.x86_64.rpm 2.9 MB/s | 3.8 MB 00:01 (4/10): ocaml-compiler-libs-4.11.1-0.1.2.rabe.x86_64.rpm 6.4 MB/s | 13 MB 00:02 (5/10): ocaml-findlib-1.8.1-0.1.2.rabe.x86_64.rpm 2.7 MB/s | 725 kB 00:00 (6/10): ocaml-dune-devel-2.7.1-0.1.2.rabe.x86_64.rpm 3.7 MB/s | 3.2 MB 00:00 (7/10): ocaml-runtime-4.11.1-0.1.2.rabe.x86_64.rpm 4.7 MB/s | 2.8 MB 00:00 (8/10): fdk-aac-2.0.0-3.el8.x86_64.rpm 1.3 MB/s | 683 kB 00:00 (9/10): fdk-aac-devel-2.0.0-3.el8.x86_64.rpm 2.4 MB/s | 768 kB 00:00 (10/10): ocaml-4.11.1-0.1.2.rabe.x86_64.rpm 12 MB/s | 72 MB 00:05 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 16 MB/s | 97 MB 00:05 warning: /var/cache/dnf/home_radiorabe_liquidsoap_ocaml-821585843ca20ba9/packages/ocaml-4.11.1-0.1.2.rabe.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID a62f73c5: NOKEY OCaml 4.11 (CentOS_8) 12 kB/s | 1.1 kB 00:00 Importing GPG key 0xA62F73C5: Userid : "home:radiorabe OBS Project " Fingerprint: E603 B0F1 A6E8 9759 F239 56C9 9ED9 B42E A62F 73C5 From : https://download.opensuse.org/repositories/home:/radiorabe:/liquidsoap:/ocaml/CentOS_8/repodata/repomd.xml.key Key imported successfully warning: /var/cache/dnf/rpmfusion-nonfree-updates-4b07c573777c5e1e/packages/fdk-aac-2.0.0-3.el8.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID bdda8475: NOKEY RPM Fusion for EL 8 - Nonfree - Updates 1.2 MB/s | 1.7 kB 00:00 Importing GPG key 0xBDDA8475: Userid : "RPM Fusion nonfree repository for EL (8) " Fingerprint: CF9F D59F 61D6 6121 46CD AC8E 14B6 792D BDDA 8475 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-el-8 Key imported successfully Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : ocaml-runtime-4.11.1-0.1.2.rabe.x86_64 1/10 Installing : ocaml-4.11.1-0.1.2.rabe.x86_64 2/10 Installing : ocaml-compiler-libs-4.11.1-0.1.2.rabe.x86_64 3/10 Installing : ocaml-csexp-1.3.2-0.1.2.rabe.x86_64 4/10 Installing : ocaml-csexp-devel-1.3.2-0.1.2.rabe.x86_64 5/10 Installing : ocaml-dune-2.7.1-0.1.2.rabe.x86_64 6/10 Installing : fdk-aac-2.0.0-3.el8.x86_64 7/10 Running scriptlet: fdk-aac-2.0.0-3.el8.x86_64 7/10 Installing : fdk-aac-devel-2.0.0-3.el8.x86_64 8/10 Installing : ocaml-dune-devel-2.7.1-0.1.2.rabe.x86_64 9/10 Installing : ocaml-findlib-1.8.1-0.1.2.rabe.x86_64 10/10 Running scriptlet: ocaml-findlib-1.8.1-0.1.2.rabe.x86_64 10/10 Verifying : ocaml-4.11.1-0.1.2.rabe.x86_64 1/10 Verifying : ocaml-compiler-libs-4.11.1-0.1.2.rabe.x86_64 2/10 Verifying : ocaml-csexp-1.3.2-0.1.2.rabe.x86_64 3/10 Verifying : ocaml-csexp-devel-1.3.2-0.1.2.rabe.x86_64 4/10 Verifying : ocaml-dune-2.7.1-0.1.2.rabe.x86_64 5/10 Verifying : ocaml-dune-devel-2.7.1-0.1.2.rabe.x86_64 6/10 Verifying : ocaml-findlib-1.8.1-0.1.2.rabe.x86_64 7/10 Verifying : ocaml-runtime-4.11.1-0.1.2.rabe.x86_64 8/10 Verifying : fdk-aac-2.0.0-3.el8.x86_64 9/10 Verifying : fdk-aac-devel-2.0.0-3.el8.x86_64 10/10 Installed: fdk-aac-2.0.0-3.el8.x86_64 fdk-aac-devel-2.0.0-3.el8.x86_64 ocaml-4.11.1-0.1.2.rabe.x86_64 ocaml-compiler-libs-4.11.1-0.1.2.rabe.x86_64 ocaml-csexp-1.3.2-0.1.2.rabe.x86_64 ocaml-csexp-devel-1.3.2-0.1.2.rabe.x86_64 ocaml-dune-2.7.1-0.1.2.rabe.x86_64 ocaml-dune-devel-2.7.1-0.1.2.rabe.x86_64 ocaml-findlib-1.8.1-0.1.2.rabe.x86_64 ocaml-runtime-4.11.1-0.1.2.rabe.x86_64 Complete! [root@dd916d343ef4 git]# [root@dd916d343ef4 git]# rpmbuild -ba ocaml-fdkaac.spec Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.tspzRt + umask 022 + cd /root/rpmbuild/BUILD + cd /root/rpmbuild/BUILD + rm -rf ocaml-fdkaac-0.3.2 + /usr/bin/gzip -dc /root/rpmbuild/SOURCES/ocaml-fdkaac-0.3.2.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd ocaml-fdkaac-0.3.2 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.bFJ76U + umask 022 + cd /root/rpmbuild/BUILD + cd ocaml-fdkaac-0.3.2 + dune build gcc src/fdkaac_stubs.o In file included from /usr/lib64/ocaml/caml/custom.h:23, from fdkaac_stubs.c:25: fdkaac_stubs.c: In function 'ocaml_fdkaac_encode': /usr/lib64/ocaml/caml/mlvalues.h:265:24: warning: passing argument 1 of 'memcpy' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] #define String_val(x) ((const char *) Bp_val(x)) ~^~~~~~~~~~~~~~~~~~~~~~~~~ fdkaac_stubs.c:234:10: note: in expansion of macro 'String_val' memcpy(String_val(ret), outbuf, outArgs.numOutBytes); ^~~~~~~~~~ In file included from /usr/include/features.h:428, from /usr/include/bits/libc-header-start.h:33, from /usr/include/stdint.h:26, from /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:9, from /usr/lib64/ocaml/caml/config.h:61, from /usr/lib64/ocaml/caml/mlvalues.h:22, from /usr/lib64/ocaml/caml/custom.h:23, from fdkaac_stubs.c:25: /usr/include/bits/string_fortified.h:31:1: note: expected 'void * restrict' but argument is of type 'const char *' __NTH (memcpy (void *__restrict __dest, const void *__restrict __src, ^~~~~ In file included from /usr/lib64/ocaml/caml/custom.h:23, from fdkaac_stubs.c:25: fdkaac_stubs.c: In function 'ocaml_fdkaac_flush': /usr/lib64/ocaml/caml/mlvalues.h:265:24: warning: passing argument 1 of 'memcpy' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] #define String_val(x) ((const char *) Bp_val(x)) ~^~~~~~~~~~~~~~~~~~~~~~~~~ fdkaac_stubs.c:272:10: note: in expansion of macro 'String_val' memcpy(String_val(ret), outbuf, outArgs.numOutBytes); ^~~~~~~~~~ In file included from /usr/include/features.h:428, from /usr/include/bits/libc-header-start.h:33, from /usr/include/stdint.h:26, from /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h:9, from /usr/lib64/ocaml/caml/config.h:61, from /usr/lib64/ocaml/caml/mlvalues.h:22, from /usr/lib64/ocaml/caml/custom.h:23, from fdkaac_stubs.c:25: /usr/include/bits/string_fortified.h:31:1: note: expected 'void * restrict' but argument is of type 'const char *' __NTH (memcpy (void *__restrict __dest, const void *__restrict __src, ^~~~~ Done: 69/72 (jobs: 1)+ exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.cwo7Mq + umask 022 + cd /root/rpmbuild/BUILD + '[' /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64 '!=' / ']' + rm -rf /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64 ++ dirname /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64 + mkdir -p /root/rpmbuild/BUILDROOT + mkdir /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64 + cd ocaml-fdkaac-0.3.2 ++ ocamlfind printconf destdir + dune install --prefix /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64 --libdir /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/META Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/dune-package Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/fdkaac.a Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/fdkaac.cma Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/fdkaac.cmi Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/fdkaac.cmt Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/fdkaac.cmti Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/fdkaac.cmx Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/fdkaac.cmxa Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/fdkaac.cmxs Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/fdkaac.ml Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/fdkaac.mli Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/libfdkaac_stubs.a Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/fdkaac/opam Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/doc/fdkaac/CHANGES Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/doc/fdkaac/README.md Installing /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/stublibs/dllfdkaac_stubs.so + rm -rf /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/doc + /usr/lib/rpm/find-debuginfo.sh -j2 --strict-build-id -m -i --build-id-seed 0.3.2-0.1.el8 --unique-debug-suffix -0.3.2-0.1.el8.x86_64 --unique-debug-src-base ocaml-fdkaac-0.3.2-0.1.el8.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /root/rpmbuild/BUILD/ocaml-fdkaac-0.3.2 extracting debug info from /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/lib64/ocaml/stublibs/dllfdkaac_stubs.so /usr/lib/rpm/sepdebugcrcfix: Updated 1 CRC32s, 0 CRC32s did match. 15 blocks + '[' '%{buildarch}' = noarch ']' + QA_CHECK_RPATHS=1 + case "${QA_CHECK_RPATHS:-}" in + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig /sbin/ldconfig: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf: No such file or directory + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile '' 1 + /usr/lib/rpm/brp-python-hardlink + PYTHON3=/usr/libexec/platform-python + /usr/lib/rpm/redhat/brp-mangle-shebangs Processing files: ocaml-fdkaac-0.3.2-0.1.el8.x86_64 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.teNJ2Y + umask 022 + cd /root/rpmbuild/BUILD + cd ocaml-fdkaac-0.3.2 + DOCDIR=/root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/share/doc/ocaml-fdkaac + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/share/doc/ocaml-fdkaac + cp -pr README.md /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/share/doc/ocaml-fdkaac + cp -pr CHANGES /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/share/doc/ocaml-fdkaac + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.2kRowx + umask 022 + cd /root/rpmbuild/BUILD + cd ocaml-fdkaac-0.3.2 + LICENSEDIR=/root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/share/licenses/ocaml-fdkaac + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/share/licenses/ocaml-fdkaac + cp -pr COPYING /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64/usr/share/licenses/ocaml-fdkaac + exit 0 Provides: ocaml(Fdkaac) = 872fac0de691c8c51a5e63054de1eb78 ocaml(Fdkaac_dynlink) ocaml-fdkaac = 0.3.2-0.1.el8 ocaml-fdkaac(x86-64) = 0.3.2-0.1.el8 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.4)(64bit) libfdk-aac.so.2()(64bit) ocaml(CamlinternalFormatBasics) = 3a3ca1838627f7762f49679ce0278ad1 ocaml(Stdlib) = c21c5d26416461b543321872a551ea0d ocaml(Stdlib__buffer) = 234b61fa3906003822205287eb65a481 ocaml(Stdlib__callback) = 1b88fbd71c9cf564eb0790c5709a779a ocaml(Stdlib__char) = cdee48235b2dbc08f40a0e2ec3824bc5 ocaml(Stdlib__printexc) = 6e03ab07ea296513ab6af44b09129348 ocaml(Stdlib__seq) = d6a8de25c9eecf5ae9420a9f3f8b2e88 ocaml(Stdlib__string) = 9d02da014acaf1dfdd63872e707eaed9 ocaml(Stdlib__uchar) = ab6f1df93abf9e800a3e0d1543523c96 ocaml(runtime) = 4.11.1 rtld(GNU_HASH) Processing files: ocaml-fdkaac-devel-0.3.2-0.1.el8.x86_64 Provides: ocaml(Fdkaac) = 872fac0de691c8c51a5e63054de1eb78 ocaml-fdkaac-devel = 0.3.2-0.1.el8 ocaml-fdkaac-devel(x86-64) = 0.3.2-0.1.el8 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: ocaml(CamlinternalFormatBasics) = 3a3ca1838627f7762f49679ce0278ad1 ocaml(Stdlib) = c21c5d26416461b543321872a551ea0d ocaml(Stdlib__buffer) = 234b61fa3906003822205287eb65a481 ocaml(Stdlib__callback) = 1b88fbd71c9cf564eb0790c5709a779a ocaml(Stdlib__char) = cdee48235b2dbc08f40a0e2ec3824bc5 ocaml(Stdlib__printexc) = 6e03ab07ea296513ab6af44b09129348 ocaml(Stdlib__seq) = d6a8de25c9eecf5ae9420a9f3f8b2e88 ocaml(Stdlib__string) = 9d02da014acaf1dfdd63872e707eaed9 ocaml(Stdlib__uchar) = ab6f1df93abf9e800a3e0d1543523c96 ocaml(runtime) = 4.11.1 Processing files: ocaml-fdkaac-debugsource-0.3.2-0.1.el8.x86_64 Provides: ocaml-fdkaac-debugsource = 0.3.2-0.1.el8 ocaml-fdkaac-debugsource(x86-64) = 0.3.2-0.1.el8 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Processing files: ocaml-fdkaac-debuginfo-0.3.2-0.1.el8.x86_64 Provides: debuginfo(build-id) = 7702767bd6bf01fdcdac344b20c0de7cbe174167 ocaml-fdkaac-debuginfo = 0.3.2-0.1.el8 ocaml-fdkaac-debuginfo(x86-64) = 0.3.2-0.1.el8 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: ocaml-fdkaac-debugsource(x86-64) = 0.3.2-0.1.el8 Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64 Wrote: /root/rpmbuild/SRPMS/ocaml-fdkaac-0.3.2-0.1.el8.src.rpm Wrote: /root/rpmbuild/RPMS/x86_64/ocaml-fdkaac-0.3.2-0.1.el8.x86_64.rpm Wrote: /root/rpmbuild/RPMS/x86_64/ocaml-fdkaac-devel-0.3.2-0.1.el8.x86_64.rpm Wrote: /root/rpmbuild/RPMS/x86_64/ocaml-fdkaac-debugsource-0.3.2-0.1.el8.x86_64.rpm Wrote: /root/rpmbuild/RPMS/x86_64/ocaml-fdkaac-debuginfo-0.3.2-0.1.el8.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.Z1YUt9 + umask 022 + cd /root/rpmbuild/BUILD + cd ocaml-fdkaac-0.3.2 + /usr/bin/rm -rf /root/rpmbuild/BUILDROOT/ocaml-fdkaac-0.3.2-0.1.el8.x86_64 + exit 0 [root@dd916d343ef4 git]# exit ``` After this the binaries are in `./RPMS`.

tzumbrunnen commented 3 years ago

Thank you very much for your transparency and these helpful instructions. I tried to build the RPM's on my Build Server, with partial success. The RPM Build worked so far :

 rw-r--r-- 1 root root 83744 Dec  6 11:21 ocaml-fdkaac-0.3.2-0.1.el8.x86_64.rpm
-rw-r--r-- 1 root root 50524 Dec  6 11:21 ocaml-fdkaac-devel-0.3.2-0.1.el8.x86_64.rpm
-rw-r--r-- 1 root root  9608 Dec  6 11:21 ocaml-fdkaac-debugsource-0.3.2-0.1.el8.x86_64.rpm
drwxr-xr-x 2 root root   214 Dec  6 11:21 .
-rw-r--r-- 1 root root 19184 Dec  6 11:21 ocaml-fdkaac-debuginfo-0.3.2-0.1.el8.x86_64.rpm

After installing the rpm's I tested the loading of the dynamic fdkaac encoder w/o success so far. I received the following message :

[liquidsoap@centos8 fdkaac]$ liquidsoap -v 'out(sine())'
2020/12/06 11:41:21 >>> LOG START
2020/12/06 11:41:21 [main:3] Liquidsoap 1.4.3
2020/12/06 11:41:21 [main:3] Using: bytes=[distributed with OCaml 4.02 or above] pcre=7.2.3 sedlex=2.1 menhirLib=20200624 dtools=0.4.2 duppy=0.9.0 cry=0.6.5 mm=0.5.0 xmlplaylist=0.1.4 ogg=0.5.2 vorbis=0.7.1 opus=0.1.3 speex=0.2.1 mad=0.4.5 flac=0.1.7 flac.ogg=0.1.7 dynlink=[distributed with Ocaml] lame=0.3.4 theora=0.3.1 bjack=0.1.5 alsa=0.2.3 samplerate=0.1.4 taglib=0.3.6 ssl=0.5.9 magic=0.7.3 camomile=[unspecified] inotify=2.3 yojson=1.7.0 soundtouch=0.1.8 ladspa=0.1.5
2020/12/06 11:41:21 [dynamic.loader:3] Error while loading dynamic fdkaac encoder at /usr/lib64/ocaml/fdkaac
2020/12/06 11:41:21 [dynamic.loader:3] error loading shared library: Dynlink.Error (Dynlink.Not_a_bytecode_file "/usr/lib64/ocaml/fdkaac/fdkaac_loader.cmxs")
2020/12/06 11:41:21 [dynamic.loader:3] Could not find dynamic module for fdkaac encoder.

I checked everything in /usr/lib64/ocaml/fdkaac and it looked good. Maybe I might missed something while building & installing the code. Do you have any ideas ?

Beside that, it just came to my mind that by using %ffmpeg someone could get rid of this procedure. just as a last resort, worth to test and compare if we could achieve the same stream quality. As of the LS documentation the configuration would looks like this:

%ffmpeg(format="mpegts",
        %audio(codec="libfdk_aac",samplerate=22050,b="32k",
               afterburner=1,profile="aac_he_v2"))
hairmare commented 3 years ago

I can reproduce that it's not working but I'm not sure why :(

dune is building a .cma and there is a properly linked .cmxs.

# ldd /usr/lib64/ocaml/fdkaac/fdkaac.cmxs 
    linux-vdso.so.1 (0x00007ffda23b4000)
    libfdk-aac.so.2 => /usr/lib64/fdk-aac/libfdk-aac.so.2 (0x00007f6d61372000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f6d60fb0000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f6d60c2e000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f6d618c1000)

Liquidsoap is clearly trying to load something, but I'm not sure why it won't find the library. So far debugging with strace and ldd has not yielded any meaningful results.

The %ffmpeg approach won't work right now because it isn't enabled in the build.

I've been working on bootrapping ffmpeg on OBS in preparation for inline ffmepg support for a while and finally got working packages built this weekend. It looks like %ffmpeg support might be possible soonish.

hairmare commented 3 years ago

The latest package now supports ffmpeg (and depends on rpmfusion's ffmepg packages), so you might wat to give the ffmepg approach a real try.