diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:36 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:47 +0000 |
commit | 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch) | |
tree | b3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/development/libraries/gettext | |
parent | 4e31070265257dc67d120c27e0f75c2344fdfa9a (diff) | |
parent | abf060725d7614bd3b9f96764262dfbc2f9c2199 (diff) | |
download | nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2 nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip |
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gettext')
3 files changed, 126 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gettext/absolute-paths.diff b/nixpkgs/pkgs/development/libraries/gettext/absolute-paths.diff new file mode 100644 index 000000000000..af37f61a9a41 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gettext/absolute-paths.diff @@ -0,0 +1,21 @@ +diff --git a/gettext-runtime/src/gettext.sh.in b/gettext-runtime/src/gettext.sh.in +index 1dfa3bb..d6ef8a8 100644 +--- a/gettext-runtime/src/gettext.sh.in ++++ b/gettext-runtime/src/gettext.sh.in +@@ -86,14 +86,14 @@ fi + # looks up the translation of MSGID and substitutes shell variables in the + # result. + eval_gettext () { +- gettext "$1" | (export PATH `envsubst --variables "$1"`; envsubst "$1") ++ @out@/bin/gettext "$1" | (export PATH `@out@/bin/envsubst --variables "$1"`; @out@/bin/envsubst "$1") + } + + # eval_ngettext MSGID MSGID-PLURAL COUNT + # looks up the translation of MSGID / MSGID-PLURAL for COUNT and substitutes + # shell variables in the result. + eval_ngettext () { +- ngettext "$1" "$2" "$3" | (export PATH `envsubst --variables "$1 $2"`; envsubst "$1 $2") ++ @out@/bin/ngettext "$1" "$2" "$3" | (export PATH `@out@/bin/envsubst --variables "$1 $2"`; @out@/bin/envsubst "$1 $2") + } + + # Note: This use of envsubst is much safer than using the shell built-in 'eval' diff --git a/nixpkgs/pkgs/development/libraries/gettext/default.nix b/nixpkgs/pkgs/development/libraries/gettext/default.nix new file mode 100644 index 000000000000..8ed898813aef --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gettext/default.nix @@ -0,0 +1,88 @@ +{ stdenv, lib, fetchurl, libiconv, xz }: + +stdenv.mkDerivation rec { + name = "gettext-${version}"; + version = "0.19.8.1"; + + src = fetchurl { + url = "mirror://gnu/gettext/${name}.tar.gz"; + sha256 = "0hsw28f9q9xaggjlsdp2qmbp2rbd1mp0njzan2ld9kiqwkq2m57z"; + }; + patches = [ ./absolute-paths.diff ]; + + outputs = [ "out" "man" "doc" "info" ]; + + hardeningDisable = [ "format" ]; + + LDFLAGS = if stdenv.isSunOS then "-lm -lmd -lmp -luutil -lnvpair -lnsl -lidmap -lavl -lsec" else ""; + + configureFlags = [ + "--disable-csharp" "--with-xz" + # avoid retaining reference to CF during stdenv bootstrap + ] ++ lib.optionals stdenv.isDarwin [ + "gt_cv_func_CFPreferencesCopyAppValue=no" + "gt_cv_func_CFLocaleCopyCurrent=no" + ] ++ 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" + ]; + + postPatch = '' + substituteAllInPlace gettext-runtime/src/gettext.sh.in + 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 + '' + lib.optionalString stdenv.hostPlatform.isCygwin '' + 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 + ''; + + nativeBuildInputs = [ xz xz.bin ]; + # HACK, see #10874 (and 14664) + buildInputs = stdenv.lib.optional (!stdenv.isLinux && !stdenv.hostPlatform.isCygwin) libiconv; + + setupHooks = [ + ../../../build-support/setup-hooks/role.bash + ./gettext-setup-hook.sh + ]; + gettextNeedsLdflags = stdenv.hostPlatform.libc != "glibc" && !stdenv.hostPlatform.isMusl; + + enableParallelBuilding = true; + enableParallelChecking = false; # fails sometimes + + meta = with lib; { + description = "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 = https://www.gnu.org/software/gettext/; + + maintainers = with maintainers; [ zimbatm vrthra ]; + license = licenses.gpl2Plus; + platforms = platforms.all; + }; +} + +// stdenv.lib.optionalAttrs stdenv.isDarwin { + makeFlags = "CFLAGS=-D_FORTIFY_SOURCE=0"; +} diff --git a/nixpkgs/pkgs/development/libraries/gettext/gettext-setup-hook.sh b/nixpkgs/pkgs/development/libraries/gettext/gettext-setup-hook.sh new file mode 100644 index 000000000000..ad3763c29b64 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gettext/gettext-setup-hook.sh @@ -0,0 +1,17 @@ +gettextDataDirsHook() { + # See pkgs/build-support/setup-hooks/role.bash + getHostRoleEnvHook + if [ -d "$1/share/gettext" ]; then + addToSearchPath "GETTEXTDATADIRS${role_post}" "$1/share/gettext" + fi +} + +addEnvHooks "$hostOffset" gettextDataDirsHook + +# libintl must be listed in load flags on non-Glibc +# it doesn't hurt to have it in Glibc either though +if [ -n "@gettextNeedsLdflags@" -a -z "$dontAddExtraLibs" ]; then + # See pkgs/build-support/setup-hooks/role.bash + getHostRole + export NIX_${role_pre}LDFLAGS+=" -lintl" +fi |