Using (an unsupported, self-hosted version of) Billings Pro in 2020

Prelude

I have been using Billings Pro by Marketcircle for, lets just say, a long time. When I bought the software I opted for the self-hosted one-time license rather than the cloud-hosted subscription, and many, many years later, I am still capitalizing on that investment. Marketcircle no longer supports the self-hosted version. I do not currently want to migrate to the cloud-hosted version of the application, and this post documents the workarounds I found necessary to keep the client software functioning with the self-hosted server on macOS Catalina.

Disclaimer: This is not intended as a guide. You probably shouldn’t do this, and I’m not responsible if you corrupt your accounting data, your server gets hacked, your computer catches on fire, or your cat runs away as a result of replicating these steps in your own environment. The self-hosted server software is no longer updated or supported. If it were, you wouldn’t need to do these workarounds in the first place.

The Server

I am still running Billings Pro Server Admin on the last version of Mac OS that Marketcircle supported, 10.11.6. I have read accounts of people getting the server software to work on system software versions up to 10.14, but I have not made any attempts at doing so. While troubleshooting the issues I had with running the software on Catalina, I installed the server software on a clean install of Mac OS 10.11.6. While setting up the software, I set the server’s date to June 30, 2019, as Billings Pro Server generates SSL certificates for its own use and macOS Catalina (which I am running on the client computer) imposes additional requirements on SSL certificates that are generated after July 1, 2019. I am not sure that this is a required step.

Owing to the fact that the server software is no longer updated or supported, the server is firewalled from the Internet. A VPN is used to access the server remotely.

The Clients

When I attempted to log into Billings Pro on a clean install of macOS Catalina using the latest available client software from the App Store (version 1.7.16 at the time of writing), I got the vague message, “Error creating the offline DB.” It looked like an SSL connection was failing to establish. Looking through the files on the server machine I found the CA certificate that Billings Pro uses to sign its own certificates. This file is located at /Library/Application Support/Billings Pro Server/Storage.bpsdb/Data/8_3/server.crt. I copied this file to my client machine and added it to the login keychain, then configured the Trust setting for the certificate to “Always Trust.”

At this point the client software would connect to the server, but no invoices, estimates, or statements will load as long as the client software version was 1.7.15 or later. The last version of the software that will connect to the HTTP server that Billings Pro Server hosts PDF content from appears to be 1.7.14. Deprecation of obsolete security protocols seems to be the culprit. Version 1.7.14 was retrieved form a backup and installed.

Next, because it is important that the version of the Billings Pro client on disk not be accidentally updated, I deleted the _MASReceipt from the app bundle by control-clicking the app and selecting Show Package Contents, navigating to the Contents folder inside the bundle, and dragging _MASReceipt to the trash. This prevents the App Store from recognizing the Billings Pro app as having come from the Mac App Store, so it won’t prompt to update the app as new versions are released. Just to be extra careful, I locked the app from the Get Info window.

The last annoyance is that each time the client is launched, it detects that a newer version is available and recommends I update. Looking through the property list keys, there is an option for SUCheckAtStartup, but turning it off has no effect. After spending a few seconds with tcpdump, I found the software contacts currentversion.marketcircle.net. Using the hosts file to blackhole that domain prevents the update screen from appearing.

What’s Left

The Billings Pro client version 1.7.14 is a 64-bit application and will hopefully continue to run on newer macOS versions for a while longer, but this is an increasingly-fragile solution and I am evaluating other solutions to replace Billings Pro.

Installing Timbuktu Pro 8.8.5 on macOS High Sierra

macOS High Sierra throws another wrench into my preferred remote access software, Timbuktu Pro. A change in the file
/System/Library/Frameworks/ScreenSaver.framework/Versions/A/ScreenSaver prevents the Timbuktu Host application from launching.

Some solutions online suggest copying an older version of the framework, but this requires disabling System Integrity Protection, could be overwritten with a future system update, and may cause unforeseen problems.

I’ve managed to resurrect this software on High Sierra without changing the System Folder or disabling SIP.

First, copy the ScreenSaver.framework from Mac OS 10.11 and placed it at…
/SysTB2/Library/Frameworks/ScreenSaver.framework/
Next, open
/Applications/Timbuktu Pro/Timbuktu Pro.app/Contents/SharedSupport/Timbuktu Host.app/Contents/MacOS/Timbuktu Host
in a Hex Editor, and search for the string
/System/Library/Frameworks/ScreenSaver.framework/Versions/A/ScreenSaver. Change System to SysTB2 and save your changes. Now the Timbuktu Host app will use the older framework in the /SysTB2 folder.

You can then use chflags to hide the SysTB2 folder for appearance’s sake if desired:

$ chflags hidden /SysTB2

Installing Timbuktu Pro 8.8.5 on El Capitan

Security features in Apple’s new OS make it a little hard to get Timbuktu Pro running for the first time. Here’s how I managed:

  1. Copy the Timbuktu Pro folder to your Applications folder.
  2. Open terminal and run the following commands:
    xattr -d com.apple.quarantine /Applications/Timbuktu\ Pro/Timbuktu\ Pro.app/
    xattr -d com.apple.quarantine /Applications/Timbuktu\ Pro/Timbuktu\ Pro.app/\
    Contents/SharedSupport/*.app
    open /Applications/Timbuktu\ Pro/Timbuktu\ Pro.app/Contents/SharedSupport/\
    *Host*.app
    open /Applications/Timbuktu\ Pro/Timbuktu\ Pro.app

After that, you should be good to go!

IBM RS/6000 Microchannel Ethernet Options

I bought a 2994 High-Performance 10/100 Ethernet Adaptor for my POWERstation 7012-32H off eBay in hopes that it would work, even though it isn’t listed as being compatible with the 32H (the compatible adaptor is the 2992 10BaseT).

It turns out the 2994 10/100 works fine though under AIX 4.3.3. I loaded the drivers for the card and assigned it an IP with smit and I’m installing packages over an NFS export without issue.