Skip to content

Conversation

@F1nny
Copy link

@F1nny F1nny commented Jul 23, 2025

This resolves the error below resulting from the original download URL being permanently removed, and was able to greatly simplify the script due to the new URL being a direct ISO download again.

Longer Version -
After Broadcom purchased vmware they've been making a lot of changes, among them depreciated many offerings and removed the original update URL used by gettools.py

Because of Fusion's current state, they moved the latest tools ISO's to a frozen location. This had the benefit of allowing a lot of simplification in the gettools.py script as no longer needs to parse for latest version/download full fusion tar/extract tools/etc.

FYI - I stuck with vmware's domain (https://packages.vmware.com/tools/frozen/) instead of Broadcom's (https://packages-prod.broadcom.com/tools/frozen/)
This feels safer, as they've apparently changed the Broadcom packages subdomain twice in a matter of months, so is some concern on it's future reliability.

Resolves the following permanent error:

Getting VMware Tools...
Trying to get tools from the packages folder...
Traceback (most recent call last):
  File "/usr/lib/python3.13/urllib/request.py", line 1319, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
              encode_chunked=req.has_header('Transfer-encoding'))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/http/client.py", line 1338, in request
    self._send_request(method, url, body, headers, encode_chunked)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/http/client.py", line 1384, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/http/client.py", line 1333, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/http/client.py", line 1093, in _send_output
    self.send(msg)
    ~~~~~~~~~^^^^^
  File "/usr/lib/python3.13/http/client.py", line 1037, in send
    self.connect()
    ~~~~~~~~~~~~^^
  File "/usr/lib/python3.13/http/client.py", line 1003, in connect
    self.sock = self._create_connection(
                ~~~~~~~~~~~~~~~~~~~~~~~^
        (self.host,self.port), self.timeout, self.source_address)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/socket.py", line 840, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
               ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/socket.py", line 977, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
               ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -2] Name or service not known

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/misc/vmware-unlocker/./gettools.py", line 166, in <module>
    main()
    ~~~~^^
  File "/opt/misc/vmware-unlocker/./gettools.py", line 115, in main
    response = urlopen(url)
  File "/usr/lib/python3.13/urllib/request.py", line 189, in urlopen
    return opener.open(url, data, timeout)
           ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/urllib/request.py", line 489, in open
    response = self._open(req, data)
  File "/usr/lib/python3.13/urllib/request.py", line 506, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
                              '_open', req)
  File "/usr/lib/python3.13/urllib/request.py", line 466, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.13/urllib/request.py", line 1348, in http_open
    return self.do_open(http.client.HTTPConnection, req)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/urllib/request.py", line 1322, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>

…longer available. Adjusted gettools to pull the last tool ISOs directly from the frozen URL which also allowed some simplifications over the original where this was not possible before
@NullifiedSec
Copy link

thanks for the fix bro before this i had to manually download the tools and remove the download part from the script when i run it. hoping this gets merged soon

@uncor3
Copy link

uncor3 commented Aug 29, 2025

this must get merged

@BDisp
Copy link

BDisp commented Aug 29, 2025

This repo seems that isn't maintained anymore. You can use this link instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants