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