2020-01-30 07:41:12 +01:00
|
|
|
{ stdenv, lib, fetchurl, libiconv, xz, fetchpatch }:
|
2009-04-22 01:18:09 +02:00
|
|
|
|
2016-02-21 14:22:44 +01:00
|
|
|
stdenv.mkDerivation rec {
|
2019-08-15 14:41:18 +02:00
|
|
|
pname = "gettext";
|
2019-11-06 23:02:22 +01:00
|
|
|
version = "0.20.1";
|
2013-09-23 11:14:42 +02:00
|
|
|
|
2008-02-22 04:06:12 +01:00
|
|
|
src = fetchurl {
|
2019-08-15 14:41:18 +02:00
|
|
|
url = "mirror://gnu/gettext/${pname}-${version}.tar.gz";
|
2019-11-06 23:02:22 +01:00
|
|
|
sha256 = "0p3zwkk27wm2m2ccfqm57nj7vqkmfpn7ja1nf65zmhz8qqs5chb6";
|
2008-02-22 04:06:12 +01:00
|
|
|
};
|
2019-04-05 21:03:59 +02:00
|
|
|
patches = [
|
|
|
|
./absolute-paths.diff
|
2019-11-13 13:58:14 +01:00
|
|
|
./gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch
|
2020-01-30 07:41:12 +01:00
|
|
|
]
|
2020-01-31 21:49:26 +01:00
|
|
|
++ lib.optional stdenv.isDarwin
|
2020-01-30 07:41:12 +01:00
|
|
|
(fetchpatch {
|
|
|
|
url = "https://git.savannah.gnu.org/cgit/gettext.git/patch?id=ec0e6b307456ceab352669ae6bccca9702108753";
|
|
|
|
sha256 = "0xqs01c7xl7vmw6bqvsmrzxxjxk2a4spcdpmlwm3b4hi2wc2lxnf";
|
|
|
|
});
|
2009-09-19 13:04:33 +02:00
|
|
|
|
2017-07-11 11:14:14 +02:00
|
|
|
outputs = [ "out" "man" "doc" "info" ];
|
2015-07-27 00:25:53 +02:00
|
|
|
|
2017-09-15 11:04:14 +02:00
|
|
|
hardeningDisable = [ "format" ];
|
2015-12-23 02:59:47 +01:00
|
|
|
|
2013-02-23 14:59:59 +01:00
|
|
|
LDFLAGS = if stdenv.isSunOS then "-lm -lmd -lmp -luutil -lnvpair -lnsl -lidmap -lavl -lsec" else "";
|
2013-02-20 10:20:07 +01:00
|
|
|
|
2018-05-13 17:31:24 +02:00
|
|
|
configureFlags = [
|
|
|
|
"--disable-csharp" "--with-xz"
|
|
|
|
] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
|
|
|
# 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)
|
|
|
|
"gl_cv_func_wcwidth_works=yes"
|
|
|
|
];
|
2009-09-19 13:04:33 +02:00
|
|
|
|
2016-02-17 18:16:20 +01:00
|
|
|
postPatch = ''
|
|
|
|
substituteAllInPlace gettext-runtime/src/gettext.sh.in
|
2015-12-13 15:07:10 +01:00
|
|
|
substituteInPlace gettext-tools/projects/KDE/trigger --replace "/bin/pwd" pwd
|
|
|
|
substituteInPlace gettext-tools/projects/GNOME/trigger --replace "/bin/pwd" pwd
|
|
|
|
substituteInPlace gettext-tools/src/project-id --replace "/bin/pwd" pwd
|
2018-08-20 20:43:41 +02:00
|
|
|
'' + lib.optionalString stdenv.hostPlatform.isCygwin ''
|
2017-05-23 15:36:46 +02:00
|
|
|
sed -i -e "s/\(cldr_plurals_LDADD = \)/\\1..\/gnulib-lib\/libxml_rpl.la /" gettext-tools/src/Makefile.in
|
|
|
|
sed -i -e "s/\(libgettextsrc_la_LDFLAGS = \)/\\1..\/gnulib-lib\/libxml_rpl.la /" gettext-tools/src/Makefile.in
|
2015-12-13 15:07:10 +01:00
|
|
|
'';
|
|
|
|
|
2019-04-15 07:09:44 +02:00
|
|
|
nativeBuildInputs = [
|
|
|
|
xz
|
|
|
|
xz.bin
|
|
|
|
];
|
2017-08-30 22:46:25 +02:00
|
|
|
# HACK, see #10874 (and 14664)
|
2018-08-20 20:43:41 +02:00
|
|
|
buildInputs = stdenv.lib.optional (!stdenv.isLinux && !stdenv.hostPlatform.isCygwin) libiconv;
|
2013-09-23 11:14:42 +02:00
|
|
|
|
2018-05-07 19:07:19 +02:00
|
|
|
setupHooks = [
|
|
|
|
../../../build-support/setup-hooks/role.bash
|
|
|
|
./gettext-setup-hook.sh
|
|
|
|
];
|
2018-08-20 20:43:41 +02:00
|
|
|
gettextNeedsLdflags = stdenv.hostPlatform.libc != "glibc" && !stdenv.hostPlatform.isMusl;
|
2017-12-04 05:30:45 +01:00
|
|
|
|
2011-12-14 14:37:17 +01:00
|
|
|
enableParallelBuilding = true;
|
2018-09-05 03:12:48 +02:00
|
|
|
enableParallelChecking = false; # fails sometimes
|
2013-09-23 11:14:42 +02:00
|
|
|
|
2018-08-20 19:50:39 +02:00
|
|
|
meta = with lib; {
|
2014-08-24 16:21:08 +02:00
|
|
|
description = "Well integrated set of translation tools and documentation";
|
2009-09-19 13:04:33 +02:00
|
|
|
|
|
|
|
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.
|
|
|
|
'';
|
|
|
|
|
2018-12-01 19:22:13 +01:00
|
|
|
homepage = https://www.gnu.org/software/gettext/;
|
2009-09-19 13:04:33 +02:00
|
|
|
|
2018-08-20 19:50:39 +02:00
|
|
|
maintainers = with maintainers; [ zimbatm vrthra ];
|
|
|
|
license = licenses.gpl2Plus;
|
|
|
|
platforms = 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-23 11:14:27 +02:00
|
|
|
// stdenv.lib.optionalAttrs stdenv.isDarwin {
|
2019-10-27 14:03:25 +01:00
|
|
|
makeFlags = [ "CFLAGS=-D_FORTIFY_SOURCE=0" ];
|
2013-09-14 14:56:10 +02:00
|
|
|
}
|