port - python dependencies and github master

Kubilay Kocak koobs at FreeBSD.org
Tue Jul 1 22:50:01 UTC 2014


On 1/07/2014 11:56 PM, CeDeROM wrote:
> Hello there :-)
> 
> I am writing a Makefile to a Python based port that gets the source
> code from GitHub. Two questions:
> 
> 1. How to change PORTVERSION / GH_COMMIT based on user choice /
> option? One value for PORTVERSION seems fine but to change it to
> master does not work..

You very probably don't want to do this. PORTVERSION needs to be static,
in the sense that it can't be conditional.

This is because PORTVERSION plus a few other variables is how the ports
framework derives DISTFILES, who's checksums must remain consistent
unless changed/updated by the maintainer (see distinfo file)

> 2. Is the way to check python modules dependency correct?
> 
> PORTNAME=       cura
> PORTVERSION=    14.06
> #STABLEREL=     14.06
> CATEGORIES=     cad

Add the 'python' category as a secondary category to Python ports

> MAINTAINER=    blah at blah
> COMMENT=        Cura is a complete and open slicing solution for
> RepRap 3D printers.

Don't include the package/software name or indefinite articles (A/An) in
COMMENT. Also strip the trailing full stop (period).

For more detail, see:
http://www2.au.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/book.html#makefile-comment

portlint(8) will also help here.

> 
> OPTIONS_SINGLE= BTYPE
> OPTIONS_SINGLE_BTYPE=   RELEASE DEVEL
> OPTIONS_SUB=    yes
> RELEASE_DESC=   Build latest stable release from github (${PORTVERSION})
> DEVEL_DESC=     Build latest development snapshot from github master
> OPTIONS_DEFAULT=        RELEASE
> 
> .include <bsd.port.options.mk>
> 
> #.if ${PORT_OPTIONS:MRELEASE}
> #PORTVERSION=   ${STABLEREL}
> #.endif
> 
> .if ${PORT_OPTIONS:MDEVEL}
> PORTVERSION=    master
> #STABLEREL=      master
> .endif
> 
> #PORTVERSION=  ${STABLEREL}
> 
> USE_PYTHON=     yes

You at least want USE_PYDISTUTILS=yes here, and maybe
PYDISTUTILS_AUTOPLIST=yes also.

See /usr/ports/Mk/bsd.python.mk for more information.

> RUN_DEPENDS+=

First assignment of {RUN,BUILD}_DEPENDS should be = not +=

> ${PYTHONPREFIX_SITELIBDIR}/OpenGL:${PORTSDIR}/graphics/py-opengl \
>                 ${PYTHONPREFIX_SITELIBDIR}/numpy:${PORTSDIR}/math/py-numpy \
> 
> ${PYTHONPREFIX_SITELIBDIR}/setuptools:${PORTSDIR}/devel/py-setuptools
> \
>                 ${PYTHONPREFIX_SITELIBDIR}/serial:${PORTSDIR}/comms/py-serial
> BUILD_DEPENDS+= git:${PORTSDIR}/devel/git

If you're not depending on a binary (like the git line above), the
simplest way is to depend on the package names. Eg:

${PYTHON_PKGNAMEPREFIX}setuptools>[0|<version>]:${PORTSDIR}/category/<portname>

The following section of the Porters Handbook describes dependencies
very well:

http://www2.au.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/book.html#makefile-depend

portlint(8) is also your friend here, and will tell you about a few
things if you don't get it quite right, first time.

> USE_GITHUB=     yes
> GH_ACCOUNT=     daid
> GH_COMMIT=      ${PORTVERSION}

If you need any porting help, we have a few IRC channels available for you:

1) #freebsd-ports - freenode
2) #freebsd-python - freenode
3) #bsdports - Efnet

--
koobs



More information about the freebsd-ports mailing list