Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 02 Jul 2014 08:49:54 +1000
From:      Kubilay Kocak <koobs@FreeBSD.org>
To:        CeDeROM <cederom@tlen.pl>, freebsd-ports <freebsd-ports@freebsd.org>,  freebsd-hackers@freebsd.org
Subject:   Re: port - python dependencies and github master
Message-ID:  <53B33B12.8030005@FreeBSD.org>
In-Reply-To: <CAFYkXjkb2UsKHb3=uFz4yZBHG7GDK7QrnJA2dfm4_jn_S5coZg@mail.gmail.com>
References:  <CAFYkXjkb2UsKHb3=uFz4yZBHG7GDK7QrnJA2dfm4_jn_S5coZg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53B33B12.8030005>