C++ 使使用RLM许可的旧软件无效 脚本

C++ 使使用RLM许可的旧软件无效 脚本,c++,c++17,compatibility,licensing,backwards-compatibility,C++,C++17,Compatibility,Licensing,Backwards Compatibility,客户已收到具有时间限制RLM许可证的软件包。许可证即将到期,计划进行更新,即即将交付新的软件包 在过去的几个月里,在软件中发现了一些缺陷,我们需要防止客户将旧软件包与新软件包附带的许可证结合使用 一些进一步的上下文:软件是用C++编写的,这也是RLM库是如何访问的。 RLM结构 RLM许可证的结构如下: LICENSE some_isv some_product 1.0 10-jan-2020 uncounted hostid=ANY 根据我阅读文档的理解,许可证提供向下兼容性,即版本1.1与

客户已收到具有时间限制RLM许可证的软件包。许可证即将到期,计划进行更新,即即将交付新的软件包

在过去的几个月里,在软件中发现了一些缺陷,我们需要防止客户将旧软件包与新软件包附带的许可证结合使用

一些进一步的上下文:软件是用C++编写的,这也是RLM库是如何访问的。 RLM结构 RLM许可证的结构如下:

LICENSE some_isv some_product 1.0 10-jan-2020 uncounted hostid=ANY
根据我阅读文档的理解,许可证提供向下兼容性,即版本
1.1
与版本
1.0
兼容,但反之亦然。但是,在我们的情况下,这是没有帮助的,因为可以复制版本为
1.1
的有效RLM许可证来替换版本为
1.0
的许可证,从而生成一个正常运行的旧软件包

软件版本由软件本身提供给
检查大纲许可
,可以通过密钥管理系统、硬编码字符串或任何其他方式提供

问题: 如何交付新软件包,使新软件包不提供向后兼容的RLM许可证

显然,可以交付一个软件包,这样新的软件包就带有版本
0.99
,许可证也是如此。然而,有几个抱怨:

  • 它不符合实际的软件版本控制,因为软件包的版本控制是以相对常见的方式按升序进行的
  • 现在,新的许可证不再与旧产品兼容,而是与新产品兼容,而不是与旧产品兼容
  • 这违背了RLM向下兼容性的要点。如果在将来的某个时候要交付版本为
    1.3
    的软件包,那么这将导致一个选择:新软件包可以使用旧许可证激活,或者新软件包仅使用最新许可证激活,但此许可证也对所有旧软件包有效
基本上,问题似乎在于向后兼容性。我希望在许可证版本和软件版本之间引入一对一的关系

TL;博士
如何使用RLM许可证交付新的软件包,以便新的许可证仅对所需的软件版本有效?

如果要破坏所有向前/向后兼容性,如果更改
某些产品
字符串会发生什么情况?Reprise/RLM可能会提供一些更具体的功能,看起来像是我绝对希望得到的一个完整的支持包。你有没有试着直接与RLM联系这个问题?毕竟这是一种专利产品,他们应该有兴趣帮助你。我想这是我的下一步。目前我正在翻查文档,我的问题是想找出我是否遗漏了一些知识。我想,
product
标签可能是我正在寻找的解决方案,目前还不确定。这个问题与编程有什么关系?也许它更适合软件开发?