CTF bsd.pbi.mk

Kris Moore kris at pcbsd.org
Thu Nov 3 20:08:11 UTC 2011


Since we are so close to 9.0, I wanted to get some initial public
testing on the "make pbi" functionality of the ports tree. Attached is
the bsd.pbi.mk file, put that into /usr/ports/Mk/ and then edit
/usr/ports/Mk/bsd.port.mk. Look for the line:

.include "${PORTSDIR}/Mk/bsd.perl.mk

and add above it:

.include "${PORTSDIR}/Mk/bsd.pbi.mk"

After doing this, you should be able to use the commands "make pbi" &
"make clean-pbi". I would suggest starting on some small CLI app for
testing, like cabextract, instead of trying libreoffice on the first go ;)

After the build is finished, you will end up with a pbi file in the port
directory ready to be installed with pbi_add. You'll also see a pbi/
directory created in your ports dir, which contains the structure for
additional meta-data that I would love to find a way to integrate into
the ports tree down the road, such as mime/desktop/menu/icons, etc.

-- 
Kris Moore
PC-BSD Software
iXsystems

-------------- next part --------------
# $Id$
#
# Creates a PBI file from a port with just 'make pbi'
#
#

_PBIMAKEPORT=	pbi_makeport
_PBICREATE=	pbi_create
_PBIDIR=	pbi
_PBICONF=	${_PBIDIR}/pbi.conf
_PBIBUILDDIR=	/usr/local/pbi/${PORTNAME}-${ARCH}

.PHONY: check-pbimanager pbi pbi-makeport pbi-generate pbi-create \
	clean-pbi clean-pbibuild

_PBIMANAGER_PKG!=which pbi_info || ${TRUE}

check-pbimanager:
.if empty(_PBIMANAGER_PKG)
	@(cd ${PORTSDIR}/ports-mgmt/pbi-manager && ${MAKE} install clean)
.endif

pbi: pbi-generate

pbi-generate: check-pbimanager
	@if [ ! -d ${PWD}/pbi ]; then					\
		${ECHO_MSG} "===> Generating PBI for ${PORTNAME}";	\
		${MKDIR} ${_PBIDIR};					\
		${MKDIR} ${_PBIDIR}/resources ${_PBIDIR}/scripts 	\
			${_PBIDIR}/xdg-desktop ${_PBIDIR}/xdg-menu 	\
			${_PBIDIR}/xgd-mime;				\
		${ECHO_CMD} "PBI_PROGNAME=\"${PORTNAME}\"" > ${_PBICONF};\
		${ECHO_CMD} "PBI_MAKEPORT=\"`echo ${PWD} | cut -d '/' -f4-`\"" >> ${_PBICONF};\
		PROGWEB=`cat ${DESCR} | awk '/^WWW:/ { print $$2; }'`;	\
		${ECHO_CMD} "PBI_PROGWEB=\"$${PROGWEB}\"" >> ${_PBICONF};\
		${ECHO_CMD} "PBI_PROGAUTHOR=\"The ${PORTNAME} team\""	\
			 >> ${_PBICONF};				\
		${ECHO_CMD} "PBI_UPDATEURL=\"http://update.pbidir.com\""\
			 >> ${_PBICONF};				\
		${ECHO_CMD} "export PBI_PROGNAME PBI_MAKEPORT "		\
			"PBI_PROGWEB " 					\
			"PBI_PROGAUTHOR PBI_UPDATEURL "	\
			"PBI_MKPORTBEFORE PBI_MKPORTAFTER PBI_MAKEOPTS"	\
			 >> ${_PBICONF};				\
	fi
	@${ECHO_MSG} "==> Generating PBI file"
	@${_PBIMAKEPORT} -c `echo ${PWD}/${_PBIDIR}` -o `echo ${PWD}` `echo ${PWD} | cut -d '/' -f4-`

clean-pbi:
	@${ECHO_MSG} "===> Cleaning PBI for ${PORTNAME}"
	@${RM} -rf ${_PBIDIR}


More information about the freebsd-desktop mailing list