Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

naming conflict with mono-devel in '/usr/bin/disco' #15

Closed
ZeHipo opened this issue May 5, 2022 · 6 comments
Closed

naming conflict with mono-devel in '/usr/bin/disco' #15

ZeHipo opened this issue May 5, 2022 · 6 comments

Comments

@ZeHipo
Copy link

ZeHipo commented May 5, 2022

when updating mono in ubuntu studio i get the error: Error while installing package: trying to overwrite '/usr/bin/disco', which is also in package discodos 1.0~rc2-2.
i don"t think this is necessarily a discodos issue, but hopefully the authors of both packages could find a solution to this.
cheers

@JOJ0
Copy link
Owner

JOJ0 commented May 5, 2022

Thanks for reporting @ZeHipo. Actually I am not maintaining the Debian package anymore and want to focus on other packaging formats. I am not sure how I would kick it out of Debian atm. Any advice welcome 😃

@ZeHipo
Copy link
Author

ZeHipo commented May 6, 2022

thank you for your reply @JOJ0. my plan is to submit a bug to ubuntu and hope for the best... 🫠

in the end i had to purge discodos like proposed in this thread:
https://bugs.launchpad.net/ubuntu/+source/mono/+bug/1928414

i tried to reinstall discodos via python3 (https://discodos.readthedocs.io/en/latest/CONTRIBUTION.html#macos-or-linux-install-system-wide) but it throws me an error. i'll post the error below but frankly, i believe the main issue is that the mono project has taken the 'disco' command for their web service discovery tool. needless to say i'm devastated. every system without discodos - the geekiest dj tool on the planet is an inferior system.

/usr/lib/python3/dist-packages/setuptools/dist.py:723: UserWarning: Usage of dash-separated 'home-page' will not be supported in future versions. Please use the underscore name 'home_page' instead warnings.warn( ERROR:root:Error parsing Traceback (most recent call last): File "/usr/lib/python3/dist-packages/pbr/core.py", line 96, in pbr attrs = util.cfg_to_args(path, dist.script_args) File "/usr/lib/python3/dist-packages/pbr/util.py", line 272, in cfg_to_args pbr.hooks.setup_hook(config) File "/usr/lib/python3/dist-packages/pbr/hooks/__init__.py", line 25, in setup_hook metadata_config.run() File "/usr/lib/python3/dist-packages/pbr/hooks/base.py", line 27, in run self.hook() File "/usr/lib/python3/dist-packages/pbr/hooks/metadata.py", line 25, in hook self.config['version'] = packaging.get_version( File "/usr/lib/python3/dist-packages/pbr/packaging.py", line 874, in get_version raise Exception("Versioning for this project requires either an sdist" Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository. It's also possible that there is a mismatch between the package name in setup.cfg and the argument given to pbr.version.VersionInfo. Project name discodos was given, but was not able to be found. error in setup command: Error parsing /home/hipo/Setup/discodos/setup.cfg: Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository. It's also possible that there is a mismatch between the package name in setup.cfg and the argument given to pbr.version.VersionInfo. Project name discodos was given, but was not able to be found.

@ZeHipo ZeHipo closed this as completed May 6, 2022
@JOJ0
Copy link
Owner

JOJ0 commented May 6, 2022

@ZeHipo no worries I think I can help. Did you clone the github repo or use the tarball?

@JOJ0
Copy link
Owner

JOJ0 commented May 6, 2022

@ZeHipo I don't have an Ubuntu Studio system around for testing the install as described in the discodos readthedocs page you mentioned. Can you give me some more information:

Which command excatly threw the error you posted?

What is the output of these commands:?
python --version
echo $PATH

I just tried installing systemwide on a current Manjaro (Archlinux-based) system which uses Python 3.10. This is what I did:

$ git clone https://github.com/JOJ0/discodos.git discodos_syswide
$ cd discodos_syswide
$ sudo python3 setup.py install

which tells me that I have another disco command already (since I use DiscoDOS from a virtual python environment). Actually a quite similar situation to yours:

$ which disco
/home/jojo/.pyenv/shims/disco

To make use of the now systemwide installed version of the disco command I just adjusted my path variable via .zshrc or .bashrc:

export PATH=/usr/bin/:$PATH

Now the proper version of disco is found:

$ which disco
/usr/bin/disco

Does that help? But yeah you still won't be able to write /usr/bin/disco on a Debian system obviously since it's used already. In that case the only way I see for you is to install into a virtual python environment as described here: https://discodos.readthedocs.io/en/latest/CONTRIBUTION.html#macos-or-linux-install-to-virtual-environment

I will add a note to the systemwide installation chapter that there is a naming conflict on Debian-based systems and the venv installation should be used instead.

And as mentioned already: I should take care of properly kicking out that very old version of DiscoDOS from Debian/Ubuntu repos. I believe that installing via git clone even is a better way. I don't have resources for maintaining a Debian package. It's quite some work involved. I might consider providing DiscoDOS as a snap or flatpak package once I get to it. In the meantime for those who want to use it on Debian, still the manual python install way is possible and shouldn't be too hard for people wanting to use a command line application. I hope we can figure out why that doesn't work on your system, please help me reproduce the problem. Thanks a ton in advance! :-)

JOJ0 added a commit that referenced this issue May 7, 2022
as reported in #15: dash-separated 'home-page' -> 'home_page'
JOJ0 added a commit that referenced this issue May 7, 2022
about possible naming conflict with package mono-devel.
Was reported in #15.
JOJ0 added a commit that referenced this issue May 7, 2022
in CONTRIBUTION.md to fix possible naming conflict on Debian-based distros as
reported in #15
@JOJ0
Copy link
Owner

JOJ0 commented May 7, 2022

Hi @ZeHipo I got rid of the system-wide install chapter in the docs in favor of describing on how to install into the user's home. Have a look at the updated docs: https://discodos.readthedocs.io/en/latest/CONTRIBUTION.html#macos-or-linux-install-to-user-environment

Also I left a note about a possible issue on Debian-based systems when /usr/local/bin/disco is found before ~/.local/bin/disco and how it could easily be fixed by changing $PATH.

It would be very helpful if you'd try it out on your distro to see whether it works and tell me if anything in the new chapter is not easily understandable or just wrong. My resources are limited and it's not possible for me to test it on a variety of distros. Thanks a lot in advance again! Appreciated!

@ZeHipo
Copy link
Author

ZeHipo commented May 8, 2022

hey, thanks for coming back to this

to clarify, on ubuntu studio discodos comes preinstalled so it is the default disco command.
since i wanted the mono environment for godot engine (which doesn't come with studio) i installed mono-devel via apt. i think most studio users would probably never install mono on their music production systems (pun not intended). so its maybe not even a problem.

the bug started when kde's "discover" package manager found an update for mono-devel which it didn't even list before i installed it, and i clicked on it. i couldn't use apt for anything else after that. it was complicated. but because of that i learned about discodos in the first place. 🤷

after fixing apt i cloned your git repo like in the tutorial. the command after cd-ing into discodos threw the error (python3 setup.py install).

python3 --version
Python 3.10.4

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

i installed pip and venv and did the virtual environment install and discodocs runs and is recognized! i think this solution is pretty awesome. discodos running in it's own special disco shell.

the user environment tutorial didn't work for me unfortunately. at the pip install . -e
it says -e option requires 1 argument and i just couldn't figure it out.

thanks for teaching me that virtual environment thing. python is kinda cool.

JOJ0 added a commit that referenced this issue Oct 29, 2024
as reported in #15: dash-separated 'home-page' -> 'home_page'
JOJ0 added a commit that referenced this issue Oct 29, 2024
about possible naming conflict with package mono-devel.
Was reported in #15.
JOJ0 added a commit that referenced this issue Oct 29, 2024
in CONTRIBUTION.md to fix possible naming conflict on Debian-based distros as
reported in #15
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

No branches or pull requests

2 participants