How to fix/patch hardcoded values

Mathieu Arnold mat at freebsd.org
Tue Dec 29 08:07:38 UTC 2020


On Sun, Dec 27, 2020 at 09:58:13PM +0000, Nuno Teixeira wrote:
> Hello I've just submited a new port net/gitup
> <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=252220> and I used a
> simple workaround to help program find its config in /usr/local/etc instead
> of (hardcoded) ./
> 
> --- gitup.c.orig 2020-12-27 21:16:22 UTC
> +++ gitup.c
> @@ -2030,7 +2030,7 @@ main(int argc, char **argv)
> ...
> - const char         *configuration_file = "./gitup.conf";
> + const char         *configuration_file = "/usr/local/etc/gitup.conf";
> 
> Now I'm thinking that this might not be the best fix in case PREFIX is a
> different one.
> 
> Could I have an opinion on this?

You need to change the patch to use %%PREFIX%% or %%LOCALBASE%%
depending on whether this is a reference to a path/file installed by the
software or by one of its dependency.  Then, in a post-patch target, you
need to use REINPLACE_CMD to replace those to by they variables
equivalent, something like:

post-patch:
	${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX}' ${WRKSRC}/githup.c

-- 
Mathieu Arnold
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20201229/8001ca65/attachment.sig>


More information about the freebsd-ports mailing list