2013-09-14 14:56:10 +02:00
|
|
|
{ stdenv, fetchurl, libiconvOrEmpty }:
|
|
|
|
|
|
|
|
with { inherit (stdenv.lib) optionals optionalAttrs; };
|
2009-04-22 01:18:09 +02:00
|
|
|
|
2012-05-29 12:13:23 +02:00
|
|
|
stdenv.mkDerivation (rec {
|
2010-08-01 23:01:54 +02:00
|
|
|
name = "gettext-0.18.1.1";
|
2013-09-14 14:56:10 +02:00
|
|
|
|
2008-02-22 04:06:12 +01:00
|
|
|
src = fetchurl {
|
|
|
|
url = "mirror://gnu/gettext/${name}.tar.gz";
|
2010-08-01 23:01:54 +02:00
|
|
|
sha256 = "1sa3ch12qxa4h3ya6hkz119yclcccmincl9j20dhrdx5mykp3b4k";
|
2008-02-22 04:06:12 +01:00
|
|
|
};
|
2009-09-19 13:04:33 +02:00
|
|
|
|
2012-09-18 20:05:23 +02:00
|
|
|
patches = [ ./no-gets.patch ];
|
|
|
|
|
2012-05-29 12:13:23 +02:00
|
|
|
configureFlags = [ "--disable-csharp" ]
|
2013-09-14 14:56:10 +02:00
|
|
|
++ (optionals stdenv.isCygwin
|
2012-05-29 12:13:23 +02:00
|
|
|
[ # We have a static libiconv, so we can only build the static lib.
|
|
|
|
"--disable-shared" "--enable-static"
|
|
|
|
|
|
|
|
# Share the cache among the various `configure' runs.
|
|
|
|
"--config-cache"
|
|
|
|
]);
|
2009-09-19 13:04:33 +02:00
|
|
|
|
2009-11-23 20:38:34 +01:00
|
|
|
# On cross building, gettext supposes that the wchar.h from libc
|
|
|
|
# does not fulfill gettext needs, so it tries to work with its
|
|
|
|
# own wchar.h file, which does not cope well with the system's
|
|
|
|
# wchar.h and stddef.h (gcc-4.3 - glibc-2.9)
|
|
|
|
preConfigure = ''
|
|
|
|
if test -n "$crossConfig"; then
|
|
|
|
echo gl_cv_func_wcwidth_works=yes > cachefile
|
|
|
|
configureFlags="$configureFlags --cache-file=`pwd`/cachefile"
|
|
|
|
fi
|
|
|
|
'';
|
|
|
|
|
2013-09-14 14:56:10 +02:00
|
|
|
buildInputs = libiconvOrEmpty;
|
|
|
|
|
2011-12-14 14:37:17 +01:00
|
|
|
enableParallelBuilding = true;
|
2013-09-14 14:56:10 +02:00
|
|
|
|
2010-03-09 19:05:38 +01:00
|
|
|
crossAttrs = {
|
2013-09-14 14:56:10 +02:00
|
|
|
buildInputs = optional (stdenv.gccCross.libc ? libiconv)
|
2012-12-28 19:08:19 +01:00
|
|
|
stdenv.gccCross.libc.libiconv.crossDrv;
|
2010-08-01 23:21:26 +02:00
|
|
|
# Gettext fails to guess the cross compiler
|
|
|
|
configureFlags = "CXX=${stdenv.cross.config}-g++";
|
2010-03-09 19:05:38 +01:00
|
|
|
};
|
|
|
|
|
2009-09-19 13:04:33 +02:00
|
|
|
meta = {
|
|
|
|
description = "GNU gettext, a well integrated set of translation tools and documentation";
|
|
|
|
|
|
|
|
longDescription = ''
|
|
|
|
Usually, programs are written and documented in English, and use
|
|
|
|
English at execution time for interacting with users. Using a common
|
|
|
|
language is quite handy for communication between developers,
|
|
|
|
maintainers and users from all countries. On the other hand, most
|
|
|
|
people are less comfortable with English than with their own native
|
|
|
|
language, and would rather be using their mother tongue for day to
|
|
|
|
day's work, as far as possible. Many would simply love seeing their
|
|
|
|
computer screen showing a lot less of English, and far more of their
|
|
|
|
own language.
|
|
|
|
|
|
|
|
GNU `gettext' is an important step for the GNU Translation Project, as
|
|
|
|
it is an asset on which we may build many other steps. This package
|
|
|
|
offers to programmers, translators, and even users, a well integrated
|
|
|
|
set of tools and documentation. Specifically, the GNU `gettext'
|
|
|
|
utilities are a set of tools that provides a framework to help other
|
|
|
|
GNU packages produce multi-lingual messages.
|
|
|
|
'';
|
|
|
|
|
|
|
|
homepage = http://www.gnu.org/software/gettext/;
|
|
|
|
|
|
|
|
maintainers = [ stdenv.lib.maintainers.ludo ];
|
2010-05-10 14:33:43 +02:00
|
|
|
platforms = stdenv.lib.platforms.all;
|
2009-09-19 13:04:33 +02:00
|
|
|
};
|
2008-02-22 04:06:12 +01:00
|
|
|
}
|
2012-05-29 12:13:23 +02:00
|
|
|
|
2013-09-14 14:56:10 +02:00
|
|
|
// optionalAttrs stdenv.isDarwin {
|
|
|
|
makeFlags = "CFLAGS=-D_FORTIFY_SOURCE=0";
|
|
|
|
}
|
2012-05-29 12:13:23 +02:00
|
|
|
|
2013-09-14 14:56:10 +02:00
|
|
|
// optionalAttrs stdenv.isCygwin {
|
2012-05-29 12:13:23 +02:00
|
|
|
patchPhase =
|
|
|
|
# Make sure `error.c' gets compiled and is part of `libgettextlib.la'.
|
|
|
|
# This fixes:
|
|
|
|
# gettext-0.18.1.1/gettext-tools/src/msgcmp.c:371: undefined reference to `_error_message_count'
|
|
|
|
|
|
|
|
'' sed -i gettext-tools/gnulib-lib/Makefile.in \
|
|
|
|
-e 's/am_libgettextlib_la_OBJECTS =/am_libgettextlib_la_OBJECTS = error.lo/g'
|
|
|
|
'';
|
|
|
|
})
|