Skip to content

Fix PulseAudio backend not working by updating SoundCard dep#108

Open
renyuneyun wants to merge 1 commit into
rbn42:stablefrom
renyuneyun:fix/pulseaudio
Open

Fix PulseAudio backend not working by updating SoundCard dep#108
renyuneyun wants to merge 1 commit into
rbn42:stablefrom
renyuneyun:fix/pulseaudio

Conversation

@renyuneyun

Copy link
Copy Markdown

This should fix #107. Though, I'm not sure if this is the best remote version to use.

This is due to a change in Python 3.10.

The key change needed is to use collections.abs.Iteration rather than collections.Iteration.
The way SoundCard fixes this is correct, but it may not be the best. In theory, it may cause backward-compatibility issues for older Python versions. Though the collections.abc module was introduced in version 3.3, which should only cause problems on really old systems.
If really needed, see this SO answer for a better practice.

@gabeklavans

Copy link
Copy Markdown

Considering the repo hasn't had a commit in 2 years, and there are basically no other decent audio visualizer plasmoids (that I can find), I may build and install this PR for my desktop if it works for you xd

@qspidy

qspidy commented May 30, 2023

Copy link
Copy Markdown

As you mentioned "The key change needed is to use collections.abs.Iteration rather than collections.Iteration.", I clone the raw repository rbn42/panon and get submodule as said in README:

git clone https://github.com/rbn42/panon.git
cd panon

# Download SoundCard and hsluv-glsl
git submodule update --init

Then modify ./panon/third_party/SoundCard/soundcard/pulseaudio.py :

...
#The comment part are the lines before modification.
#import collections
import collections.abc
...
#        if isinstance(self.channels, collections.Iterable):
        if isinstance(self.channels, collections.abc.Iterable):
...
#        if isinstance(self.channels, collections.Iterable):
        if isinstance(self.channels, collections.abc.Iterable):
...

Finally build as said in README:

# Build translations (optional)
mkdir build
cd build
cmake ../translations
make install DESTDIR=../plasmoid/contents/locale
cd ..

# To install
kpackagetool5 -t Plasma/Applet --install plasmoid

Done. PulseAudio backend now works for me. Sure there should be a better way to solve the problem, but this is the fastest way.

BTW, my Desktop information:

  • OS: Archlinux
  • Version of Plasma Framework: 5.106.0
  • Python: 3.11.3

Bug is the same as #107

@BBFifield

Copy link
Copy Markdown

I can confirm that this makes the widget work again on OpenSUSE Tumbleweed

@Oguidan

Oguidan commented Aug 5, 2023

Copy link
Copy Markdown

what about we create a new repository base of this one and then publish it? If I do will you support me?

@Oguidan

Oguidan commented Aug 5, 2023

Copy link
Copy Markdown

I have tried, it work also for Ubuntu 23. What do you think about the idea I have given.

@creeloper27

Copy link
Copy Markdown

I have also tried this and it works on Nobara Linux 37 (Fedora 37 Based), would love for this to get merged and a new release to be made so that the plasmoid store version becomes working again as well @rbn42 :D

@creeloper27

creeloper27 commented Aug 29, 2023

Copy link
Copy Markdown

@qspidy You do not need to compile and install from source, if you download the latest version from the plasmoid store and then run sed -i 's/collections.Iterable/collections.abc.Iterable/g' ~/.local/share/plasma/plasmoids/panon/contents/scripts/soundcard/*.py to fix the python files it works as well, I think this is quite a lot faster :P

@creeloper27

creeloper27 commented Aug 29, 2023

Copy link
Copy Markdown

what about we create a new repository base of this one and then publish it? If I do will you support me?

I have just sent an email to Chen-ZZ which is currently beeing followed by rbn42 and asked him if he is able to contact him, we'll see how this goes, it would be nice if we could keep this project here and with the same name.

update: I have also found rbn42's email and sent one to him as well.
update2: I am starting to contact some of the other maintainers as well, I see some have recent activities on github.

@Oguidan

Oguidan commented Sep 4, 2023

Copy link
Copy Markdown

@creeloper27 good idea

@gabeklavans

Copy link
Copy Markdown

Any responses? @creeloper27

@creeloper27

creeloper27 commented Apr 3, 2024

Copy link
Copy Markdown

Any responses? @creeloper27

It's almost been a year and I got back 0 responses unfortunately :/

Meanwhile someone else forked the project and republished with the name panon-fixed, I guess that can be used instead for now.
panon-fixed github repository
panon-fixed KDE Store

@MadMartian

MadMartian commented Feb 24, 2025

Copy link
Copy Markdown

So let me get this straight: the plug-in broke because Python team made a breaking change, moving collections under a different package name, to a minor version upgrade? seriously?

Regardless, correcting the package issue just unveils a new bug due to outdated dependencies. Looks like this project needs dusting off before it can be usable again.

@Oguidan

Oguidan commented Mar 6, 2025

Copy link
Copy Markdown

@MadMartian perhaps the repository owner is dead.

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.

[BUG] Visualization won't show for PulseAudio, due to Python 3.10

7 participants