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.8 RPMs for CentOS 7, Rocky 8 and Rocky 9.

These RPMs are quite different than the originals from the FreeSWITCH team. The outstanding features of these RPMs 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 or CentOS 7
  • Python enabled, mod_python3 is packed for Rocky8 and Rocky9. 
  • Erlang enabled, mod_event_erlang is enabled. I had to backport erlang RPMs from Fedora.
  • 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.
  • Linked against libtpl used to serialize data.
  • Linked against libstirshaken (no need to explain)

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

As I said, there are more than 2400 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.6; 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/Rocky 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 cannot be used.

Then, I looked at the official MaríaDB RPM's. The issue is that they do not have an 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 looked 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 disable it 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.

UPDATE: Rocky 9 was not as challenging as CentOS 8 was.


blog comments powered by Disqus


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

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