summaryrefslogtreecommitdiff
path: root/system/libidn
diff options
context:
space:
mode:
Diffstat (limited to 'system/libidn')
-rw-r--r--system/libidn/APKBUILD54
-rw-r--r--system/libidn/gnulib-tests-dont-require-gpg-passphrase.patch10
-rw-r--r--system/libidn/localename-test-fix.patch34
3 files changed, 98 insertions, 0 deletions
diff --git a/system/libidn/APKBUILD b/system/libidn/APKBUILD
new file mode 100644
index 000000000..5edbabdb2
--- /dev/null
+++ b/system/libidn/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Michael Mason <ms13sp@gmail.com>
+# Maintainer:
+pkgname=libidn
+pkgver=1.35
+pkgrel=0
+pkgdesc="Library for internationalized domain names"
+url="https://www.gnu.org/software/libidn/"
+arch="all"
+license="(GPL-2.0+ OR LGPL-3.0+) AND GPL-3.0+"
+depends=
+makedepends=
+checkdepends="diffutils"
+install=
+subpackages="$pkgname-doc $pkgname-dev $pkgname-lang"
+source="http://ftp.gnu.org/gnu/libidn/$pkgname-$pkgver.tar.gz
+ localename-test-fix.patch
+ gnulib-tests-dont-require-gpg-passphrase.patch
+ "
+
+builddir="$srcdir/$pkgname-$pkgver"
+
+# secfixes:
+# 1.33-r0:
+# - CVE-2015-8948
+# - CVE-2016-6261
+# - CVE-2016-6262
+# - CVE-2016-6263
+
+build() {
+ cd "$builddir"
+
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info
+ make
+}
+
+check() {
+ cd "$builddir"
+ make check
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="782260f73b1fd8ebea8a40e2b3a6866c4f67494b2b3df03748daa9c0f842a9578932e746eb4bbf2547fccb1d65d7fc99a7977759dbe58f87f2fdd26d0fe45a09 libidn-1.35.tar.gz
+ad470fa4015be1bfa61298cb0dafd3ca7f37d59308d371bd00449e9c899443d13c93f35a4c335d50ead489344f57fee2648a43a5f972a6d614e4a00b48fa3faf localename-test-fix.patch
+de8d47be61ac53364b5f8a7b12d1c16d5905805bd2405daf30a8022a3905a167cb6eddbe86faa518b98a3f315d8df8d541e6b248b46c539a4938e81a90b44852 gnulib-tests-dont-require-gpg-passphrase.patch"
diff --git a/system/libidn/gnulib-tests-dont-require-gpg-passphrase.patch b/system/libidn/gnulib-tests-dont-require-gpg-passphrase.patch
new file mode 100644
index 000000000..d32b0097d
--- /dev/null
+++ b/system/libidn/gnulib-tests-dont-require-gpg-passphrase.patch
@@ -0,0 +1,10 @@
+--- libidn-1.35/gltests/test-vc-list-files-git.sh.old 2018-01-03 18:36:29.000000000 -0600
++++ libidn-1.35/gltests/test-vc-list-files-git.sh 2018-06-18 21:57:08.305562148 -0500
+@@ -32,6 +32,7 @@
+ touch d/a b c &&
+ git config user.email "you@example.com" &&
+ git config user.name "Your Name" &&
++ git config commit.gpgsign false &&
+ git add . > /dev/null &&
+ git commit -q -a -m log &&
+ printf '%s\n' b c d/a > expected &&
diff --git a/system/libidn/localename-test-fix.patch b/system/libidn/localename-test-fix.patch
new file mode 100644
index 000000000..4b77c2a24
--- /dev/null
+++ b/system/libidn/localename-test-fix.patch
@@ -0,0 +1,34 @@
+--- libidn-1.33/lib/gltests/localename.c.old 2016-12-31 13:54:43.000000000 +0000
++++ libidn-1.33/lib/gltests/localename.c 2017-07-30 16:40:47.098541270 +0000
+@@ -40,7 +40,7 @@
+ # if defined __APPLE__ && defined __MACH__
+ # include <xlocale.h>
+ # endif
+-# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || defined __CYGWIN__
++# if defined __linux__
+ # include <langinfo.h>
+ # endif
+ # if !defined IN_LIBINTL
+@@ -2692,16 +2692,19 @@
+ locale_t thread_locale = uselocale (NULL);
+ if (thread_locale != LC_GLOBAL_LOCALE)
+ {
+-# if __GLIBC__ >= 2 && !defined __UCLIBC__
++# if defined(_NL_LOCALE_NAME)
++ const char *name = nl_langinfo(_NL_LOCALE_NAME(category));
++# if __GLIBC__ >= 2 && !defined __UCLIBC__
+ /* Work around an incorrect definition of the _NL_LOCALE_NAME macro in
+ glibc < 2.12.
+ See <https://sourceware.org/bugzilla/show_bug.cgi?id=10968>. */
+- const char *name =
+- nl_langinfo (_NL_ITEM ((category), _NL_ITEM_INDEX (-1)));
++ if (name[0] == '\0')
++ name = nl_langinfo (_NL_ITEM ((category), _NL_ITEM_INDEX (-1)));
+ if (name[0] == '\0')
+ /* Fallback code for glibc < 2.4, which did not implement
+ nl_langinfo (_NL_LOCALE_NAME (category)). */
+ name = thread_locale->__names[category];
++# endif
+ return name;
+ # elif (defined __FreeBSD__ || defined __DragonFly__) || (defined __APPLE__ && defined __MACH__)
+ /* FreeBSD, Mac OS X */