LexActivator wrapper for Python: error loading lib on ARM architecture


#1

Hi,
The LexActivator wrapper for Python raises the following exception when loading on an ARM computer:

OSError: /usr/local/lib/python3.7/site-packages/cryptlex/lexactivator/libs/linux/gcc/x86/libLexActivator.so: cannot open shared object file: No such file or directory

Looking at the code on GitHub, it seems it only supports x86 and x86_64…?

def get_library_path():
    compiler = 'gcc'
    arch = 'x86'
    if(is_os_64bit()):
        arch = 'x86_64'
    # Get the working directory of this file
    filename = inspect.getframeinfo(inspect.currentframe()).filename
    dir_path = os.path.dirname(os.path.abspath(filename))
    # dir_path = os.getcwd()
    if sys.platform == 'darwin':
        return os.path.join(dir_path, "libs/macos/"+arch+"/libLexActivator.dylib")
    elif sys.platform == 'linux':
        if(is_musl()):
            compiler = 'musl'
        return os.path.join(dir_path, "libs/linux/"+compiler+"/"+arch+"/libLexActivator.so")
    elif sys.platform == 'win32':
        return os.path.join(dir_path, "libs/win32/"+arch+"/LexActivator.dll")
    else:
        raise TypeError("Platform not supported!")

Thanks,
Tiago


#2

Hi Tiago,

We have added support for the same now in the latest version.

Regards,
Adnan


#3

Hi Adnan,

Thanks, now it loads.

However, when activating the licence offline, it returns the following error:
Machine fingerprint has changed since activation.

But, despite the error, the licence seems to be activated, as LexActivator.IsLicenseGenuine() returns LA_OK.

We’ve never seen this behaviour before. Can it be related to be running of an ARM computer?

Thanks,
Tiago


#4

Hi again,

After a few more tests to try to debug it, we found out that, despite the licence seems to be activated after we try to activate it offline and get that error message, as soon as we restart the application, IsLicenseGenuine() starts returning FAIL.

Thanks,
Tiago


#5

Hi,

This behaviour is intended. You need to provide a new offline request/response file.


#6

Hi Adnan,

Yes, we have done that. But in no way we’ve managed to activate the licence.

Thanks,
Tiago


#7

Hi,

I guess you are using an old offline request. You need to generate a new offline request.

Regards,
Adnan


#8

Hi Adnan,

This problem still prevails and is preventing us to use LexActivator on a RaspberryPi. In summary:

  • When activating a licence offline, lexactivator returns error “Machine fingerprint has changed since activation”;
  • besides the error message, following calls to IsLicenseGenuine() return OK;
  • however, after restarting the application, IsLicenseGenuine() always returns FAIL.

We’ve tried with a brand new software installation and a brand new licence. The behaviour is always the same.

Is anyone else using the Python lib on an ARM architecture?

Thank you,
Tiago


#9

Hi Tiago,

Python wrapper internally calls the C library functions, and we have many customers using it on the ARM machines.

The issue in your case is with fingerprinting. The device fingerprint is not stable and fails on the fuzzy match. Can you share the license key on [email protected] so that we can investigate the fingerprint issue.

Regards,
Adnan