Git Product home page Git Product logo

Comments (9)

Freso avatar Freso commented on July 24, 2024

I'm thinking this is actually an issue with keyring and/or secretstorage and/or jeepny, just making this issue for tracking it in relation to isrcsubmit.

from musicbrainz-isrcsubmit.

Freso avatar Freso commented on July 24, 2024

Looks like it might be an issue with the fakeroot environment used with makepkg, so actually an Arch Linux specific issue; see https://aur.archlinux.org/cgit/aur.git/commit/?h=nagstamon&id=ba289b96c2cd81bad5f04903beae06cc19c16d72 – but it can't just be disabled like that on the PKGBUILD, since we actually do want keyring available. I think this may need to be filed at https://bugs.archlinux.org/ and I can't seem to find an existing issue for it.

from musicbrainz-isrcsubmit.

Freso avatar Freso commented on July 24, 2024

Reported issue with makepkg for now: https://bugs.archlinux.org/task/59564

from musicbrainz-isrcsubmit.

Xiretza avatar Xiretza commented on July 24, 2024

The ugly error message can be fixed with this: https://gitlab.com/takluyver/jeepney/merge_requests/4

The root cause though is that a "REJECTED EXTERNAL" is returned, not 100% sure why. The best fix would be to stop importing keyring during installation, since merely importing it seems to start up all kinds of backend stuff that's unnecessary and only gets in the way when installing.

from musicbrainz-isrcsubmit.

eli-schwartz avatar eli-schwartz commented on July 24, 2024

How do you fix this ugly message:

$ pip install --user git+https://github.com/JonnyJD/musicbrainz-isrcsubmit
Collecting git+https://github.com/JonnyJD/musicbrainz-isrcsubmit
  Cloning https://github.com/JonnyJD/musicbrainz-isrcsubmit to /tmp/pip-req-build-gb15km0t
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "/tmp/pip-req-build-gb15km0t/isrcsubmit.py", line 47, in <module>
        import discid
    ModuleNotFoundError: No module named 'discid'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/tmp/pip-req-build-gb15km0t/isrcsubmit.py", line 51, in <module>
        from libdiscid.compat import discid
    ModuleNotFoundError: No module named 'libdiscid'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-req-build-gb15km0t/setup.py", line 13, in <module>
        from isrcsubmit import __version__
      File "/tmp/pip-req-build-gb15km0t/isrcsubmit.py", line 55, in <module>
        import discid
    ModuleNotFoundError: No module named 'discid'
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-req-build-gb15km0t/

Importing the whole entire project as a prerequisite to running setup.py seems rather broken to begin with.

from musicbrainz-isrcsubmit.

Xiretza avatar Xiretza commented on July 24, 2024

@eli-schwartz: already reported in #116 I guess, for over 1.5 years now.

from musicbrainz-isrcsubmit.

JonnyJD avatar JonnyJD commented on July 24, 2024

@eli-schwartz
This has nothing to do with this problem.
You need to install "python-discid" as a hard requirement for isrcsubmit.

@Xiretza
No, that ticket was just somebody who expected a Mac installer which installed the dependencies.
Yes, that would be great, but I can't provide that.
And this has nothing to do with the problem mentioned here.

Yes, I basically ignored it because I can't spare much maintenance time currently and python-keyring is usually easy to break, difficult to fix, if I can fix anything on this end at all.

from musicbrainz-isrcsubmit.

eli-schwartz avatar eli-schwartz commented on July 24, 2024

No, the error message is telling you that even to execute setup.py you need to have preinstalled discid, but pip cannot know that discid is required until after it executes setup.py -- which is a logical circularity and a sign of broken programming. Don't import the version from ircsubmit unless ircsubmit is actually suitable to be imported in setup.py, and while you are at it, don't import the version from ircsubmit if merely importing the freaking version causes you to import keyring too.

Your code does not work according to the Python Packaging Authority. Forget about makepkg.

Your code will continue to be invalid according to the Python Packaging Authority, until https://www.python.org/dev/peps/pep-0518/ achieves broad enough acceptance that you can use pyproject.toml to specify that discid needs to be installed by the "pip" tool or other python package management tools, before executing setup.py, and even with pyproject.toml I would argue that the code is still bad even if it is valid, because you have unnecessary frivolous "import keyring" in your setup.py

I'm sorry if you think my attempt to explain to you both the root of your problem and the logical solution, is "rambling" (as per the bugs.archlinux.org ticket). I'll remember next time I have to talk with you, not to bother attempting to provide education. Or just not bother attempting to reach out to community members when they are trying to figure out how to fix makepkg packaging issues.

from musicbrainz-isrcsubmit.

JonnyJD avatar JonnyJD commented on July 24, 2024

This seems to be fixed in python-keyring (or a dependency). I can't reproduce it today.

For the request of improving automatic install of (at least the python) dependencies I opened #121
The "supported" installation methods are still:
http://jonnyjd.github.io/musicbrainz-isrcsubmit/install

from musicbrainz-isrcsubmit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.