post-patch vs. pre-configure

2011-11-06 Thread Vadim Zhukov
Hello all.

I want to clarify one thing, that is not mentioned in Porting FAQ but
make me (and looks like not only me) curious: post-patch vs.
pre-configure.

As far as I can understand, "patch" targets are intended to operate on
WRKSRC and "configure" - on WRKBUILD, unless source package is broken
and does not work well when SEPARATE_BUILD!=No. In the later case
pre-confiugre is effectively almost the same as post-patch, until you
start playing with build cookies.

But I see patch-like adjustments in ports, including fresh ones, being
run in pre-configure. What's the point there? Some examples:

devel/sdl/Makefile:
pre-configure:
   mkdir -p ${WRKSRC}/src/audio/libsndio
   cp ${FILESDIR}/SDL_libsndioaudio.{c,h} ${WRKSRC}/src/audio/libsndio

net/samba/Makefile:
pre-configure:
   @${SUBST_CMD} ${SAMBA_MANPAGES}/swat.8

Those actions are not FLAVOR-specific, and they should be done once -
while you can try to build software many times (with different
FLAVORs, for example, or just wiping out build directory with "make
clean=build").

Even more, if you're building one FLAVOR of devel/sdl and start
building a new one, you can hit in a race because cp(1) does not
operate atomically, aren't you?

Am I missing something? I'm using post-patch for such cases, but maybe
its wrong for some reasons?
--
  WBR,
  Vadim Zhukov



Re: post-patch vs. pre-configure

2011-11-06 Thread Marc Espie
On Mon, Nov 07, 2011 at 03:46:03AM +0300, Vadim Zhukov wrote:
> Hello all.
> 
> I want to clarify one thing, that is not mentioned in Porting FAQ but
> make me (and looks like not only me) curious: post-patch vs.
> pre-configure.
> 
> As far as I can understand, "patch" targets are intended to operate on
> WRKSRC and "configure" - on WRKBUILD, unless source package is broken
> and does not work well when SEPARATE_BUILD!=No. In the later case
> pre-confiugre is effectively almost the same as post-patch, until you
> start playing with build cookies.
> 
> But I see patch-like adjustments in ports, including fresh ones, being
> run in pre-configure. What's the point there? Some examples:
> 
> devel/sdl/Makefile:
> pre-configure:
>mkdir -p ${WRKSRC}/src/audio/libsndio
>cp ${FILESDIR}/SDL_libsndioaudio.{c,h} ${WRKSRC}/src/audio/libsndio
> 
> net/samba/Makefile:
> pre-configure:
>@${SUBST_CMD} ${SAMBA_MANPAGES}/swat.8
> 
> Those actions are not FLAVOR-specific, and they should be done once -
> while you can try to build software many times (with different
> FLAVORs, for example, or just wiping out build directory with "make
> clean=build").
> 
> Even more, if you're building one FLAVOR of devel/sdl and start
> building a new one, you can hit in a race because cp(1) does not
> operate atomically, aren't you?
> 
> Am I missing something? I'm using post-patch for such cases, but maybe
> its wrong for some reasons?

The only case where it really matters is when you have something module-specific
happening in post-patch or pre-configure.

Most important is autoconf stuff running at the end of post-patch



Re: post-patch vs. pre-configure

2011-11-07 Thread Stuart Henderson
On 2011-11-07, Vadim Zhukov  wrote:
> But I see patch-like adjustments in ports, including fresh ones, being
> run in pre-configure. What's the point there? Some examples:

One reason is so you can "make patch" and then "make update-patches"
without pulling in a load of automated substitutions for LOCALBASE/
SYSCONFDIR, etc., which you then have to un-apply.