distro: Add GNU Gettext.
* distro/packages/gettext.scm, distro/packages/patches/gettext-gets-undeclared.patch: New files. * Makefile.am (MODULES): Add 'gettext.scm'. (dist_patch_DATA): Add 'gettext-gets-undeclared.patch'.
This commit is contained in:
		
							parent
							
								
									ec5288609b
								
							
						
					
					
						commit
						f190f92f91
					
				
					 3 changed files with 143 additions and 0 deletions
				
			
		|  | @ -52,6 +52,7 @@ MODULES =					\ | |||
|   distro/packages/flex.scm			\ | ||||
|   distro/packages/gawk.scm			\ | ||||
|   distro/packages/gdbm.scm			\ | ||||
|   distro/packages/gettext.scm			\ | ||||
|   distro/packages/gnupg.scm			\ | ||||
|   distro/packages/gnutls.scm			\ | ||||
|   distro/packages/gperf.scm			\ | ||||
|  | @ -87,6 +88,7 @@ dist_patch_DATA =						\ | |||
|   distro/packages/patches/binutils-ld-new-dtags.patch		\ | ||||
|   distro/packages/patches/diffutils-gets-undeclared.patch	\ | ||||
|   distro/packages/patches/flex-bison-tests.patch		\ | ||||
|   distro/packages/patches/gettext-gets-undeclared.patch		\ | ||||
|   distro/packages/patches/glibc-no-ld-so-cache.patch		\ | ||||
|   distro/packages/patches/guile-1.8-cpp-4.5.patch		\ | ||||
|   distro/packages/patches/guile-default-utf8.patch		\ | ||||
|  |  | |||
							
								
								
									
										64
									
								
								distro/packages/gettext.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								distro/packages/gettext.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,64 @@ | |||
| ;;; Guix --- Nix package management from Guile.         -*- coding: utf-8 -*- | ||||
| ;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org> | ||||
| ;;; | ||||
| ;;; This file is part of Guix. | ||||
| ;;; | ||||
| ;;; Guix is free software; you can redistribute it and/or modify it | ||||
| ;;; under the terms of the GNU General Public License as published by | ||||
| ;;; the Free Software Foundation; either version 3 of the License, or (at | ||||
| ;;; your option) any later version. | ||||
| ;;; | ||||
| ;;; Guix is distributed in the hope that it will be useful, but | ||||
| ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| ;;; GNU General Public License for more details. | ||||
| ;;; | ||||
| ;;; You should have received a copy of the GNU General Public License | ||||
| ;;; along with Guix.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (define-module (distro packages gettext) | ||||
|   #:use-module (distro) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix download) | ||||
|   #:use-module (guix build-system gnu)) | ||||
| 
 | ||||
| (define-public gettext | ||||
|   (package | ||||
|     (name "gettext") | ||||
|     (version "0.18.1.1") | ||||
|     (source | ||||
|      (origin | ||||
|       (method url-fetch) | ||||
|       (uri (string-append "mirror://gnu/gettext/gettext-" | ||||
|                           version ".tar.gz")) | ||||
|       (sha256 | ||||
|        (base32 | ||||
|         "1sa3ch12qxa4h3ya6hkz119yclcccmincl9j20dhrdx5mykp3b4k")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:patches (list (assoc-ref %build-inputs "patch/gets")))) | ||||
|     (inputs | ||||
|      `(("patch/gets" | ||||
|         ,(search-patch "gettext-gets-undeclared.patch")))) | ||||
|     (home-page | ||||
|      "http://www.gnu.org/software/gettext/") | ||||
|     (synopsis | ||||
|      "GNU gettext, a well integrated set of translation tools and documentation") | ||||
|     (description | ||||
|      "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 | ||||
| bit 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.") | ||||
|     (license "GPLv3"))) ; some files are under GPLv2+ | ||||
							
								
								
									
										77
									
								
								distro/packages/patches/gettext-gets-undeclared.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								distro/packages/patches/gettext-gets-undeclared.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,77 @@ | |||
| This patch is needed to allow builds with newer versions of | ||||
| the GNU libc (2.16+). | ||||
| 
 | ||||
| The upstream fix was: | ||||
| 
 | ||||
|   commit 66712c23388e93e5c518ebc8515140fa0c807348 | ||||
|   Author: Eric Blake <eblake@redhat.com> | ||||
|   Date:   Thu Mar 29 13:30:41 2012 -0600 | ||||
| 
 | ||||
|       stdio: don't assume gets any more | ||||
| 
 | ||||
|       Gnulib intentionally does not have a gets module, and now that C11 | ||||
|       and glibc have dropped it, we should be more proactive about warning | ||||
|       any user on a platform that still has a declaration of this dangerous | ||||
|       interface. | ||||
| 
 | ||||
|       * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets | ||||
|       support. | ||||
|       * modules/stdio (Makefile.am): Likewise. | ||||
|       * lib/stdio-read.c (gets): Likewise. | ||||
|       * tests/test-stdio-c++.cc: Likewise. | ||||
|       * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. | ||||
|       * lib/stdio.in.h (gets): Make warning occur in more places. | ||||
|       * doc/posix-functions/gets.texi (gets): Update documentation. | ||||
|       Reported by Christer Solskogen. | ||||
| 
 | ||||
|       Signed-off-by: Eric Blake <eblake@redhat.com> | ||||
| 
 | ||||
| This patch just gets rid of the offending part. | ||||
| 
 | ||||
| --- gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h-orig	2012-11-24 01:13:14.000000000 +0400
 | ||||
| +++ gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h		2012-11-24 01:13:46.000000000 +0400
 | ||||
| @@ -137,12 +137,6 @@
 | ||||
|                   "use gnulib module fflush for portable POSIX compliance"); | ||||
|  #endif | ||||
|   | ||||
| -/* It is very rare that the developer ever has full control of stdin,
 | ||||
| -   so any use of gets warrants an unconditional warning.  Assume it is
 | ||||
| -   always declared, since it is required by C89.  */
 | ||||
| -#undef gets
 | ||||
| -_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 | ||||
| -
 | ||||
|  #if @GNULIB_FOPEN@ | ||||
|  # if @REPLACE_FOPEN@ | ||||
|  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||||
| 
 | ||||
| --- gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h-orig	2012-11-24 00:26:49.000000000 +0400
 | ||||
| +++ gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h		2012-11-24 00:45:54.000000000 +0400
 | ||||
| @@ -137,12 +137,6 @@
 | ||||
|                   "use gnulib module fflush for portable POSIX compliance"); | ||||
|  #endif | ||||
|   | ||||
| -/* It is very rare that the developer ever has full control of stdin,
 | ||||
| -   so any use of gets warrants an unconditional warning.  Assume it is
 | ||||
| -   always declared, since it is required by C89.  */
 | ||||
| -#undef gets
 | ||||
| -_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 | ||||
| -
 | ||||
|  #if @GNULIB_FOPEN@ | ||||
|  # if @REPLACE_FOPEN@ | ||||
|  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||||
| 
 | ||||
| --- gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h-orig	2012-11-24 01:00:26.000000000 +0400
 | ||||
| +++ gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h		2012-11-24 01:00:53.000000000 +0400
 | ||||
| @@ -137,12 +137,6 @@
 | ||||
|                   "use gnulib module fflush for portable POSIX compliance"); | ||||
|  #endif | ||||
|   | ||||
| -/* It is very rare that the developer ever has full control of stdin,
 | ||||
| -   so any use of gets warrants an unconditional warning.  Assume it is
 | ||||
| -   always declared, since it is required by C89.  */
 | ||||
| -#undef gets
 | ||||
| -_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 | ||||
| -
 | ||||
|  #if @GNULIB_FOPEN@ | ||||
|  # if @REPLACE_FOPEN@ | ||||
|  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||||
		Reference in a new issue