marcel-valdez / tibia_terminator

Auto-heal, auto-mana, auto-haste, auto-utamo, auto-amulet, auto-ring and auto-tank for Tibia Linux client.
8 stars 3 forks source link

Not working, getting errors #12

Closed eroigaps closed 1 year ago

eroigaps commented 1 year ago

I'm getting the following error message. I am using Manjaro, so I could not install exactly the listed dependencies. Instead of libleptonica-dev libtesseract-dev tesseract-ocr, I could only install leptonica and tesseract packages from arch community repository. Is that an issue?

sudo -E $(which python3.8) -m tibia_terminator.tools.app_config_manager \ "${TERMINATOR_PATH}/tibia_terminator/app_config.json" \ find_addresses \ --tibia_window_config "${TERMINATOR_PATH}/char_configs/tibia_window_config.json" \ --hotkeys_config "${TERMINATOR_PATH}/char_configs/hotkeys_config.json" \ --pid ${TIBIA_PID} [sudo] password for ehh: INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. Traceback (most recent call last): File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/lib/python3.8/runpy.py", line 87, in _run_code exec(code, run_globals) File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_manager.py", line 209, in main(parse_args()) File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_manager.py", line 199, in main app_configs = find_memory_addresses(args, app_configs) File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_manager.py", line 173, in find_memory_addresses built_config = app_config_memory_address_finder.build_app_config_entry() File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_memory_address_finder.py", line 89, in build_app_config_entry mana_address = self.find_mana_address() File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_memory_address_finder.py", line 54, in find_mana_address addresses, better_rect = self.memory_address_finder.find_address( File "/home/ehh/tibia_terminator/tibia_terminator/reader/memory_address_finder.py", line 138, in find_address ctype_ctor(value), writeable_only=True, verbatim=True, TypeError: an integer is required (got type NoneType)

eroigaps commented 1 year ago

I have made some progress,

INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 230 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 230 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 230 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 230 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 230 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 230 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 229 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 229 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 229 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 229 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 229 matching. Traceback (most recent call last): File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/lib/python3.8/runpy.py", line 87, in _run_code exec(code, run_globals) File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_manager.py", line 209, in main(parse_args()) File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_manager.py", line 199, in main app_configs = find_memory_addresses(args, app_configs) File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_manager.py", line 173, in find_memory_addresses built_config = app_config_memory_address_finder.build_app_config_entry() File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_memory_address_finder.py", line 89, in build_app_config_entry mana_address = self.find_mana_address() File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_memory_address_finder.py", line 64, in find_mana_address raise UnableToFindMemoryAddressException("Unable to determine mana address") tibia_terminator.tools.app_config_memory_address_finder.UnableToFindMemoryAddressException: Unable to determine mana address

eroigaps commented 1 year ago

I solved the issue. Thanks for providing this!

marcel-valdez commented 1 year ago

You need to make F7 be a spell like exura gran or exura ico, so that mana changes and it reads different mana values in order to arrive at the memory address of the mana value.

Also make sure that the rectangle it reads the mana points from matches your tibia window. This is configured in the json file (which you can find in the example tibia_window_config.json)


From: eroigaps @.> Sent: Saturday, February 4, 2023 5:29 AM To: marcel-valdez/tibia_terminator @.> Cc: Subscribed @.***> Subject: Re: [marcel-valdez/tibia_terminator] Not working, getting errors (Issue #12)

I have made some progress,

INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 231 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 231 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 230 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 230 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 230 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 230 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 230 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 230 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 229 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 229 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 229 matching. INFO:tibia_terminator.reader.memory_address_finder:Sending key F7 to window 69206030 INFO:tibia_terminator.reader.memory_address_finder:Attempting to OCR read next value. INFO:tibia_terminator.reader.memory_address_finder:Searching 229 addresses. INFO:tibia_terminator.reader.memory_address_finder:OCR Scan of Rect(x=1853, y=520, width=50, height=16): 1100 INFO:tibia_terminator.reader.memory_address_finder:Found 229 matching. Traceback (most recent call last): File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/lib/python3.8/runpy.py", line 87, in _run_code exec(code, run_globals) File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_manager.py", line 209, in main(parse_args()) File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_manager.py", line 199, in main app_configs = find_memory_addresses(args, app_configs) File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_manager.py", line 173, in find_memory_addresses built_config = app_config_memory_address_finder.build_app_config_entry() File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_memory_address_finder.py", line 89, in build_app_config_entry mana_address = self.find_mana_address() File "/home/ehh/tibia_terminator/tibia_terminator/tools/app_config_memory_address_finder.py", line 64, in find_mana_address raise UnableToFindMemoryAddressException("Unable to determine mana address") tibia_terminator.tools.app_config_memory_address_finder.UnableToFindMemoryAddressException: Unable to determine mana address

— Reply to this email directly, view it on GitHubhttps://github.com/marcel-valdez/tibia_terminator/issues/12#issuecomment-1416751398, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAE53AJ2LX326QVX2UVH4DTWVZKTTANCNFSM6AAAAAAUQRHLMQ. You are receiving this because you are subscribed to this thread.Message ID: @.***>

eroigaps commented 1 year ago

Thank you for responding! On another note, how likely is it for battleye to pick up on tools like these? As far as I can tell, the linux implementation is quite limited. I do not use any of the functionality that is based reading the memory on the account I actually care about.

marcel-valdez commented 1 year ago

BattleEye would have to basically reimplement their entire product for the Linux OS, despite the fact that about 1% of users use Linux. That ain't happening.