summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiovanni Santini2015-07-15 14:08:47 +0200
committerGiovanni Santini2015-07-15 14:08:47 +0200
commit04a7f7d78717d8aafc6fcc0e29f148898ec89c51 (patch)
tree14c65faf63fa7000b25c10a26876d809cd5af40d
downloadaur-04a7f7d78717d8aafc6fcc0e29f148898ec89c51.tar.gz
Initial AUR release
-rw-r--r--.SRCINFO28
-rw-r--r--PKGBUILD56
-rw-r--r--fix_buggy_msgunfmt3.patch76
-rw-r--r--gettext.install22
4 files changed, 182 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..e4a263dd2da6
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,28 @@
+pkgbase = gettext-java
+ pkgdesc = GNU internationalization library - Java libraries
+ pkgver = 0.19.4
+ pkgrel = 1
+ url = http://www.gnu.org/software/gettext/
+ install = gettext.install
+ arch = i686
+ arch = x86_64
+ groups = base
+ groups = base-devel
+ license = GPL
+ makedepends = java-environment
+ depends = gcc-libs
+ depends = acl
+ depends = sh
+ depends = glib2
+ depends = libunistring
+ optdepends = git: for autopoint infrastructure updates
+ options = !docs
+ source = ftp://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.4.tar.gz
+ source = ftp://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.4.tar.gz.sig
+ source = fix_buggy_msgunfmt3.patch
+ md5sums = d3511af1e604a3478900d2c2b4a4a48e
+ md5sums = SKIP
+ md5sums = d80847a08b5c6566a3ef940c52347d37
+
+pkgname = gettext-java
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..9c6f171638c8
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,56 @@
+# Maintainer: Giovanni Santini <giovannisantini93@yahoo.it>
+# Based mainly on original 'gettext' PKGBUILD
+
+pkgname=gettext-java
+_pkgbase=gettext
+pkgver=0.19.4
+pkgrel=1
+pkgdesc="GNU internationalization library - Java libraries"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gettext/"
+license=('GPL')
+groups=('base' 'base-devel')
+depends=('gcc-libs' 'acl' 'sh' 'glib2' 'libunistring')
+makedepends=('java-environment')
+optdepends=('git: for autopoint infrastructure updates')
+options=(!docs)
+install=gettext.install
+source=(ftp://ftp.gnu.org/pub/gnu/gettext/${_pkgbase}-${pkgver}.tar.gz{,.sig}
+ fix_buggy_msgunfmt3.patch)
+md5sums=('d3511af1e604a3478900d2c2b4a4a48e'
+ 'SKIP'
+ 'd80847a08b5c6566a3ef940c52347d37')
+validpgpkeys=('462225C3B46F34879FC8496CD605848ED7E69871') # Daiki Ueno
+
+prepare() {
+ # Fixing an error in 'make check', see patch headers
+ cd "${srcdir}/${_pkgbase}-${pkgver}"
+ patch -Np1 -i "$srcdir/fix_buggy_msgunfmt3.patch"
+
+ # Do a dirty installation: install files in a temporary
+ # directory and install them there, then package just new stuff
+ mkdir -p "${srcdir}/temp"
+}
+
+build() {
+ cd "${srcdir}/${_pkgbase}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "${srcdir}/${_pkgbase}-${pkgver}"
+ make -j1 -k check
+}
+
+package() {
+ cd "${srcdir}/${_pkgbase}-${pkgver}"
+ # New stuff from here
+ # Install in the junk directory, not pkgdir
+ make DESTDIR="${srcdir}/temp" install
+ # Now move just what we need
+ install -Dm644 "${srcdir}/temp/usr/share/gettext/gettext.jar" "$pkgdir/usr/share/gettext/gettext.jar"
+ install -Dm644 "${srcdir}/temp/usr/share/gettext/libintl.jar" "$pkgdir/usr/share/gettext/libintl.jar"
+ # Remove junk directory
+ rm -r "${srcdir}/temp/"
+}
diff --git a/fix_buggy_msgunfmt3.patch b/fix_buggy_msgunfmt3.patch
new file mode 100644
index 000000000000..2aea9a5ee0b8
--- /dev/null
+++ b/fix_buggy_msgunfmt3.patch
@@ -0,0 +1,76 @@
+From: Giovanni Santini <giovannisantini93@yahoo.it>
+Just fixed the patch for building against official PKGBUILD.
+See below for original patch infos.
+
+From 5d3eeaa0d3b7f4f6932bd29d859925a940b69459 Mon Sep 17 00:00:00 2001
+From: Daiki Ueno <ueno@gnu.org>
+Date: Wed, 11 Mar 2015 07:18:26 +0000
+Subject: msgunfmt: Check allocated size for static segment
+
+Reported by Max Lin in:
+http://lists.gnu.org/archive/html/bug-gettext/2015-03/msg00005.html
+* read-mo.c (get_sysdep_string): Check if the embedded segment
+size is valid, before adding it to the string length.
+---
+diff -ur a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog
+--- a/gettext-tools/src/ChangeLog 2014-12-24 07:32:59.000000000 +0100
++++ b/gettext-tools/src/ChangeLog 2015-07-15 11:10:47.253402348 +0200
+@@ -1,3 +1,11 @@
++2015-03-11 Daiki Ueno <ueno@gnu.org>
++
++ msgunfmt: Check allocated size for static segment
++ Reported by Max Lin in:
++ http://lists.gnu.org/archive/html/bug-gettext/2015-03/msg00005.html
++ * read-mo.c (get_sysdep_string): Check if the embedded segment
++ size is valid, before adding it to the string length.
++
+ 2014-12-24 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19.4 released.
+diff -ur a/gettext-tools/src/read-mo.c b/gettext-tools/src/read-mo.c
+--- a/gettext-tools/src/read-mo.c 2014-12-09 09:43:46.000000000 +0100
++++ b/gettext-tools/src/read-mo.c 2015-07-15 11:15:24.563676393 +0200
+@@ -149,6 +149,7 @@
+ nls_uint32 s_offset;
+
+ /* Compute the length. */
++ s_offset = get_uint32 (bfp, offset);
+ length = 0;
+ for (i = 4; ; i += 8)
+ {
+@@ -158,9 +159,14 @@
+ nls_uint32 ss_length;
+ nls_uint32 ss_offset;
+ size_t ss_end;
++ size_t s_end;
+ size_t n;
+
++ s_end = xsum (s_offset, segsize);
++ if (size_overflow_p (s_end) || s_end > bfp->size)
++ error (EXIT_FAILURE, 0, _("file \"%s\" is truncated"), bfp->filename);
+ length += segsize;
++ s_offset += segsize;
+
+ if (sysdepref == SEGMENTS_END)
+ break;
+@@ -175,7 +181,7 @@
+ ss_end = xsum (ss_offset, ss_length);
+ if (size_overflow_p (ss_end) || ss_end > bfp->size)
+ error (EXIT_FAILURE, 0, _("file \"%s\" is truncated"), bfp->filename);
+- if (!(ss_length > 0 && bfp->data[ss_offset + ss_length - 1] == '\0'))
++ if (!(ss_length > 0 && bfp->data[ss_end - 1] == '\0'))
+ {
+ char location[30];
+ sprintf (location, "sysdep_segment[%u]", (unsigned int) sysdepref);
+@@ -198,11 +204,8 @@
+ nls_uint32 sysdep_segment_offset;
+ nls_uint32 ss_length;
+ nls_uint32 ss_offset;
+- size_t s_end = xsum (s_offset, segsize);
+ size_t n;
+
+- if (size_overflow_p (s_end) || s_end > bfp->size)
+- error (EXIT_FAILURE, 0, _("file \"%s\" is truncated"), bfp->filename);
+ memcpy (p, bfp->data + s_offset, segsize);
+ p += segsize;
+ s_offset += segsize;
diff --git a/gettext.install b/gettext.install
new file mode 100644
index 000000000000..0ff52942fd09
--- /dev/null
+++ b/gettext.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(gettext.info.gz autosprintf.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et: