Is staging a port really this simple?

Michael Gmelin freebsd at grem.de
Sun May 25 09:04:59 UTC 2014


On Sun, 25 May 2014 04:14:42 -0400
Fbsd8 <fbsd8 at a1poweruser.com> wrote:

> Perry Hutchison wrote:
> > Some months ago, Baptiste Daroussin <bapt at freebsd.org> wrote:
> > 
> >> ... if you need any help staging your ports I can provide reviews.
> > 
> > I have a couple of ports that need staging support added, and I've
> > finally managed to find time to look into it.  Having read such
> > documentation as I could easily find using Google, and looked at
> > the ports, I am feeling as if I must have overlooked something
> > -- because the only changes that seem to be needed are to insert
> > ${STAGEDIR} into a few lines in the Makefiles.
> > 
> > Granted these are not complex ports, but if it really is this easy
> > I have to wonder what all the uproar has been about :)
> > 
> > What-all have I missed?
> > 
> > --- misc/gtkfind/Makefile
> > +++ misc/gtkfind/Makefile-staged
> > @@ -26,7 +26,7 @@
> >  	${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
> > @@ -19,7 +19,6 @@
> >  MAKEFILE=	/usr/share/mk/bsd.prog.mk
> >  MAKE_ARGS=	PROG=diskcheckd MAN8=${MAN8}
> >  
> > -NO_STAGE=	yes
> >  do-extract:
> >  	@${MKDIR} ${WRKSRC}
> >  .for f in diskcheckd.c diskcheckd.8
> > @@ -30,13 +29,14 @@
> >  	@${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
> > +	@[ -f ${STAGEDIR}${PREFIX}/etc/diskcheckd.conf ] \
> > +		|| ${CP} -p
> > ${STAGEDIR}${PREFIX}/etc/diskcheckd.conf.sample \
> > +			${STAGEDIR}${PREFIX}/etc/diskcheckd.conf
> >  
> >  .include <bsd.port.mk>
> 
> 
> 
> Other things to do is "pkg install portlint porttools"
> then from the ports tree location do
> portlint -a
> port test
> make stage
> make check-plist

make check-orphans
make stage-qa

> make install clean
> make deinstall
> 







-- 
Michael Gmelin


More information about the freebsd-ports mailing list