Created attachment 210682 [details] silgraphite error log The port fails to build on 13.0-CURRENT with the attached message. The error does not depend on anything I have in my /etc/make.conf: I set __MAKE_CONF=/dev/null to be sure of it. I am on amd64. Ports tree revision: 522170 (head) Src tree revision: 356358
With a recent upgrade of FreeBSD-12/stable, I get the same problem. Here is a fix/workaround. Unfortunately the way patches are written in files makes it quite hard for me to figure out how to properly incorporate this. But somehow you want to make the port use this patch: --- engine/src/segment/Segment.cpp-old 2020-01-29 20:10:08.829253000 -0600 +++ engine/src/segment/Segment.cpp 2008-08-21 09:24:32.000000000 -0500 @@ -577,10 +575,7 @@ int crefThis = m_cref; int crefOther = pgrseg->m_cref; - std::swap(*this, *pgrseg); + //std::swap(*this, *pgrseg); + Segment tmp = *this; + *this = *pgrseg; + *pgrseg = tmp; m_cref = crefThis; pgrseg->m_cref = crefOther; Overall it seems to me like a compiler bug, because I think that std:swap should simply work.
Created attachment 211187 [details] silgraphite - fix Segment.cpp Here is the patch proposed by Stephen in svn diff format. I tested it and it fixed the problem for me. Thank you very much Stephen.
Created attachment 211220 [details] Fix for 13-CURRENT (In reply to Stephen Montgomery-Smith from comment #1) (In reply to Lorenzo Salvadore from comment #2) Could you please try this one [1]? I just tested it on a -head poudriere jail and it works. [1] Also available at https://people.FreeBSD.org/~sunpoet/patch/graphics-silgraphite.txt
(In reply to Sunpoet Po-Chuan Hsieh from comment #3) I tested successfully your patch.
A commit references this bug: Author: sunpoet Date: Fri Jan 31 16:03:17 UTC 2020 New revision: 524720 URL: https://svnweb.freebsd.org/changeset/ports/524720 Log: Fix build on 13-CURRENT PR: 243310 Reported by: salvadore, stephen Tested by: salvadore Changes: head/graphics/silgraphite/Makefile head/graphics/silgraphite/files/patch-engine-include-graphite-Segment.h head/graphics/silgraphite/files/patch-engine-src-segment-Segment.cpp
(In reply to Stephen Montgomery-Smith from comment #1) > Overall it seems to me like a compiler bug, because I think that std:swap should simply work. IIRC, C++ only allows assigning temporary objects to const reference. That's why the copy constructor does not work.
Committed. Thanks!