fcm
fcm copied to clipboard
fcm make doesn't work when terminal is set to french
Bug description
When the terminal localisation is set to french (e.g. export LC_ALL=fr_FR.UTF-8), fcm make fails to parse thesvn info output and can't get the svn package set in extract.location{primary}.
Output example:
$ fcm make -f fcm-make/monc-ubuntu-16.04-gnu.cfg -f fcm-make/casim_socrates.cfg
[init] make # 2023-05-12T07:49:34Z
[info] FCM 2021.05.0 (/usr)
[init] make config-parse # 2023-05-12T07:49:34Z
[info] config-file=/home/jkaradayi/workspace/r9891_jk_climaviation/fcm-make/monc-ubuntu-16.04-gnu.cfg
[info] config-file= - /home/jkaradayi/workspace/r9891_jk_climaviation/fcm-make/comp-gnu-4.4.7.cfg
[info] config-file= - /home/jkaradayi/workspace/r9891_jk_climaviation/fcm-make/env-ubuntu-16.04.cfg
[info] config-file= - /home/jkaradayi/workspace/r9891_jk_climaviation/fcm-make/monc-build.cfg
[info] config-file=/home/jkaradayi/workspace/r9891_jk_climaviation/fcm-make/casim_socrates.cfg
[done] make config-parse # 0.0s
[init] make dest-init # 2023-05-12T07:49:34Z
[info] dest=jkaradayi@port-560:/home/jkaradayi/workspace/r9891_jk_climaviation
[info] mode=incremental
[done] make dest-init # 0.0s
[init] make extract # 2023-05-12T07:49:34Z
Use of uninitialized value $value in concatenation (.) or string at /usr/share/perl5/FCM/Util/Locator/SVN.pm line 220.
Use of uninitialized value $value in concatenation (.) or string at /usr/share/perl5/FCM/Util/Locator/SVN.pm line 220.
Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/FCM/Util/Locator/SVN.pm line 178, <$fh> line 11.
Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/FCM/Util/Locator/SVN.pm line 178, <$fh> line 11.
[...]
Use of uninitialized value in split at /usr/share/perl5/FCM/System/Make/Extract.pm line 976.
Use of uninitialized value in split at /usr/share/perl5/FCM/System/Make/Extract.pm line 976.
[FAIL] /home/jkaradayi/workspace/r9891_jk_climaviation/.fcm-make/cache/extract/socrates/0 -> /home/jkaradayi/workspace/r9891_jk_climaviation/extract/socrates: copy failed
[FAIL] No such file or directory
[info] location casim: 0: /home/jkaradayi/workspace/vn1.1_jk_climaviation
[info] location monc: 0: /home/jkaradayi/workspace/r9891_jk_climaviation
[info] location socrates: 0: https://code.metoffice.gov.uk/svn/socrates/main/trunk@1376
[FAIL] make extract # 2.3s
[FAIL] make # 2.3s
What is happening
fcm is trying to parse the output of svn info which should be :
$ export LC_ALL=C; svn info https://code.metoffice.gov.uk/svn/socrates/main/trunk
Path: trunk
URL: https://code.metoffice.gov.uk/svn/socrates/main/trunk
Relative URL: ^/main/trunk
Repository Root: https://code.metoffice.gov.uk/svn/socrates
Repository UUID: 7a691fcb-5d1e-4fc1-8b6b-54125fa6be09
Revision: 1382
Node Kind: directory
Last Changed Author: jamesmanners
Last Changed Rev: 1369
Last Changed Date: 2023-04-26 17:19:50 +0200 (Wed, 26 Apr 2023)
but in french is
$ svn info https://code.metoffice.gov.uk/svn/socrates/main/trunk
Chemin : trunk
URL : https://code.metoffice.gov.uk/svn/socrates/main/trunk
Relative URL: ^/main/trunk
Racine du dépôt : https://code.metoffice.gov.uk/svn/socrates
UUID du dépôt : 7a691fcb-5d1e-4fc1-8b6b-54125fa6be09
Révision : 1382
Type de nœud : répertoire
Auteur de la dernière modification : jamesmanners
Révision de la dernière modification : 1369
Date de la dernière modification: 2023-04-26 17:19:50 +0200 (mer. 26 avril 2023)
the "œ" symbol an probably the "è" "é" etc.. are possibly making it hard for perl to parse.
To Reproduce
Set shell localisation to french, launch fcm make with a config file pointing to a remote svn repository.
E.G. :
Using location{primary}[monc.x] = https://code.metoffice.gov.uk/svn/monc/main, launch
$ export LC_ALL=fr_FR.UTF-8; fcm make -f fcm-make/monc-ubuntu-16.04-gnu.cfg
Expected behavior
When wrapping svn info in SVN.pm, force localization to "LC_ALL=C".
Desktop
- OS: Ubuntu 22.04
- perl: v5.34.0
- SVN : 1.14.1