Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 09 Dec 2012 18:53:03 -0500
From:      "Jason E. Hale" <jhale@freebsd.org>
To:        Diane Bruce <db@freebsd.org>
Cc:        svn-ports-head@freebsd.org, svn-ports-all@freebsd.org, ports-committers@freebsd.org
Subject:   Re: svn commit: r308561 - in head/comms/gnuradio: . files
Message-ID:  <1411961.lMF0z6U7RY@mocha.verizon.net>
In-Reply-To: <201212092019.qB9KJfsr022686@svn.freebsd.org>
References:  <201212092019.qB9KJfsr022686@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday, December 09, 2012 20:19:41 Diane Bruce wrote:
> Author: db
> Date: Sun Dec  9 20:19:41 2012
> New Revision: 308561
> URL: http://svnweb.freebsd.org/changeset/ports/308561
> 
> Log:
>   - Update to 3.6.2
>   - Needs the usrp port
> 
>   Tested by:	lrk@ovillatx.sytes.net
> 
> Modified: head/comms/gnuradio/Makefile
> ============================================================================
> == --- head/comms/gnuradio/Makefile	Sun Dec  9 20:00:19 2012	(r308560) 
+++
> head/comms/gnuradio/Makefile	Sun Dec  9 20:19:41 2012	(r308561) @@ 
-1,55
> +1,46 @@
>  # $FreeBSD$
> 
>  PORTNAME=	gnuradio
> -PORTVERSION=	3.2.2
> -PORTREVISION=	4
> +PORTVERSION=	3.6.2
>  CATEGORIES=	comms astro hamradio
> -MASTER_SITES=	${MASTER_SITE_GNU}
> -MASTER_SITE_SUBDIR=	gnuradio
> -DIST_SUBDIR=	${PORTNAME}
> +MASTER_SITES=	http://gnuradio.org/releases/gnuradio/
> 
>  MAINTAINER=	db@FreeBSD.org
>  COMMENT=	Amateur Radio Software defined radio
> 
> -BUILD_DEPENDS=	sdcc>=3.0.0:${PORTSDIR}/lang/sdcc \
> -		sdl-config:${PORTSDIR}/devel/sdl12 \
> -		swig:${PORTSDIR}/devel/swig13 \
> -		cppunit-config:${PORTSDIR}/devel/cppunit \
> -		${LOCALBASE}/bin/cheetah:${PORTSDIR}/devel/py-cheetah \
> -		py*-lxml>=0:${PORTSDIR}/devel/py-lxml \
> -		${PYTHON_SITELIBDIR}/pygtk.py:${PORTSDIR}/x11-toolkits/py-gtk2 \
> -		xdg-open:${PORTSDIR}/devel/xdg-utils \
> -		guile:${PORTSDIR}/lang/guile
> -LIB_DEPENDS=	fftw3:${PORTSDIR}/math/fftw3 \
> -		fftw3f:${PORTSDIR}/math/fftw3-float \
> +BUILD_DEPENDS=	sdl-config:${PORTSDIR}/devel/sdl12\
> +		swig:${PORTSDIR}/devel/swig13\
> +		cheetah:${PORTSDIR}/devel/py-cheetah\
> +		${LOCALBASE}/lib/portaudio2/libportaudio.so:
${PORTSDIR}/audio/portaudio2
> \ +		py*-lxml>=0:${PORTSDIR}/devel/py-lxml\
> +		${PYTHON_SITELIBDIR}/pygtk.py:${PORTSDIR}/x11-toolkits/py-gtk2\
> +		${PYTHON_SITELIBDIR}/PyQt4/Qt.py:${PORTSDIR}/devel/py-qt4\
> +		xdg-open:${PORTSDIR}/devel/xdg-utils\
> +		guile:${PORTSDIR}/lang/guile\
> +		git:${PORTSDIR}/devel/git\
> +		jackd:${PORTSDIR}/audio/jack\
> +		aserver:${PORTSDIR}/audio/alsa-lib
> +LIB_DEPENDS=	fftw3:${PORTSDIR}/math/fftw3\
> +		fftw3f:${PORTSDIR}/math/fftw3-float\
> +		qwt:${PORTSDIR}/x11-toolkits/qwt5 \
>  		boost_python:${PORTSDIR}/devel/boost-python-libs \
>  		gsl:${PORTSDIR}/math/gsl
>  RUN_DEPENDS=	${PYNUMPY} \
> -		${PYTHON_SITELIBDIR}/ephem/__init__.py:${PORTSDIR}/astro/pyephem
> +		${PYTHON_SITELIBDIR}/ephem/__init__.py:${PORTSDIR}/astro/pyephem\
> +		${PYTHON_SITELIBDIR}/PyQt4/Qt.py:${PORTSDIR}/devel/py-qt4
> 
> -USE_GMAKE=	yes
> -USE_PYTHON=	2.5+

It seems like there should be a USE_PKGCONFIG=build in here somewhere.

> +USE_CMAKE=	yes
> +CMAKE_VERBOSE=	yes
> +CMAKE_OUTSOURCE=	yes
> +DOCSDIR=	share/doc/${PORTNAME}-${PORTVERSION}
> +#CMAKE_ARGS=	--debug-output --trace
> +CMAKE_ARGS=+	--debug-output
> +USE_PYTHON=	2.7+
>  USE_WX=		2.6+
> +USE_QT4=	gui xml qmake moc rcc uic

qmake, moc, rcc, and uic are only used for build.  They should be suffixed 
with _build

>  WX_COMPS=	wx wx:build wx:run python:build python:run
>  USE_PERL5=	yes
> -USE_AUTOTOOLS=	autoconf libtool
>  USE_LDCONFIG=	yes
> -GNU_CONFIGURE=	yes
> -CPPFLAGS+=	-I${LOCALBASE}/include
> -LDFLAGS+=	-L${LOCALBASE}/lib
> -
> -CONFIGURE_ARGS=	--with-boost-include-dir="${LOCALBASE}/include/" \
> -		--enable-grc \
> -		--enable-usrp \
> -		--enable-gr-usrp \
> -		--disable-gr-audio-jack \
> -		--disable-gr-audio-portaudio \
> -		--enable-gr-audio-oss \
> -		--enable-gr-wxgui \
> -		--enable-gnuradio-examples \
> -		--disable-doxygen \
> -		--disable-html-docs \
> -		--disable-latex-docs
> 
>  .include <bsd.port.pre.mk>
> 
> @@ -57,42 +48,58 @@ CONFIGURE_ARGS=	--with-boost-include-dir
>  LIB_DEPENDS+=	usb:${PORTSDIR}/devel/libusb
>  .endif
> 
> -AUTOTOOLSFILES=	${ACLOCAL}
> -
>  PLIST_SUB+=	PORTVERSION=${PORTVERSION}
> 
> +OPTIONS_DEFINE=		USRP TESTING
> +OPTIONS_DEFAULT=	USRP
> +USRP_DESC=	Include USRP support (UHD) from Ettus
> +TESTING_DESC=	Include testing support
> +
> +.include <bsd.port.options.mk>
> +
> +.if ${PORT_OPTIONS:MDOCS}

This option would be better called DOXYGEN and add it to OPTIONS_DEFINE, but 
not OPTIONS_DEFAULT.  I would think most users do not want doxygen 
documentation and since DOCS is always default, it pulls in doxygen and 
generates a massive about of documentation which grows the size of the default 
package significantly.

> +BUILD_DEPENDS+=	doxygen:${PORTSDIR}/devel/doxygen \
> +		${LOCALBASE}/bin/sphinx-apidoc:${PORTSDIR}/textproc/py-sphinx \
> +		dot:${PORTSDIR}/graphics/graphviz \
> +		xmlto:${PORTSDIR}/textproc/xmlto \
> +		${LOCALBASE}/lib/X11/fonts/freefont-ttf/fonts.scale:
${PORTSDIR}/x11-fonts
> /freefont-ttf \ +		latex:${PORTSDIR}/print/teTeX
> +CMAKE_ARGS+=	-DENABLE_DOXYGEN:STRING="ON"
> +HAVE_PORTDOCS=	YES

See note further down.

> +.else
> +CMAKE_ARGS+=	-DENABLE_DOXYGEN:STRING="OFF"
> +.endif
> +
> +.if ${PORT_OPTIONS:MUSRP}
> +CMAKE_ARGS+=	-DENABLE_GR_UHD:STRING="ON"
> +BUILD_DEPENDS+=	${LOCALBASE}/include/uhd/config.hpp:
${PORTSDIR}/comms/usrp
> +PLIST_SUB+=	UHD=""
> +.else
> +CMAKE_ARGS+=	-DENABLE_GR_UHD:STRING="OFF"
> +PLIST_SUB+=	UHD="@comment "
> +.endif
> +
> +.if ${PORT_OPTIONS:MTESTING}
> +CMAKE_ARGS+=	-DENABLE_TESTING:STRING="ON"
> +BUILD_DEPENDS+=	cppunit-config:${PORTSDIR}/devel/cppunit
> +.else
> +CMAKE_ARGS+=	-DENABLE_TESTING:STRING="OFF"
> +.endif
> +
>  post-patch:
> -	@${FIND} ${WRKSRC} -type f -name "Makefile.in" | ${XARGS} \
> -		-n 10 ${REINPLACE_CMD} -E -e \
> -		's!^(ACLOCAL|AUTOCONF|AUTOMAKE|AUTOHEADER).+$$!\1=${TRUE}!' \
> -		-e 's|/gnuradio/examples|/examples/gnuradio|'
> -	@${REINPLACE_CMD} -e 's|^GR_FORTRAN||g' ${WRKSRC}/configure.ac
> -	@${REINPLACE_CMD} -e 's|%%LIBDATA%%|${PREFIX}/libdata|' \
> -	    ${WRKSRC}/gnuradio-core/Makefile.in ${WRKSRC}/usrp/Makefile.in \
> -	    ${WRKSRC}/omnithread/Makefile.in ${WRKSRC}/pmt/Makefile.in \
> -	    ${WRKSRC}/gr-usrp/Makefile.in ${WRKSRC}/gr-wxgui/Makefile.in \
> -	    ${WRKSRC}/gruel/Makefile.in ${WRKSRC}/mblock/Makefile.in
> +	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|' \
> +		${WRKSRC}/docs/doxygen/Doxyfile.in
> +
>  pre-install:
> -	@${CP}	${FILESDIR}/wxgui_src_python_init.py \
> -		${WRKSRC}/gr-wxgui/src/python/__init__.py
> +	${MKDIR}		${PREFIX}/include/gruel
> +	${INSTALL_DATA}		${WRKSRC}/gruel/src/include/gruel/*.h \
> +		${PREFIX}/include/gruel
> +
>  post-install:
> -	@${INSTALL_DATA}	${WRKSRC}/gnuradio-core/gnuradio-core.conf \
> -	    ${PREFIX}/etc/gnuradio/gnuradio-core.conf.sample
> -	@${INSTALL_DATA}	${WRKSRC}/gr-audio-oss/gr-audio-oss.conf \
> -	    ${PREFIX}/etc/gnuradio/gr-audio-oss.conf.sample
> -	@${INSTALL_DATA}	${WRKSRC}/gr-wxgui/gr-wxgui.conf \
> -	    ${PREFIX}/etc/gnuradio/gr-wxgui.conf.sample
> -	@${INSTALL_DATA}	${WRKSRC}/grc/grc.conf \
> -	    ${PREFIX}/etc/gnuradio/grc.conf.sample
> -.if	!defined(NOPORTDOCS)
> -	${MKDIR} ${DOCSDIR}
> -	${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
> -	${INSTALL_DATA} ${WRKSRC}/README.hacking ${DOCSDIR}
> +.if	defined(HAVE_PORTDOCS)

Could just use .if ${PORT_OPTIONS:MDOXYGEN} if you follow my suggestion and 
remove the HAVE_PORTDOCS variable.  But honestly, I think this message below 
is only stating the obvious.

>  	@${ECHO} gnuradio docs are in ${DOCSDIR}
>  .endif
> -	@${ECHO} sample conf files are in ${PREFIX}/etc/gnuradio
> -	@${ECHO} These must be copied to ${PREFIX}/etc/gnuradio/conf.d
> -	@${ECHO} without the .sample suffix and edited as needed before use.
> +	@${ECHO} conf files are in ${PREFIX}/etc/gnuradio/conf.d
>  	@${ECHO}
> 
>  .include <bsd.port.post.mk>
> 
> 
> Added: head/comms/gnuradio/files/patch-gr-atsc_CMakeLists.txt
> ============================================================================
> == --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/comms/gnuradio/files/patch-gr-atsc_CMakeLists.txt	Sun Dec  9
> 20:19:41 2012	(r308561) @@ -0,0 +1,11 @@
> +--- gr-atsc/CMakeLists.txt.orig	2012-09-30 11:27:22.000000000 -0500
> ++++ gr-atsc/CMakeLists.txt	2012-09-30 11:27:22.000000000 -0500
> +@@ -99,7 +99,7 @@
> +
> + install(
> +     FILES ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-atsc.pc
> +-    DESTINATION ${GR_LIBRARY_DIR}/pkgconfig
> ++    DESTINATION ${GR_PKGCONFIG_DIR}/pkgconfig
> +     COMPONENT "atsc_devel"
> + )
> +
> 
All of these little patches to fix the pkgconfig path like this one seem a 
little excessive to me.  I think a simple REINPLACE_CMD would be easier to 
manage in the long run since these are unlikely to be fixed upstream.

Also pkg-plist is now enormous due to doxygen documentation.  There are now 
~10000 lines of docs adding about 600KB!  It would be better to automatically 
generate the plist data for these docs since it is bound to change with every 
version and it will trim the pkg-plist size significantly.  Have a look at the 
post-install target in deve/gwenhywfar for an example.

-- 
Jason E. Hale - jhale@
FreeBSD Ports Committer
KDE/FreeBSD Team



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