[portgroups] Python

Bjarne D Mathiesen macintosh at mathiesen.info
Fri Sep 13 15:28:11 UTC 2019



Bjarne D Mathiesen wrote:
> Richard L. Hamilton wrote:
>> Depending on the results, with some effort, it might be possible to drop some of the intermediate versions. But only if a later suitable (for everything dependent on it) version is possible on every supported OS. And it would mean bumping portfiles, and rebuilding everything depending on dropped versions.  It probably wouldn't be worth the bother, and given all the constraints, might only get rid of a few versions.
>>
> 
> so we've got 2 issues here :
>     - which pythonXY the pyXY-{name} support
>       and whether theese can be brought up to python37
>     - whether any Portfile that demands a pythonXY that isn't python37
>       can be updated to depend on python37 instead
> 
> We'll need some statistict / overview on this matter.
> I'll look into this.

This ;-) nasty ;-) piece of bash scripting will give an oversigt of all
the pyXY-{name} ports and which versions of python they claim to support

I'll post a file on my website, when it has finished running :-)
Finished : https://macports.mathiesen.info/portfiles/python/pyPorts.txt

Optimised/revised script ; runs 9 times faster than the original

--- begin bash script ---
#!/macports/bin/bash

declare -a pyVersions=( 26 27 32 33 34 35 36 37 )
declare -a pyPorts=( $( port -q search --name py- \
                     | sed -E -e '/^py-/!d' ) )

maxLetters=$( \
    for (( i=0 ; i<${#pyPorts[@]} ; i++ ))
    do
        echo ${#pyPorts[${i}]}
    done | sort -u -n | tail -1 )
(( maxLetters+=5 ))

for pyPort in ${pyPorts[@]}
do
    printf "%-${maxLetters}s" ${pyPort}
    subPorts=$( port info --subports --maintainer ${pyPort} )
    for V in ${pyVersions[@]}
    do
        subCount=$( echo "${subPorts}" | fgrep -c "${V}" )
        if [[ "${subCount}" -eq 0 ]]
        then
            echo -n "   "
        else
            echo -n "${V} "
        fi
    done
    echo $( echo ${subPorts} \
         | sed -E -e 's/^.*://' -e 's/.* ([^ ]*\@[^ ,]*).*$/\1/'  )
done
--- end bash script ---

-- 
Bjarne D Mathiesen
Korsør ; Danmark ; Europa
----------------------------------------------------------------------
denne besked er skrevet i et (næsten) M$-frit miljø
MacOS X 10.13.6 High Sierra :
   17" 2011 MacBook Pro ; 2.8GHz Intel Core i7 ; 16GB 1067MHz DDR3
   2012 Mac Pro ; 2 x 3.46GHz 6-Core Xeon ; 48GB
MacOS X 10.6.8 Snow Leopard :
   Mac Mini ; 2GHz Core 2 Duo (64 bit) ; 4GB (3GB actual) 667MHz
   Mac Mini ; 1.83GHz Core Duo (32 bit) ; 2GB 667Mhz



More information about the macports-users mailing list