Key quote:<p>"threatening customers with big bills for software they’re using but haven’t paid for"<p>The _really_ key bit: "haven't paid for".<p>The customer is not in compliance with their software license. At that point, they are probably looking (the very least) substantial per-core fees for the esoteric Oracle Enterprise features that they are using in production.<p>I worked for a software firm that was selling telecommunications software to carriers. We charged per subscriber per year. If the carrier wasn't paid, we didn't get paid. However, the carrier didn't keep their license up to date with the number of subscribers they had. Anyways, up comes the support contract for renewal. They complain about slow performance, slow releases and high fault rates - aiming for a discount.<p>We, pull out their 3 month old press release showing record numbers of subscribers, exceeding their license by 50%. To the tune of ~$500k/yr.<p>Yeah, the contract got renewed, with no discounts. You see, they'd already received the discount.<p>Take Away: If you're going to use software with a license, make sure you're in compliance with that license.<p>If you use Oracle, make sure you have a scripted install and that you audit the feature set against the license. This script and feature set needs to be re-audited for every new release, since the pricing and built-in features will change. It is UP TO YOU, the deployer to ensure that you are in compliance with your license. Oracle has automated audit tools, and when it comes time to renew, they know what you are using.<p>If you use Open Source, make sure you keep it SEPARATE from your main code base and read the terms of the license you are using. BSD (with advertising) vs GPL vs LGPL vs AGPL have very different impacts on your code.