[86151] trunk/dports/audio/liblo/Portfile
Ryan Schmidt
ryandesign at macports.org
Wed Oct 19 21:41:19 PDT 2011
On Oct 19, 2011, at 23:17, Jeremy Lavergne wrote:
>> liblo: rewrite master_sites to avoid redirects
>
> As you may have guessed, no one else if even looking for these.
Joshua is doing them too sometimes. But now he's rather busy with licenses and other buildbot errors; rewriting master_sites is a small optimization at best and so isn't really that important probably. I just do them when I notice them.
> I think it might be to our benefit to post such things to lint, if possible. Obviously, not just this master_sites issue.
> Let me know if you want what you're doing added to lint (rather familiar with it now). I've also been drinking a bit. :-) a bit much. but really, this is the sort of thing link warning (not error) would be perfect for.
I'm hesitant, because "lint" is usually defined as a function that checks the syntax of a file.
http://en.wikipedia.org/wiki/Lint_(software)
I wouldn't really want "lint" to go and open network connections to see if there's an HTTP redirect.
I suppose you could check if a master_sites entry is written as "sourceforge" or "sourceforge:name" or "sourceforge:name:tag" and warn in that case. Most sourceforge projects store their files in directories on the server, and so these constructs would be non-optimal and cause a redirect, and the should be rewritten as "sourceforge:project/some/path/..." The test would probably be "starts with 'sourceforge' and doesn't contain a slash". But there are some ports for which that's not actually an error; some (very small number, I think) of projects actually do store their files in a flat structure. But even for those they could use expanded "project/" form sed to avoid the warning.
Here's an excerpt from my ~/.bashrc I'm using:
port() {
unset PORT
if [ -z "$2" ]; then
if [ -f "$PWD/Portfile" ]; then
PORT=$(basename "$PWD")
fi
else
PORT="$2"
fi
case "$1" in
distfix)
DL="$(command port distfiles ${PORT} | awk '/downloads.sourceforge.net/ {print $1}')"
if [ -z "$DL" ]; then return; fi
DL2="$(curl -s -I -L "$DL" | awk '/^Location:/ {print $2}' | tail -n 1)"
if [ -z "$DL2" ]; then return; fi
V="$(port info --version --line ${PORT})"
B="$(echo "$V" | cut -d . -f 1-2)"
P="$(dirname "$(echo $DL2 | cut -d / -f 4-)" | sed -E -e "s,$V,\${version}," -e "s,$B,\${branch},")"
echo sourceforge:$P
;;
esac
}
More information about the macports-dev
mailing list