post-patch vs. pre-configure
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
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
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.