masmu / pulseaudio-dlna

A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux
GNU General Public License v3.0
1.25k stars 161 forks source link

Merge Python3 into Master #389

Open joecksma opened 4 years ago

pkubowicz commented 4 years ago

Please merge this. Python3-based code (I checked out joecksma:python3 branch) is the only way I can use pulseaudio-dlna on my Kubuntu 19.10.

Ubuntu provides version 0.5.3+git20170406-1, which seems to be the current master. It fails to start:

Traceback (most recent call last):
  File "/usr/bin/pulseaudio-dlna", line 11, in <module>
    load_entry_point('pulseaudio-dlna==0.5.2', 'console_scripts', 'pulseaudio-dlna')()
  File "/usr/lib/python2.7/dist-packages/pulseaudio_dlna/__main__.py", line 157, in main
    import pulseaudio_dlna.application
  File "/usr/lib/python2.7/dist-packages/pulseaudio_dlna/application.py", line 30, in <module>
    import pulseaudio_dlna.holder
  File "/usr/lib/python2.7/dist-packages/pulseaudio_dlna/holder.py", line 22, in <module>
    import requests
  File "/home/pkubowicz/.local/lib/python2.7/site-packages/requests/__init__.py", line 95, in <module>
    from urllib3.contrib import pyopenssl
  File "/home/pkubowicz/.local/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 46, in <module>
    import OpenSSL.SSL
  File "/usr/local/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/usr/local/lib/python2.7/dist-packages/OpenSSL/crypto.py", line 12, in <module>
    from cryptography import x509
  File "/usr/local/lib/python2.7/dist-packages/cryptography/x509/__init__.py", line 8, in <module>
    from cryptography.x509.base import (
  File "/usr/local/lib/python2.7/dist-packages/cryptography/x509/base.py", line 18, in <module>
    from cryptography.x509.extensions import Extension, ExtensionType
  File "/usr/local/lib/python2.7/dist-packages/cryptography/x509/extensions.py", line 26, in <module>
    from cryptography.x509.general_name import GeneralName, IPAddress, OtherName
  File "/usr/local/lib/python2.7/dist-packages/cryptography/x509/general_name.py", line 16, in <module>
    from cryptography.x509.name import Name
  File "/usr/local/lib/python2.7/dist-packages/cryptography/x509/name.py", line 28, in <module>
    _ASN1_TYPE_TO_ENUM = dict((i.value, i) for i in _ASN1Type)
TypeError: 'type' object is not iterable

All advice like pip install enum34 don't work for me.

antgel commented 4 years ago

Given that @masmu seems to be inactive since February 2019, and there is still interest in the project, anybody got any ideas about how to move it forward? My PR #389 is based on the python3 branch, feel free to grab the commit if you like. I just want to see a new release that works with Python 3 (and my fix).

polyzen commented 4 years ago

If capable, trustworthy Python developers and @masmu were interested, he could add them as maintainers, and also perhaps move this project to a pulseaudio-dlna org.

pkubowicz commented 4 years ago

This project is dead and there will be no answer.

My advice: create an organization, call it pulseaudio-dlna3 (to be different) and release a Python3-based version. If masmu answers, add him to your organisation, but don't wait for him.

I did a similar 'takeover' creating https://github.com/pkubowicz/opendetex after the original maintainer failed to respond for several months. He did not feel offended, after some time he wrote to me saying I did nothing wrong. Now my package is used in some Linux distributions and I didn't even have to do anything.

It's important to create such a fork because more and more distros are moving away from Python 2. AFAIK now these are recent stable releases of Fedora and Ubuntu.

polyzen commented 4 years ago

pulseaudio-dlna-community may be a better org name.

antgel commented 4 years ago

pulseaudio-dlna-community may be a better org name.

Bit long, it's clear that it's a community / org by virtue of being on the left of the slash. :man_shrugging:

polyzen commented 4 years ago

Long, yes, but -community is commonly appended to orgs that resulted from forks as opposed to being created by the original author. Python will probably move on from 3.x, so appending 3 doesn't feel right.

masmu commented 4 years ago

Not entirely dead. I just don't have the time to fully support this anymore. There is for example a branch which drastically refactored the pulseaudio module and implemented full support for multi audio channels (5.x, 6.x 7.x systems). It's more than a year old, but I didn't release it because it still had some issues and I knew once it being released all people having problems with it would go ballistic in the issues section.

In order to continue with this project properly I would need people to take over the active development and support. So, that I can chip in my 2 cents from time to time and even here and there maybe add a PR. But my times of active development are over for the foreseeable future and therefore I probably should have done this much earlier.

So, volunteers step forward.

klaernie commented 4 years ago

@masmu would you consider moving the project to a github org?

masmu commented 4 years ago

@klaernie Yes I could. But having a look into the past, there was always the problem of too little people contributing to this project.

simonfelding commented 3 years ago

@masmu So could you do it though? I would like to contribute a little patch but it's really demotivating that the master branch hasn't been updated for so long. I completely understand why you don't want to be flooded with confused and angry users in the issues section. Maybe it's time to hand it off to an org if you feel that way about updating it? It would be nice if appreciative users had some sort of outlet, I'm sure there are LOTS! :)

satmandu commented 3 years ago

Not entirely dead. I just don't have the time to fully support this anymore. There is for example a branch which drastically refactored the pulseaudio module and implemented full support for multi audio channels (5.x, 6.x 7.x systems). It's more than a year old, but I didn't release it because it still had some issues and I knew once it being released all people having problems with it would go ballistic in the issues section.

In order to continue with this project properly I would need people to take over the active development and support. So, that I can chip in my 2 cents from time to time and even here and there maybe add a PR. But my times of active development are over for the foreseeable future and therefore I probably should have done this much earlier.

So, volunteers step forward.

@masmu would you please upload your work with multi-channel audio so we don't have to duplicate your work in getting that working?