Hi guys, I hope someone here stumbled upon it, and has a good idea. We have some Java source files with remarks in French, including Unicode characters. When running simple maven build it works well. However, when using rpmbuild, we're failing with errors like this:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project talendRoutines: Compilation failure: Compilation failure: [ERROR] /home/xxx/git-repos/ovirt-dwh/rpmtop/BUILD/ovirt-dwh-3.0/data-warehouse/history_etl/etl_sources/talendRoutines/src/main/java/routines/TalendString.java:[274,35] unmappable character for encoding ASCII ...
When debugging this, we saw that rpmbuild actually sets LANG=C, which disables unicode thus resulting with the error.
1. Did anyone see this before? 2. Any idea how to disable the LANG setting during rpmbuild?
I'm sure Fedora Java dev's should be aware of it.
Thanks! Doron
On 04/18/2012 03:12 PM, Doron Fediuck wrote:
Hi guys, I hope someone here stumbled upon it, and has a good idea. We have some Java source files with remarks in French, including Unicode characters. When running simple maven build it works well. However, when using rpmbuild, we're failing with errors like this:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project talendRoutines: Compilation failure: Compilation failure: [ERROR] /home/xxx/git-repos/ovirt-dwh/rpmtop/BUILD/ovirt-dwh-3.0/data-warehouse/history_etl/etl_sources/talendRoutines/src/main/java/routines/TalendString.java:[274,35] unmappable character for encoding ASCII ...
When debugging this, we saw that rpmbuild actually sets LANG=C, which disables unicode thus resulting with the error.
- Did anyone see this before?
- Any idea how to disable the LANG setting during rpmbuild?
I'm sure Fedora Java dev's should be aware of it.
I added this option the maven command line for that very reason:
-Dproject.build.sourceEncoding=ISO-8859-1
Hope it helps!
On 18/04/12 16:19, Juan Hernandez wrote:
On 04/18/2012 03:12 PM, Doron Fediuck wrote:
Hi guys, I hope someone here stumbled upon it, and has a good idea. We have some Java source files with remarks in French, including Unicode characters. When running simple maven build it works well. However, when using rpmbuild, we're failing with errors like this:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project talendRoutines: Compilation failure: Compilation failure: [ERROR] /home/xxx/git-repos/ovirt-dwh/rpmtop/BUILD/ovirt-dwh-3.0/data-warehouse/history_etl/etl_sources/talendRoutines/src/main/java/routines/TalendString.java:[274,35] unmappable character for encoding ASCII ...
When debugging this, we saw that rpmbuild actually sets LANG=C, which disables unicode thus resulting with the error.
- Did anyone see this before?
- Any idea how to disable the LANG setting during rpmbuild?
I'm sure Fedora Java dev's should be aware of it.
I added this option the maven command line for that very reason:
-Dproject.build.sourceEncoding=ISO-8859-1
Hope it helps!
Thanks Juan, Looks like a good workaround. I think we could improve if rpmbuild would be aware of it. Do you think we should open a BZ on rpmbuild?
On 04/18/2012 04:24 PM, Doron Fediuck wrote:
On 18/04/12 16:19, Juan Hernandez wrote:
I added this option the maven command line for that very reason:
-Dproject.build.sourceEncoding=ISO-8859-1
Hope it helps!
Thanks Juan, Looks like a good workaround.
A better thing IMO would be to fix upstream build files to take care of settings such as this and submit the patches upstream, for example like this:
http://pkgs.fedoraproject.org/gitweb/?p=maven-jflex-plugin.git;a=commitdiff;...
http://sf.net/tracker/?func=detail&aid=3475986&group_id=14929&at...
A better thing IMO would be to fix upstream build files to take care of settings such as this and submit the patches upstream, for example like this:
http://pkgs.fedoraproject.org/gitweb/?p=maven-jflex-plugin.git;a=commitdiff;...
http://sf.net/tracker/?func=detail&aid=3475986&group_id=14929&at...
+1 here as well. It's better to fix this for everyone (other distributions included) since they will likely face the same problems when rebuilding on a UTF-8 systems.
If the upstream has source files in UTF-8 (or whatever else), they should make sure their build system knows about this and they shouldn't rely on system environment to guess
----- Original Message -----
When debugging this, we saw that rpmbuild actually sets LANG=C, which disables unicode thus resulting with the error.
- Any idea how to disable the LANG setting during rpmbuild?
This is a tricky issue; from what I can see of a quick read of the JLS, it says that source files should be Unicode; but that's not useful here because it doesn't seem to specify the encoding.
Anyways, if the OpenJDK compiler derives "ASCII" from LANG=C that's wrong. By default, it should assume input files are UTF-8.
I guess the Python people made the same braindamaged mistake though =/
At worst, since Fedora has a policy that files in general should be UTF-8 encoded, we could carry a javac patch that assumes UTF-8.
Some more information here: http://stackoverflow.com/questions/1726174/how-to-compile-a-java-source-file...
On 18/04/12 16:25, Colin Walters wrote:
----- Original Message -----
When debugging this, we saw that rpmbuild actually sets LANG=C, which disables unicode thus resulting with the error.
- Any idea how to disable the LANG setting during rpmbuild?
This is a tricky issue; from what I can see of a quick read of the JLS, it says that source files should be Unicode; but that's not useful here because it doesn't seem to specify the encoding.
Anyways, if the OpenJDK compiler derives "ASCII" from LANG=C that's wrong. By default, it should assume input files are UTF-8.
I guess the Python people made the same braindamaged mistake though =/
At worst, since Fedora has a policy that files in general should be UTF-8 encoded, we could carry a javac patch that assumes UTF-8.
Some more information here: http://stackoverflow.com/questions/1726174/how-to-compile-a-java-source-file...
Thanks Collin, It actually makes sense since Java works with Unicode by design. Please cc me on the javac bz.
java-devel@lists.fedoraproject.org