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

py-dns, lamson: delete ports #3316

Merged
merged 1 commit into from
Jan 3, 2019
Merged

Conversation

chrstphrchvz
Copy link
Contributor

Description

  • Lamson's repository was last updated ~2013, and its homepage was already offline in 2015. There is an actively maintained GPLv3 fork of it, Salmon, which doesn't already have a port. There is a 5-year-old open ticket for this port (missing dependency not in MP): https://trac.macports.org/ticket/40001

  • PyDNS does not appear to be maintained by its developer any longer. It was last updated in 2012 (2.3.6, which MP never adopted), and it does not support Python 3. dnspython seems like the far more popular and actively maintained alternative; but since it's not a drop-in replacement for PyDNS, and the only dependent of py-dns is lamson, I think the port can be removed.

I'm not familiar with deleting ports, so any advice or suggestions are appreciated. I'd be interested in cleaning out more old ports, yet I imagine it might be either more worthwhile or a higher priority to focus on more actively-used/maintained ports.

Also, should Python packages that happen to be named "PyFoo" have their ports consistently named py-pyfoo instead of py-foo? I think doing so is better at preserving/respecting the package's name, and also so that the py- prefix only indicates it's a Python-related port and avoids confusion of whether the package itself is named "Foo" or "PyFoo". I can ask on the dev mailing list unless there's already a consensus. I haven't yet found any examples which are actively maintained though.

@macportsbot
Copy link

Travis Build #4749 Passed.

@pmetzger
Copy link
Member

pmetzger commented Jan 2, 2019

Does anything depend on either of these two? If not, I think we can probably get rid of them, yes.

@mf2k
Copy link
Contributor

mf2k commented Jan 2, 2019

It appears so for py-dns:

$ port echo depends:py27-dns
lamson                          
ligo-lvalert                    
linkchecker                     
mailman                         
py-dns                          
py-dnspython                    
py27-ipwhois                    
py27-libnamebench               
py27-pyxmpp                     
dnsviz                          

$ port echo depends:lamson

@pmetzger
Copy link
Member

pmetzger commented Jan 2, 2019

The fact that there are dependent ports seems like an issue.

@chrstphrchvz
Copy link
Contributor Author

@mf2k I appreciate you checking, I had not used that command, nor was I expecting it to list that many ports after searching portfiles for port:py{python.version}-dns and only finding lamson.

However, since py27-dnspython does not depend on py27-dns, I think port echo depends:py27-dns is outputting dependents of py27-dnspython in addition to py27-dns, as if it's looking for any dependencies containing the string (rather than exactly matching) py27-dns:

$ port echo depends:py27-dns
lamson
ligo-lvalert
linkchecker
mailman
py-dns
py-dnspython
py27-ipwhois
py27-libnamebench
py27-pyxmpp
dnsviz

$ port echo depends:py27-dnspython
ligo-lvalert
linkchecker
mailman
py-dnspython
py27-ipwhois
py27-libnamebench
py27-pyxmpp
dnsviz

$ port info py27-dnsp
Error: Port py27-dnsp not found
$ port echo depends:py27-dnsp
ligo-lvalert
linkchecker
mailman
py-dnspython
py27-ipwhois
py27-libnamebench
py27-pyxmpp
dnsviz

I'm not sure if this is the expected or documented behavior, since the guide has the usage:

$ port echo depends:portname

rather than some sort of depends:pattern.

@tobypeterson
Copy link
Contributor

Regex works, do: port echo depends:py27-dns$

Looks safe to remove both.

@mf2k
Copy link
Contributor

mf2k commented Jan 3, 2019

Interesting, I did not realize that. Thank you both!

@tobypeterson
Copy link
Contributor

tobypeterson commented Jan 3, 2019

Actually, it looks like that'll only match if py27-dns is the last dependency (it is, in this case). So something more like:

port echo 'depends:py27-dns ' or 'depends:py27-dns$'

Would be better if we supported more regex, something like this:

port echo 'depends:py27-dns\W*+'

Still, in this case it looks like lamson and py-dns are alone and ok to remove.

@pmetzger
Copy link
Member

pmetzger commented Jan 3, 2019

Okay, so is it agreed that it's safe to remove both? If so, I'll commit the change soon.

@mf2k
Copy link
Contributor

mf2k commented Jan 3, 2019

@pmetzger: Yes, it is safe to remove them.

@pmetzger pmetzger merged commit ef72a56 into macports:master Jan 3, 2019
@pmetzger
Copy link
Member

pmetzger commented Jan 3, 2019

Merged. Thanks, @chrstphrchvz!

@jmroot
Copy link
Member

jmroot commented Jan 3, 2019

Would be better if we supported more regex, something like this:

port echo 'depends:py27-dns\W*+'

Best way is probably port echo 'depends:\mpy27-dns\M'. That anchors to a single word in Tcl's AREs (\m matches the empty string at the start of a word and \M at the end of a word).

@pmetzger
Copy link
Member

pmetzger commented Jan 4, 2019

@jmroot This is a sufficiently frequently wanted feature (checking if something depends on precisely a particular other port, with nothing else accepted) that perhaps we should have our own way of specifying that in the command without needing a regex anchor.

@chrstphrchvz chrstphrchvz deleted the rm-pydns-lamson branch January 6, 2019 12:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
6 participants