Please hire someone who knows debian

had someone bring a bug to my attention. The latest FreePBX package used by the Debian installer essentially breaks FreePBX at an open-source level by introducing a commercial module dependency.

This is evident in the bug report where the user didn’t want to use any Sangoma commercial modules:

Guess what? That isn’t allowed. Why? I’m glad you asked. Oh, you didn’t ask? Well, let me tell you. Apparently, there are no Linux, or at least no Debian folks, on the development team. There was an issue related to the commercial side where ionCube requires an IP? Why? Who knows. Someone locking licensing to an IP address seems insane, so I’m guessing it’s to “phone home.” Whatever the reason, the workaround solution was to replace the Apache systemd service with a random bash script installed with SysAdmin.

Yes, in order to run Apache for FreePBX, you must use this strange workaround shell script to start it. That shell script is in SysAdmin, a commercial module. This doesn’t affect only customers who, I assume, matter—those paying for commercial modules. But it does break things for everyone who doesn’t, at least on a fresh install. Even if your commercial modules need to phone home, that can be done WITHOUT BREAKING APACHE!

11 Likes
Apparently, there are no Linux, or at least no Debian folks, on the development team. There was an issue related to the commercial side 

I often wondered why ‘yellow dog update manager’ is still a ‘thing’ in 17 :wink:

3 Likes

Hi @jfinstrom Yes this is known issue to move that sysadmin file out from sysadmin or to use only if commercial module is involved. Work is in progress to fix this issue.

Thanks
Kapil

2 Likes

which begs the question, what else has hidden requirements/changes on stock freepbx.

and anything locking to an IP in 2025 is crazy, with so many users now behind cgnat, thats a screwup of monumental proportions for who even codes such stupidness.

2 Likes

A ton of stuff. But once FreePBX is installed you can go into the Modules list and uninstall every commercial or trialware commercial module in the distro. It does take a while though because many of them have dependencies on each other.

This problem isn’t specific to FreePBX. I’ve seen it in other OSS projects. The worst are the BSD-licensed projects (like bind) that require FSF-GPL encumbered programs like gcc to be compiled. While gcc isn’t commercial it’s very insulting to have a more-free project dependent on a less-free license IMHO.

did you tried --opensourceonly (double hyphen) option which will remove the commercial modules from the system so you dont have to do by yourself.

In my case, I’m running commercial modules, so it’s not appropriate for me to use --opensourceonly, but I certainly don’t want them all to be installed. I have no idea why they’re all installed by default. It feels like a super basic concept, to me at least, that only the services you require should be installed; otherwise you’re unnecessarily expanding your overall system’s risk of vulnerability/compromise.

My syntax to fix this was:

fwconsole ma uninstall oracle_connector
fwconsole ma uninstall pms
fwconsole ma uninstall adv_recovery areminder broadcast callaccounting callerid calllimit cdrpro conferencespro cos extensionroutes faxpro parkpro pbxmfa pinsetspro queuestats qxact_reports recording_report
fwconsole ma uninstall sangomaconnect sangomacrm sangomartapi scribe sipstation smsplus vmnotify voicemail_report voipinnovations vqplus webcallback
fwconsole ma uninstall restapps

That left only the few commercial modules I care about, which I suspect could be removed in a single statement (but if I’m wrong, it’s easy to follow the errors to figure out which needs to be removed in which order):

fwconsole ma uninstall endpoint pagingpro sms sysadmin

‘uninstall’ is not as complete as ‘delete’, leaving stuff around has been believed to have caused problems downline.

1 Like

Thanks for the advice. :slight_smile:

1 Like

Without need to maintain a list

fwconsole ma list | awk '/Commercial/ && /Sangoma/ {print $2}' | xargs -n1 fwconsole ma -f uninstall && fwconsole ma list | awk '/Commercial/ && /Sangoma/ {print $2}' | xargs -n1 fwconsole ma remove
3 Likes