Coder Social home page Coder Social logo

radiorabe / centos-rpm-liquidsoap Goto Github PK

View Code? Open in Web Editor NEW
9.0 6.0 3.0 61 KB

RaBe Liquidsoap Distribution for CentOS 8 & Fedora (RaBe-LSD)

Home Page: https://build.opensuse.org/project/show/home:radiorabe:liquidsoap

License: GNU General Public License v3.0

Shell 100.00%
liquidsoap specfile rpm centos fedora

centos-rpm-liquidsoap's Introduction

CentOS 7 RPM Specfile for liquidsoap

This repository contains the specfile for liquidsoap which is part of the RaBe liquidsoap distribution.

Install

curl -o /etc/yum.repos.d/liquidsoap.repo \
     http://download.opensuse.org/repositories/home:/radiorabe:/liquidsoap/CentOS_8/home:radiorabe:liquidsoap.repo

dnf config-manager --enable PowerTools

dnf install https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm

dnf install liquidsoap

You might have to install some dependencies explicitly to get all the parts you need to work. This is due to the fact that liquidsoap does some runtime detection and to allow for unbloated installs where advanced features are not needed.

Usage

You can run liquidsoap directly on the command line to verify it is working but will want to run scripts automatically as user liquidsoap at some stage.

The RaBe liquidsoap distribution comes bundles with an instantiable systemd service file that takes over the job of upstreams upstart config. While this does not automatically loop over /etc/liquidsoap and start all the contained scripts, configuring it is rather easy.

# enable and start the bundled example script
cp /etc/liquidsoap/radio.liq.example /etc/liquidsoap/radio.liq
systemctl enable liquidsoap@radio
systemctl start liquidsoap@radio

# add an addtional script and start it
echo "out(sine())" > /etc/liquidsoap/sine-example.liq
systemctl enable liquidsoap@sine-example
systemctl start liquidsoap@sine-example

Allow ALSA access for liquidsoap

If your liquidsoap script needs to access ALSA you need to make sure the liquidsoap user is allowed to access the subsytem.

usermod -G audio -a liquidsoap

You could also create the liquidsoap user beforehand and ensure that it has access before installing liquidsoap.

Enable fdk-aac

If you want to enable %fdkaac output you will need to provide a library that can be loaded dynamically. These instructions need updating for CentOS 8 with Liquidsoap 1.4.x

The following example uses fdk-aac from the Nux Dextop Repos but the alternative packages available from RPMFusion should work as well.

yum install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

yum install ocaml-fdkaac

After installing the dynamic lib you can check the output of liquidsoap -v 'out(sine())' for the following line.

2018/09/14 16:46:50 [dynamic.loader:3] Loaded dynamic fdkaac encoder from /usr/lib64/ocaml/fdkaac

centos-rpm-liquidsoap's People

Contributors

hairmare avatar paraenggu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

centos-rpm-liquidsoap's Issues

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

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 ?

Liquidsoap hanging on shutdown

Hey, I see you are the maintainer of the RPM packages for liquidsoap in this repo. Thank you for your awesome work, we've been running your RPM's for quite a while now on a few servers.

We're running into a strange issue with liquidsoap 1.3.6 (and I think 1.3.7 as well, but not entirely sure). Sometimes liquidsoap will hang during shutdown.

I've been pulling my hair out to get this sorted. Unfortunately I cannot reproduce the bug, it just sometimes happens and the most inconvenient times ;)

I made an issue in the liquidsoap repo: savonet/liquidsoap#843

Now I don't know much about compiling my own code, and I'd really like to keep using your RPM's.

I see two issues there that could cause this issue, at least that's what the people in the topics are talking about. Apparently there was a problem in ocaml-duppy 0.60 that could cause this issue, and it is advised to compile with ocaml-duppy >= 0.80.

The other thing is that there is some instability in ocaml-gstreamer. This seems to be fixed: savonet/ocaml-gstreamer#11 but it looks like this code was not merged into master yet. I asked the maintainer of that project to please look into that. I have no idea if that can take days or months.

Question for you: do you know what version of ocaml-duppy was used to compile your liquidsoap 1.3.6 and 1.3.7 packages for centos7?

And if you have any more ideas to help out, I'd surely love to hear them.

Kind regards from the Caribbean ;)

HOWTO: Fedora Server 33?

Has anyone found a way to get this running on Fedora 33?

I tried and got lots of missing dependency errors. The missing dependencies in turn also had missing dependencies, etc etc...

If anyone can help, I'd sure appreciate it.

Liquidsoap 1.3.3

Would you consider upgrading repo to Liquidsoap 1.3.3? There's a new time function that is going to be super useful. Thank you again for such a great contribution.

Speech Synthesis, festival package not compiled with liquidsoap?

I tried to add speech synthesis to my Icecast server and received the following result when validating my liquidsoap script...

liquidsoap --check ./radio.liq

Could not get a valid media file of kind {audio=2;video=0;midi=0} from "say:Hello, we are currently having some technical difficulties but we'll be back soon so stay tuned!".

According to LiquidSoap documentation:
SAY for speech synthesis (requires festival): say:I am a robot resolves to the WAV file resulting from the synthesis.

I installed festival and festival-dev and that didn't work. I also uninstalled liquidsoap and resinstalled it and still didn't work.

Would it be correct to say that the festival package was not installed with liquidsoap and that is why it isn't working? It seems to be consistent with the information I am reading about this. If not, would you be willing to add it to your packaging?

Update liquidsoap repo to latest production version?

Not an issue with this github, but would you consider updating your repo to the latest production version of liquidsoap? They've made some changes to ssl and other bug fixes that are useful.

Thank you for creating such a great thing here. I believe you are the only full featured, working and actively maintained repo on the net for CentOS without going to some bloated radio package.

Unable to update to 1.3.7

I can see the spec file has been bumped to 1.3.7 however running the standard installation procedure results in liquidsoap-1.3.6-80.4.x86_64 being installed.

[email protected] - ExecStartPre=/bin/mkdir - (code=exited, status=1/FAILURE)

The ExecStartPre=/bin/mkdir /var/log/liquidsoap fails if the directory already exists (which it does after the second start-up of this service.

systemctl status liquidsoap@dabplus-on-air-processing
โ— [email protected] - Liquidsoap
   Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled; vendor preset: disabled)
   Active: active (running) since Sam 2016-09-10 13:02:28 CEST; 26min ago
     Docs: http://liquidsoap.fm
           man:liquidsoap(1)
  Process: 4370 ExecStartPre=/bin/chown liquidsoap /var/log/liquidsoap (code=exited, status=0/SUCCESS)
  Process: 4366 ExecStartPre=/bin/mkdir /var/log/liquidsoap (code=exited, status=1/FAILURE)

A simple way to fix this, would be to add the --parents option to the mkdir call. However, it is probably more appropriate to create the log directory directly within the liquidsoap.spec RPM.

Retiring AAC Support

While I was checking the package I noticed that the only valid reason we still use and recommend Nux Dextop seems to be due to faad and fdk-aac. The lame and libmad packages are available from EPEL nowadays.

I would therefore like to propose dropping support for all things AAC so we can get rid of the faad and fdk-aac dependencies.

Dropping these would result in the following changed line in liquidsoaps configure output (it used to be yes).

 * Supported input formats
   - AAC               : no (requires faad)

It should not have any effects on AAC output since that is detected at runtime.

Given that we are not currently using any FOSS AAC encoders or decoders @radiorabe and there are no plans to do so in the foreseeable future, I think retiring its support in these binaries is the way forward.

@paraenggu and @smlz is this ok with you? I'll keep this issue open for while before I dig in to implementing it to gather input from other interested parties.

Unable to install liquidsoap due to libmad and libmp3lame dependency issues

Using CentOS 7 64 bit
CentOS Linux release 7.2.1511 (Core)
2.6.32-042stab113.17 #1 SMP Wed Feb 10 18:31:00 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux

`[root@stream yum.repos.d]# yum install http://download.opensuse.org/repositories/home:/radiorabe:/liquidsoap/CentOS_7/home:radiorabe:liquidsoap.repo
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

I then:
``cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/home:radiorabe:liquidsoap/CentOS_7/home:radiorabe:liquidsoap.repo
yum update
yum install liquidsoap`

Which resulted in the following response:
`--> Finished Dependency Resolution
Error: Package: liquidsoap-1.2.1-14.3.x86_64 (home_radiorabe_liquidsoap)
Requires: libmad.so.0()(64bit)
Error: Package: liquidsoap-1.2.1-14.3.x86_64 (home_radiorabe_liquidsoap)
Requires: libmp3lame.so.0()(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
``

Could you help me resolve this issue? I'd like to keep to repos to allow these packages to update rather than manually installing. If it does require manual install, could you identify the recommended locations of the dependency packages?

Thank you so much for your time...

Unable to run liquidsoap as root

The package appears to install liquidsoap as root:

[root@stream 1.2.1]# ls -ltr
total 92
-rw-r--r-- 1 root root  2844 Aug  9 03:53 video.liq
-rw-r--r-- 1 root root 26017 Aug  9 03:53 utils.liq
-rw-r--r-- 1 root root  2376 Aug  9 03:53 shoutcast.liq
-rw-r--r-- 1 root root   180 Aug  9 03:53 pervasives.liq
-rw-r--r-- 1 root root  6945 Aug  9 03:53 lastfm.liq
-rw-r--r-- 1 root root 13437 Aug  9 03:53 http_codes.liq
-rw-r--r-- 1 root root  1031 Aug  9 03:53 http.liq
-rw-r--r-- 1 root root  2039 Aug  9 03:53 gstreamer.liq
-rw-r--r-- 1 root root  3356 Aug  9 03:53 flows.liq
-rwxr-xr-x 1 root root  1543 Aug  9 03:53 extract-replaygain
-rw-r--r-- 1 root root 11065 Aug  9 03:53 externals.liq

Yet when I try to run the liquidsoap script I get an error that it won't run under root

[root@stream liquidsoap]# ./radio.liq
init: security exit, root euid (user).

The liq file has correct permissions to run

[root@stream liquidsoap]# ls -ltr
total 8
-rw-r--r-- 1 root root 1153 Aug  9 03:53 radio.liq.example
-rwxr--r-- 1 root root  637 Aug  9 16:57 radio.liq

Based on other blogs, it appears as though liquidsoap must run under a different user than root. For me to get this to work, do I need to create a user/group and then chown all of the liquidsoap files? Would it be easier if you configure your package to create a user/group and then install under the new user?

Thank you so much for your time.

rpmlint: Get rid of hardcoded-library-paths and fix minor warnings.

rpmlint ~/rpmbuild/SPECS/liquidsoap.spec

/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:66: W: configure-without-libdir-spec
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:71: E: hardcoded-library-path in %{buildroot}/usr/lib/%{name}/%{version}
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:72: E: hardcoded-library-path in %{buildroot}/usr/lib/systemd/system/
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:73: E: hardcoded-library-path in %{buildroot}/usr/lib/systemd/system/
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:84: E: hardcoded-library-path in /usr/lib/systemd/system/[email protected]
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:87: E: hardcoded-library-path in /usr/lib/liquidsoap/1.2.1/externals.liq
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:88: E: hardcoded-library-path in /usr/lib/liquidsoap/1.2.1/extract-replaygain
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:89: E: hardcoded-library-path in /usr/lib/liquidsoap/1.2.1/flows.liq
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:90: E: hardcoded-library-path in /usr/lib/liquidsoap/1.2.1/gstreamer.liq
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:91: E: hardcoded-library-path in /usr/lib/liquidsoap/1.2.1/http.liq
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:92: E: hardcoded-library-path in /usr/lib/liquidsoap/1.2.1/http_codes.liq
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:93: E: hardcoded-library-path in /usr/lib/liquidsoap/1.2.1/lastfm.liq
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:94: E: hardcoded-library-path in /usr/lib/liquidsoap/1.2.1/pervasives.liq
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:95: E: hardcoded-library-path in /usr/lib/liquidsoap/1.2.1/shoutcast.liq
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:96: E: hardcoded-library-path in /usr/lib/liquidsoap/1.2.1/utils.liq
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:97: E: hardcoded-library-path in /usr/lib/liquidsoap/1.2.1/video.liq
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec:98: E: hardcoded-library-path in /usr/lib/liquidsoap/1.2.1/liquidtts
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec: W: no-%build-section
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec: E: specfile-error warning: bogus date in %changelog: Sat Jul  3 2016 Lucas Bickel <[email protected]>
/home/builder-ka9q-fec/rpmbuild/SPECS/liquidsoap.spec: E: specfile-error warning: bogus date in %changelog: Sat Oct 21 2012 Martin Konecny <martin dot konecny at gmail.com> - 1.0-2
0 packages and 1 specfiles checked; 18 errors, 2 warnings.

variable mksafe not previously defined

I used the following liq file:

#!/usr/bin/liquidsoap
# load a playlist file
stream = playlist("/home/music")
# output the playlist to icecast
source = output.icecast(%mp3, host="localhost", port=8000,
         mount="listen.m3u", password="mypassword")
mksafe(source(stream))

Then ran the check against the liq file:

liquidsoap --check ./radio.liq

and received the following output:

At line 9, char 7: the variable mksafe used here has not been previously defined.

Doing research it appears as though this link may provide some assistance:
https://sourceforge.net/p/savonet/mailman/savonet-users/thread/[email protected]/

Here are some comments from the link:
It is a function defined in utils.liq.

Make sure you include pervasives.liq, which will automatically include
utils.liq and all other necessary files.

jackd and icecast

Hi,
it would be cool to use your packages to install liquidsoap on my CentOS but i need support for jackd and stream to icecast server.
That's why i actually install it using OPAM cmd:

opam install taglib lame vorbis lastfm ogg cry samplerate bjack flac theora gavl samplerate taglib magic xmlplaylist soundtouch camomile alsa ao ladspa xmlm camlimages inotify opus liquidsoap

Do you think it could be possible to add these compilations options to your spec file?

Thx!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.