Bug 168835

Summary: devel/boost-all: inkscape 0.48.2 will crash throwing exception "std::runtime_error: locale::facet::_S_create_c_locale name not valid"
Product: Ports & Packages Reporter: Anderson Guzman <aguzman>
Component: Individual Port(s)Assignee: FreeBSD Office Team <office>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description Anderson Guzman 2012-06-08 06:40:11 UTC
Program will crash throwing exception "std::runtime_error: locale::facet::_S_create_c_locale name not valid" on  systems when current locale (LANG,LC_ALL) is not "C"

Fix: 

set LANG and LC_ALL variables to a locale "C" :


$ export LANG=C
$ export LC_ALL=C


The problem is related with boost library (1.48.0) from ports, see related issue in: 

https://svn.boost.org/trac/boost/ticket/4688

There is a FreeBSD patch specifically to be used in Boost library ver. 1.47...
How-To-Repeat: set LANG and LC_ALL variables to a locale distinct to C , for example :


$ export LANG=en_US.UTF-8
$ export LC_ALL=en_US.UTF-8

Run Inkscape
Comment 1 Edwin Groothuis freebsd_committer 2012-06-11 07:17:37 UTC
Responsible Changed
From-To: freebsd-ports-bugs->gnome

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Jeremy Messenger freebsd_committer 2012-12-29 17:40:06 UTC
Responsible Changed
From-To: gnome->churanov.port.maintainer@gmail.com

It's boost issue rather than inkscape issue. Forward this PR to the boost 
maintainer.
Comment 3 Mark Linimon freebsd_committer freebsd_triage 2013-01-19 20:11:48 UTC
Responsible Changed
From-To: churanov.port.maintainer@gmail.com->freebsd-ports-bugs

In general we only use committers as GNATS Responsible values.
Comment 4 Baptiste Daroussin freebsd_committer 2013-02-02 17:41:44 UTC
Responsible Changed
From-To: freebsd-ports-bugs->freebsd-office

Over to new maintainer, is it still happening with new boost?
Comment 5 Raphael Kubo da Costa freebsd_committer 2013-02-03 19:40:37 UTC
Yes, this bug should be more frequent than before, in fact. r311308
actually removed a few patches added in r267504 which prevented this
issue from happening. I'm not 100% sure they were the right fix, though.

The problem hasn't been completely solved upstream either ([1] is still
open).

As [2] explains, the problem is that we build gcc (both in base and
ports) without passing --clocale=gnu to it, so when boost calls
std::locale("") it will fail if LC_ALL is set to anything but "POSIX" or
"C".

[1] https://svn.boost.org/trac/boost/ticket/5928
[2] https://svn.boost.org/trac/boost/ticket/4688#comment:17
Comment 6 Raphael Kubo da Costa freebsd_committer 2013-02-06 21:04:36 UTC
State Changed
From-To: open->closed

Fixed in r311771.