My application is able to run on OperatingSystem 3 and on OperatingSystem 4. OS 4 stopped shipping OpenSSL 1.0 in favour of 1.1 (as should be), while OS 3 is still on OpenSSL 1.0. My application links fine against either, but a build for 3 cannot run on 4, nor can a 4 build run on OS 3. This is no problem: I have built separate packages for both OS's, and both work fine against their own OpenSSL versions.
OperatingSystem uses Zypper and RPM for their packages, and crucially, it is customary to host RPMs in one single "user repository".
My current strategy was to append a
dist tag, not unlike Fedora's approach:
application-0.6.0-0.os4, but both OS3 and OS4 want to install the
os4 version. I used these
Requires statements, adapting for OS versions:
Requires: os-version < 4.0 Requires: os-version >= 3.0
os-version is a pre-existing meta-package.
At this point, I'm unsure what to try (except to create a second "user repository", which would be a trivial but "ugly" solution in a sense).