While updateing LibreOffice towards 5.0.2, the process dies on this jakarta bug:
[javac] /usr/ports/java/jakarta-commons-httpclient/work/commons-httpclient-3.1/build.xml:184: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 139 source files to /usr/ports/java/jakarta-commons-httpclient/work/commons-httpclient-3.1/target/classes
[javac] /usr/ports/java/jakarta-commons-httpclient/work/commons-httpclient-3.1/src/java/org/apache/commons/httpclient/HttpContentTooLargeException.java:6: error: unmappable character for encoding UTF8
[javac] * @author Ortwin Gl�ck
[javac] 1 error
/usr/ports/java/jakarta-commons-httpclient/work/commons-httpclient-3.1/build.xml:184: Compile failed; see the compiler error output for details.
Total time: 0 seconds
*** Error code 1
Created attachment 161324 [details]
fix REINPLACE operation to use the right CTYPE
According to environ(7), LANG "...configures all programs which use setlocale(3) to use the specified locale unless the LC_* variables are set.". If LC_CTYPE leaks in from the user's shell, setting LANG in the Makefile will not have it's desired effect. Fix this by setting LC_CTYPE explicitly.
In my case, LC_CTYPE is explicitely set to en_US.utf-8. I had to unset it, before starting the compilation process again. After unsetting LC_CTYPE, I found the compilation and installation of the port working. But this is a dirty workaround.
Attachment 161324 [details] doesn't work when LC_ALL is set. LC_CTYPE cannot override LC_ALL.
Created attachment 166002 [details]
make sure to really override any LC_* variables
You're right (I'm using a mixed locale, so I always forget about LC_ALL).
So I guess we should be safe by setting LC_ALL for the replacement operation, see updated patch.
Created attachment 166004 [details]
poudriere testport log (10.2/amd64)
and here's the QA for that.
Attachment 166002 [details] is identical to my local patch, so I think it will work.
patch tested successfully on 10.3/amd64
setenv LANG "en_US.UTF-8"
setenv LC_COLLATE "en_US.UTF-8"
setenv LC_CTYPE "en_US.UTF-8"
setenv LC_MESSAGES "en_US.UTF-8"
setenv LC_MONETARY "en_US.UTF-8"
setenv LC_NUMERIC "en_US.UTF-8"
setenv LC_TIME "en_US.UTF-8"
setenv LC_ALL "en_US.UTF-8"
I am on FreeBSD 12-CURRENT and can confirm that this does fix this issue.
Fix confirmed, close here.