Bug 11251 - Util scanpypi failes when package change - to _ in tar file (Trunk)
Summary: Util scanpypi failes when package change - to _ in tar file (Trunk)
Status: RESOLVED FIXED
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: 2018.05
Hardware: All Linux
: P5 minor
Target Milestone: ---
Assignee: yegorslists
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-08-21 08:23 UTC by mzweerspenko+bugzilla
Modified: 2018-11-02 20:37 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description mzweerspenko+bugzilla 2018-08-21 08:23:26 UTC
<Sympthon>

user@workstation:/data/bugreport/buildroot$ ./utils/scanpypi websocket-client
buildroot package name for websocket-client: python-websocket-client
Package: python-websocket-client
Fetching package websocket-client
Downloading package websocket-client from https://files.pythonhosted.org/packages/bb/ae/4ff2ae1f722d0c23dc4cdf74a4e05b0d1bbe752dc28620b9fe05c53e61aa/websocket_client-0.51.0.tar.gz...
Traceback (most recent call last):
  File "./utils/scanpypi", line 721, in <module>
    main()
  File "./utils/scanpypi", line 670, in main
    package.load_setup()
  File "./utils/scanpypi", line 279, in load_setup
    os.chdir(self.tmp_extract)
OSError: [Errno 2] No such file or directory: '/tmp/scanpypi-20A8aE/python-websocket-client/websocket-client-0.51.0'
user@workstation:/data/bugreport/buildroot$

</Sympthon>

<investigation>
Exciting path: 
/tmp/scanpypi-20A8aE/python-websocket-client/websocket_client-0.51.0/

Expected path: 
/tmp/scanpypi-20A8aE/python-websocket-client/websocket-client-0.51.0/

Difference is _ instead of -

</investigation>

<suggestion>
Maybe some regex or * can be used to allow both options.
</suggestion>
Comment 1 mzweerspenko+bugzilla 2018-08-21 08:40:55 UTC
I now notice that the tar file has the same _.
Comment 2 mzweerspenko+bugzilla 2018-08-21 09:10:19 UTC
Ok. My end goal was to add socketio-client-nexus. I got the error when scanpypi is resolving dependencies. I tried to keep my bug report as small as possible.

I have made workaround. But python is new to me. 


    def load_setup(self):
        """
        Loads the corresponding setup and store its metadata
        """
        current_dir = os.getcwd()
        self.tmp_extract = os.path.join(os.path.dirname(self.tmp_extract),self.filename.split(".tar")[0])
        #print("MGZ: {0} {1}".format(self.tmp_extract,extract_dir))
        os.chdir(self.tmp_extract)
        sys.path.append(self.tmp_extract)
        s_file, s_path, s_desc = imp.find_module('setup', [self.tmp_extract])
        setup = imp.load_module('setup', s_file, s_path, s_desc)
        try:
            self.setup_metadata = self.setup_args[self.metadata_name]
        except KeyError:
            # This means setup was not called which most likely mean that it is
            # called through the if __name__ == '__main__' directive.
            # In this case, we can only pray that it is called through a
            # function called main() in setup.py.
            setup.main()  # Will raise AttributeError if not found
            self.setup_metadata = self.setup_args[self.metadata_name]
        # Here we must remove the module the hard way.
        # We must do this because of a very specific case: if a package calls
        # setup from the __main__ but does not come with a 'main()' function,
        # for some reason setup.main() will successfully call the main
        # function of a previous package...
        sys.modules.pop('setup', None)
        del setup
        os.chdir(current_dir)
        sys.path.remove(self.tmp_extract)
Comment 3 yegorslists 2018-08-21 09:21:57 UTC
Please send your patch using git send-email via BR's mailing list. See http://nightly.buildroot.org/manual.html#submitting-patches for more information.
Comment 4 Thomas Petazzoni 2018-11-02 10:59:05 UTC
Yegor, it seems like the person who submitted this bug never submitted a proper patch to the mailing list. Could you take care of submitting such a patch, so that we can close this bug ? Thanks a lot!
Comment 5 Thomas Petazzoni 2018-11-02 20:37:23 UTC
Fixed by https://git.buildroot.org/buildroot/commit/?id=fd29797f659c09cbc2aeba33f8d6f5b992e65cd4. Thanks Yegor!