REINPLACE_CMD and symbolic links

I keep running into problems with a frozen in time ports tree under poudriere.

A complete rebuild of this tree became necessary because the jail used to build it had been accidentally updated and was then incompatible with the frozen tree.

The jails was wound back to the version it was supposed to be but still required a full rebuild.

I now keep running into various ports where the Makefile uses ${REINPLACE_CMD} to adjust various files, some of which are now failing because they are symlinks .

e.g.

sed: /wrkdirs/usr/ports/audio/libcanberra-gtk3/work/libcanberra-0.30/src/.libs/libcanberra-gtk3.la: in-place editing only works for regular files

I understand why it says this.

Is there a neat way under a poudriere build to "fix" this generically or am I doomed to adding my own tweaks individually in the "frozen" Makefiles ?
 
A complete rebuild of this tree became necessary because the jail used to build it had been accidentally updated and was then incompatible with the frozen tree.

The jails was wound back to the version it was supposed to be but still required a full rebuild.
If the jail was wound back to the last working version then I don't understand why this happens now and not before? It seems that whatever FreeBSD version is installed in the jail now is one in which sed(1) was patched to have this behavior, where the previous version did not. But let's ignore that. It's probably not important.

There is no magic bullet for this and I think you are very much doomed. The error in audio/libcanberra-gtk3 was fixed in ports r431953. PR 216309 is probably a good starting point for chasing all of these down.

Good luck!
 
Thankyou for your input lebarondemerde but I have already "fixed" the direct problem with libcanberra-gtk3 by hacking the Makefile to replace the symbolic link which is being yelled about by sed when the Makefile is trying to use in-place editing on a symbolic link.

I know that if I could work out how to have gsed available in my jail and I could adjust the setting of REINPLACE_CMD to use it I would be happy.
 
If the jail was wound back to the last working version then I don't understand why this happens now and not before? It seems that whatever FreeBSD version is installed in the jail now is one in which sed(1) was patched to have this behavior, where the previous version did not. But let's ignore that. It's probably not important.

There is no magic bullet for this and I think you are very much doomed. The error in audio/libcanberra-gtk3 was fixed in ports r431953. PR 216309 is probably a good starting point for chasing all of these down.

Good luck!

I think it did not happen before as the packages had been built before and were cached by poudriere. My world turned pear shaped because of the complete clearing of the cached packges...

I will keep going the way I am. Thanks for the help.
 
I know that if I could work out how to have gsed available in my jail and I could adjust the setting of REINPLACE_CMD to use it I would be happy.
This sound like a bad idea to me. We use patterns in the ports tree that gsed does not understand at all like e.g. [[:<:]] and [[:>:]]. Who knows what else will break?
 
Back
Top