[arch-commits] Commit in gettext/trunk (PKGBUILD gettext-0.19.8-its-segfault.patch)

Jan Steffens heftig at archlinux.org
Thu Apr 5 21:02:57 UTC 2018


    Date: Thursday, April 5, 2018 @ 21:02:56
  Author: heftig
Revision: 320988

Overhaul

Added:
  gettext/trunk/gettext-0.19.8-its-segfault.patch
Modified:
  gettext/trunk/PKGBUILD

-----------------------------------+
 PKGBUILD                          |   47 ++++++++++++++++++++++++------------
 gettext-0.19.8-its-segfault.patch |   43 ++++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+), 15 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-04-05 20:34:56 UTC (rev 320987)
+++ PKGBUILD	2018-04-05 21:02:56 UTC (rev 320988)
@@ -5,30 +5,47 @@
 pkgver=0.19.8.1
 pkgrel=2
 pkgdesc="GNU internationalization library"
-arch=('x86_64')
-url="http://www.gnu.org/software/gettext/"
-license=('GPL')
-groups=('base' 'base-devel')
-depends=('gcc-libs' 'acl' 'sh' 'glib2' 'libunistring')
+url="https://www.gnu.org/software/gettext/"
+arch=(x86_64)
+license=(GPL)
+groups=(base base-devel)
+depends=(gcc-libs acl sh glib2 libunistring libcroco)
+makedepends=(gettext emacs git)
 optdepends=('git: for autopoint infrastructure updates')
 options=(!docs)
-source=(ftp://ftp.gnu.org/pub/gnu/gettext/${pkgname}-${pkgver}.tar.gz{,.sig})
-validpgpkeys=('462225C3B46F34879FC8496CD605848ED7E69871') # Daiki Ueno
+source=(https://ftp.gnu.org/pub/gnu/gettext/$pkgname-$pkgver.tar.gz{,.sig}
+        gettext-0.19.8-its-segfault.patch)
+sha256sums=('ff942af0e438ced4a8b0ea4b0b6e0d6d657157c5e2364de57baa279c1c125c43'
+            'SKIP'
+            '0e3b19ea94e956a6a484ca4c4ecea32a01a83f10a413e586183de464c51f158d')
+validpgpkeys=('462225C3B46F34879FC8496CD605848ED7E69871')  # Daiki Ueno
 
+prepare() {
+  cd $pkgname-$pkgver
+  patch -Np1 -i ../gettext-0.19.8-its-segfault.patch
+}
+
 build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr
+  cd $pkgname-$pkgver
+  ./configure \
+    --prefix=/usr \
+    --enable-csharp \
+    --enable-nls \
+    --with-xz \
+    --without-included-gettext
+
+  sed -e 's/ -shared / -Wl,-O1,--as-needed\0/g' \
+      -i gettext-{tools,runtime,runtime/libasprintf}/libtool
+
   make
 }
 
 check() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  make -j1 -k check
+  cd $pkgname-$pkgver
+  make check
 }
 
 package() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  make DESTDIR="${pkgdir}" install
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
 }
-md5sums=('97e034cf8ce5ba73a28ff6c3c0638092'
-         'SKIP')

Added: gettext-0.19.8-its-segfault.patch
===================================================================
--- gettext-0.19.8-its-segfault.patch	                        (rev 0)
+++ gettext-0.19.8-its-segfault.patch	2018-04-05 21:02:56 UTC (rev 320988)
@@ -0,0 +1,43 @@
+From a0cab23332a254e3500cac2a3a984472d02180e5 Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno at clisp.org>
+Date: Fri, 9 Dec 2016 21:04:31 +0100
+Subject: [PATCH] Fix crash of xgettext with --its option.
+
+* gettext-tools/src/xgettext.c (main): Free contents of its_dirs only when it
+was initialized. Fixes bug introduced on 2016-05-16.
+---
+ gettext-tools/src/xgettext.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/gettext-tools/src/xgettext.c b/gettext-tools/src/xgettext.c
+index f848d76d1..a80ee51ac 100644
+--- a/gettext-tools/src/xgettext.c
++++ b/gettext-tools/src/xgettext.c
+@@ -330,7 +330,7 @@ main (int argc, char *argv[])
+   bool sort_by_msgid = false;
+   bool sort_by_filepos = false;
+   char **dirs;
+-  char **its_dirs;
++  char **its_dirs = NULL;
+   char *explicit_its_filename = NULL;
+   const char *file_name;
+   const char *files_from = NULL;
+@@ -1016,9 +1016,12 @@ warning: file '%s' extension '%s' is unknown; will try C"), filename, extension)
+   if (its_locating_rules)
+     locating_rule_list_free (its_locating_rules);
+ 
+-  for (i = 0; its_dirs[i] != NULL; i++)
+-    free (its_dirs[i]);
+-  free (its_dirs);
++  if (its_dirs != NULL)
++    {
++      for (i = 0; its_dirs[i] != NULL; i++)
++        free (its_dirs[i]);
++      free (its_dirs);
++    }
+ 
+   exit (EXIT_SUCCESS);
+ }
+-- 
+2.14.3
+



More information about the arch-commits mailing list