diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index c686a87b4..4502d2e37 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -58,6 +58,7 @@ A rough guide for hledger contributors of all kinds, plus some quick links for e [\#ledger](irc://irc.freenode.net/#ledger) irc channel which we share, or [send email](mailto:simon@joyful.com?subject=hledger:) - for issues relevant to the wider *ledger community, you can also use or cc ledger's mail list +- don't forget the [installation tips](MANUAL.html#installing), [Troubleshooting](MANUAL.html#troubleshooting) section, and bug tracker ### how to report problems diff --git a/DOWNLOAD.md b/DOWNLOAD.md index 38a4e8c97..2a3949cef 100644 --- a/DOWNLOAD.md +++ b/DOWNLOAD.md @@ -20,7 +20,7 @@ code { Here are pre-built hledger binaries which you can download. You may need to decompress *(gunzip FILE.gz)* and make them executable *(chmod +x FILE)* before running them. Please report problems and for more help and +href="DEVELOPMENT.html#support">report any problems. For more help and alternate installation methods, see the installation docs. diff --git a/MANUAL.md b/MANUAL.md index ecdc280ed..d5fbd76d9 100644 --- a/MANUAL.md +++ b/MANUAL.md @@ -88,14 +88,13 @@ Or, you can build the latest [development version](http://joyful.com/darcsweb/da $ cd hledger $ make install -You may encounter dependency issues when using cabal, which can often be -worked around by (a) being sure to cabal update, (b) using --constraint, -(c) unregistering obsolete package versions from your system. Otherwise, -please see [Troubleshooting](#troubleshooting) and seek -[Support](DEVELOPMENT.html#support). - -More installation tips: +If you have trouble, please see [Troubleshooting](#troubleshooting) and +ask for [Support](DEVELOPMENT.html#support). Also note these tips: +- If you're working with non-ascii journal data, be sure to [set a suitable locale](#usage-issues) +- When installing with cabal you may encounter dependency issues. These + can often be worked around by: making sure to cabal update; using + --constraint; and/or ghc-pkg unregister-ing obsolete package versions. - hledger-chart: requires additional GTK-related libraries and possibly [other things](http://code.haskell.org/gtk2hs/INSTALL). On ubuntu, install the `libghc6-gtk-dev` package. - hledger-vty: requires curses-related libraries (ubuntu package: `libncurses5-dev`). Not buildable on microsoft windows, except possibly via cygwin. - hledger-web: building requires GHC 6.12 or greater. @@ -1233,30 +1232,42 @@ sailing. Here are some known issues and things to try: Here are some issues you might encounter when you run hledger: -- **hledger: ... hGetContents: invalid argument (Illegal byte sequence)** - You may get this error when running hledger with a journal containing - non-ascii text, on a machine using the default C locale. You can check - this like so: - - $ locale - LANG= - LC_COLLATE="C" - LC_CTYPE="C" - LC_MESSAGES="C" - LC_MONETARY="C" - LC_NUMERIC="C" - LC_TIME="C" - LC_ALL= +- **non-ascii data gives "Illegal byte sequence" or "Invalid or incomplete multibyte or wide character" errors** + + hledger and other executables produced by GHC will give this error if + asked to read a non-ascii file when a proper system locale is not + configured. Eg, it's common for journal files to be UTF-8-encoded, in + which case the system must have a (installed) UTF-8-aware locale + configured. You can also configure it temporarily by setting the LANG + environment variable on the command line. Here's an example, using + ubuntu: + $ file my.journal - .../.journal: UTF-8 Unicode C++ program text + my.journal: UTF-8 Unicode text + $ locale -a + C + en_US.utf8 + POSIX + $ LANG=en_US.utf8 hledger -f my.journal print - In this case you need to set the `LANG` environment variable to a - locale suitable for the encoding shown (eg UTF-8). You - can set it temporarily when you run hledger: - - $ LANG=en_US.UTF-8 hledger ... - - or permanently: + If we prefer, say, fr_FR.utf8, we'd better make sure it's installed: + + $ apt-get install language-pack-fr + $ locale -a + C + en_US.utf8 + fr_BE.utf8 + fr_CA.utf8 + fr_CH.utf8 + fr_FR.utf8 + fr_LU.utf8 + POSIX + $ LANG=fr_FR.utf8 hledger -f my.journal print + + Also note that on ubuntu variant spellings of "utf8", like "fr_FR.UTF8", are allowed, + while on mac osx it must be exactly "fr_FR.UTF-8". + + Here's one way to set LANG permanently: $ echo "export LANG=en_US.UTF-8" >>~/.bash_profile $ bash --login