User Rating: 5 / 5

Star Active Star Active Star Active Star Active Star Active

I am very proud to share with you all the FreeSWITCH 1.10.6 RPMs for CentOS 7 and 8.

These RPM's are quite different than the originals from the FreeSWITCH team. The outstanding features of these RPM's are:

  • SMS Flowroute module (mod_sms_flowroute) is now enabled and packed.
  • Video enabled, h26x and VPx are packed. I had trouble packing VLC, so, for now, mod_vlc won't be available.
  • Linked against tmalloc, as my readings (google it please), tmalloc seems to be the fastest memory library.
  • Javascript enabled, mod_v8 is packed.
  • Python enabled, mod_python is packed. Please note that CentOS 8 uses Python 3 and 2 at the same time. FreeSWITCH uses python 2. You may need to use the alternative command to have backwards compatibility. I am not a Python coder myself.
  • MariaDB enabled: mod_mariadb is packed. This was a big deal. I will explain why below.
  • Linked against opencore-amrwb and vo-amrwbenc which according to my understanding will make the mod_arm* modules capable of encoding and decoding the AMR codec. The RPM subpackage will still be called passthrough-arm*.
  • Linked against libopusenc which will allow to record and save OGG files.
  • Linked against libfvad which will allow detecting voice in real-time.

RPMs are available for CentOS 7 and 8. And you can find it if you type yum search freeswitch.

As I said, there are more than 2250 working hours so far in order to make this possible.

CentOS 6 RPM for FreeSWITCH is Not Available

Since this new release, sofia-lib is not shipped in the tarball, instead, it will use the system's library. FreeSWITCH requires sofia-lib >= 1.13.3; I had issues compiling sofia-lib under CentOS 6. After doing a little debug, I found that I require a newer glib version. I won't mess with that library since it is a core one. Sadly, CentOS 6 RPM for FreeSWITCH. If you really need support for CentOS 6, you will need to contact me privately.

UPDATE: Since CentOS 6 has reached its EOL. I won't be publishing more RPM's eighter.

Why Packing for CentOS 8 was so Challenging?

There was more than one issue, most of them were as easy as repacking the old CentOS 7 SRPMS I have been doing or updating new RPM provides. However, the big issue. CentOS 8 is shipped with MariaDB 3:10.3.11 which means it has libmariadb 3.0.7. FreeSWITCH 1.10.x needs at least libmariadb 3.0.9 so, for starters, it cant not be used.

Then, I looked at the official MaríaDB RPM's. The issue here is that they do not have epoch in the versioning (missing epoch means zero). According to the RPM's versioning rules, 3:10.3.11 > 10.4.10, therefore, the RPM engine won't install it. I took a look into the SRPMS from MariaDB but they are not conventional, they are kind of an SRPMS inside another SRPMS. Even if I add the epoch information, when repacking it will get the same useless number. I kept looking for a day without success. Therefore, I couldn't use it.

Disabling the AppStream repository and enabling the MariaDB repository was not an option. The problem was that the AppStream repository has many dependencies within, including the GCC itself. I couldn't disabled right away.

Then I decided to do the impossible mission: to recompile all the needed SRPMS from CentOS 8 in order to be able to disable the AppStream package. It was not easy, it seems CentOS 8 repository planning has some faults:

  • some lib*-devel packages were in the AppStream repository while library RPM was in the BaseOS repository, this reminds me of the horrible ClearOS distribution.
  • some SRPMS had some BuildRequirements statements that were not available in CentOS 8. So, I looked at Fedora 28 (CentOS 8 is supposed to be based on Fedora 28) and if still not available I looked at Fedora 29 or 30. I wonder how CentOS people build some packages such as nodejs with some missing RPM's.
  • the python doesn't exist anymore; in CentOS 8 it is python2 or python3 but not python. I couldn't use the alternative command because mock doesn't support it. So, all the SRPMS that had to do something with python had to be patched.

I repacked no less than 500 SRPM's, after that was done, disabling the AppStream repository was possible and the FreeSWITCH RPM build on CentOS 8 was possible.

UPDATE: I found a way to void packaging everything in the future. The RPM's will still be available but they will get updated when CentOS 8 publish new revisions.

Enjoy!

blog comments powered by Disqus

About

Read about IT, Migration, Business, Money, Marketing and other subjects.

Some subjects: FusionPBX, FreeSWITCH, Linux, Security, Canada, Cryptocurrency, Trading.