Is staging a port really this simple?

Baptiste Daroussin bapt at freebsd.org
Tue May 27 06:47:09 UTC 2014


On Mon, May 26, 2014 at 08:37:13PM -0700, Perry Hutchison wrote:
> John Marino <freebsd.contact at marino.st> wrote:
> > You didn't miss much -- except adding the man page to the
> > pkg-plist and removing the MAN* definitions from the makefile.
> 
> ...
> 
> > On 5/25/2014 09:09, Zsolt Udvari wrote:
> > > Your condition is unneeded.
> > > You don't need check the existence of
> > > ${STAGEDIR}${PREFIX}/etc/distcheckd.conf because you'll copy it, the
> > > ${STAGEDIR} are empty!!!!
> >
> > no, the @sample keyword in pkg-plist does that (replacing other lines
> > there).  pkg doesn't do this by itself, it needs to be told.
> 
> So, like this? (diffs against the originals, not the previous iteration)
> [and I don't follow how, or if, @sample should be used in diskcheckd
> since it delivers the sample named as such, and also installs it as
> the live config file if the live config file does not already exist]
> 
> --- misc/gtkfind/Makefile
> +++ misc/gtkfind/Makefile-staged
> @@ -18,15 +18,13 @@
>  USE_GNOME=	gtk12
>  GNU_CONFIGURE=	yes
>  
> -MAN1=		gtkfind.1
> -PLIST_FILES=	bin/gtkfind
> +PLIST_FILES=	bin/gtkfind man/man1/gtkfind.1
Manpages are automatically compressed so you are missing .gz here
>  
> -NO_STAGE=	yes
>  post-patch:
>  	${REINPLACE_CMD} -e "s,-O2,${CFLAGS}," ${WRKSRC}/configure ${WRKSRC}/Makefile.in
>  
>  do-install:
> -	${INSTALL_PROGRAM} ${WRKSRC}/gtkfind ${PREFIX}/bin
> -	${INSTALL_MAN} ${WRKSRC}/gtkfind.1 ${MANPREFIX}/man/man1
> +	${INSTALL_PROGRAM} ${WRKSRC}/gtkfind ${STAGEDIR}${PREFIX}/bin
> +	${INSTALL_MAN} ${WRKSRC}/gtkfind.1 ${STAGEDIR}${MANPREFIX}/man/man1
>  
>  .include <bsd.port.mk>
> --- sysutils/diskcheckd/Makefile
> +++ sysutils/diskcheckd/Makefile-staged
> @@ -11,15 +11,13 @@
>  MAINTAINER=	perryh at pluto.rain.com
>  COMMENT=	Daemon to check for disk read errors
>  
> -MAN8=		diskcheckd.8
>  MLINKS=		diskcheckd.8 diskcheckd.conf.5
>  
>  USE_RC_SUBR=	diskcheckd
>  CFLAGS+=	-D_PATH_CONF='\"${PREFIX}/etc/diskcheckd.conf\"'
>  MAKEFILE=	/usr/share/mk/bsd.prog.mk
> -MAKE_ARGS=	PROG=diskcheckd MAN8=${MAN8}
> +MAKE_ARGS=	PROG=diskcheckd MAN8=diskcheckd.8
>  
> -NO_STAGE=	yes
>  do-extract:
>  	@${MKDIR} ${WRKSRC}
>  .for f in diskcheckd.c diskcheckd.8
> @@ -30,13 +28,13 @@
>  	@${REINPLACE_CMD} -e 's|/usr/local/etc/diskcheckd.conf|${PREFIX}/etc/diskcheckd.conf|g' ${WRKSRC}/diskcheckd.8
>  
>  do-install:
> -	${INSTALL_PROGRAM} ${WRKSRC}/diskcheckd ${PREFIX}/sbin
> -	${INSTALL_DATA}	${FILESDIR}/diskcheckd.conf ${PREFIX}/etc/diskcheckd.conf.sample
> -	${INSTALL_MAN} ${WRKSRC}/diskcheckd.8 ${MAN8PREFIX}/man/man8
> +	${INSTALL_PROGRAM} ${WRKSRC}/diskcheckd ${STAGEDIR}${PREFIX}/sbin
> +	${INSTALL_DATA}	${FILESDIR}/diskcheckd.conf \
> +			${STAGEDIR}${PREFIX}/etc/diskcheckd.conf.sample
> +	${INSTALL_MAN} ${WRKSRC}/diskcheckd.8 ${STAGEDIR}${MAN8PREFIX}/man/man8
>  
>  post-install:
> -	@[ -f ${PREFIX}/etc/diskcheckd.conf ] \
> -		|| ${CP} -p ${PREFIX}/etc/diskcheckd.conf.sample \
> -			${PREFIX}/etc/diskcheckd.conf
> +	@${CP} -p ${STAGEDIR}${PREFIX}/etc/diskcheckd.conf.sample \
> +		${STAGEDIR}${PREFIX}/etc/diskcheckd.conf
>  
>  .include <bsd.port.mk>
> --- sysutils/diskcheckd/pkg-plist
> +++ sysutils/diskcheckd/pkg-plist-staged
> @@ -1,4 +1,6 @@
>  sbin/diskcheckd
> +man/man8/diskcheckd.8
> +man/man5/diskcheckd.conf.5
.gz here as well 
>  @unexec if cmp -s %D/etc/diskcheckd.conf.sample %D/etc/diskcheckd.conf; then rm -f %D/etc/diskcheckd.conf; fi
>  etc/diskcheckd.conf.sample
>  @exec if [ ! -f %D/etc/diskcheckd.conf ]; then cp %D/%F %B/diskcheckd.conf; fi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20140527/976257b4/attachment.sig>


More information about the freebsd-ports mailing list