aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2017-09-20 09:30:25 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2017-09-20 09:30:25 +0000
commit752eb06ec4f0fbfdbc0673d727ccf50a03a52b3d (patch)
treed5c80de3bbf13bc149731abe9a65e30b90113a99
parentc414927dc363f6d84ee20d51242c615aaf7b74d2 (diff)
downloadaports-752eb06ec4f0fbfdbc0673d727ccf50a03a52b3d.tar.bz2
aports-752eb06ec4f0fbfdbc0673d727ccf50a03a52b3d.tar.xz
main/musl: backport patch for _NL_LOCALE_NAME
needed by libidn testsuite https://github.com/alpinelinux/aports/pull/2320#issuecomment-330380719
-rw-r--r--main/musl/0001-add-_NL_LOCALE_NAME-extension-to-nl_langinfo.patch59
-rw-r--r--main/musl/APKBUILD4
2 files changed, 62 insertions, 1 deletions
diff --git a/main/musl/0001-add-_NL_LOCALE_NAME-extension-to-nl_langinfo.patch b/main/musl/0001-add-_NL_LOCALE_NAME-extension-to-nl_langinfo.patch
new file mode 100644
index 0000000000..68b941a3aa
--- /dev/null
+++ b/main/musl/0001-add-_NL_LOCALE_NAME-extension-to-nl_langinfo.patch
@@ -0,0 +1,59 @@
+From 947d330f68c49680dcc54439f56da2a297228962 Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Mon, 31 Jul 2017 23:08:27 -0400
+Subject: [PATCH] add _NL_LOCALE_NAME extension to nl_langinfo
+
+since setlocale(cat, NULL) is required to return the setting for the
+global locale, there is no standard mechanism to obtain the name of
+the currently active thread-local locale set by uselocale. this makes
+it impossible for application/library software to load appropriate
+translations, etc. unless using the gettext implementation provided by
+libc, which has privileged access to libc internals.
+
+to fill this gap, glibc introduced the _NL_LOCALE_NAME macro which can
+be used with nl_langinfo to obtain the name. GNU gettext/gnulib code
+already use this functionality on glibc, and can easily be adapted to
+make use of it on non-glibc systems if it's available; for other
+systems they poke at locale implementation internals, which we want to
+avoid. this patch provides a compatible interface to the one glibc
+introduced.
+---
+ include/langinfo.h | 6 ++++++
+ src/locale/langinfo.c | 4 ++++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/include/langinfo.h b/include/langinfo.h
+index 2153c42e..519c0612 100644
+--- a/include/langinfo.h
++++ b/include/langinfo.h
+@@ -77,6 +77,12 @@ extern "C" {
+ #define YESEXPR 0x50000
+ #define NOEXPR 0x50001
+
++#define _NL_LOCALE_NAME(cat) (((cat)<<16) | 0xffff)
++
++#if defined(_GNU_SOURCE)
++#define NL_LOCALE_NAME(cat) _NL_LOCALE_NAME(cat)
++#endif
++
+ #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+ #define YESSTR 0x50002
+ #define NOSTR 0x50003
+diff --git a/src/locale/langinfo.c b/src/locale/langinfo.c
+index b2c8569e..b16caf44 100644
+--- a/src/locale/langinfo.c
++++ b/src/locale/langinfo.c
+@@ -34,6 +34,10 @@ char *__nl_langinfo_l(nl_item item, locale_t loc)
+ const char *str;
+
+ if (item == CODESET) return MB_CUR_MAX==1 ? "ASCII" : "UTF-8";
++
++ /* _NL_LOCALE_NAME extension */
++ if (idx == 65535 && cat < LC_ALL)
++ return loc->cat[cat] ? (char *)loc->cat[cat]->name : "C";
+
+ switch (cat) {
+ case LC_NUMERIC:
+--
+2.14.1
+
diff --git a/main/musl/APKBUILD b/main/musl/APKBUILD
index 2e0387943b..cc5f3c86e9 100644
--- a/main/musl/APKBUILD
+++ b/main/musl/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=musl
pkgver=1.1.16
-pkgrel=19
+pkgrel=20
pkgdesc="the musl c library (libc) implementation"
url="http://www.musl-libc.org/"
arch="all"
@@ -79,6 +79,7 @@ source="http://www.musl-libc.org/releases/musl-$pkgver.tar.gz
2000-pthread-internals-increase-DEFAULT_GUARD_SIZE-to-2-p.patch
2001-thread-do-not-attempt-to-join-detached-threads-in-pt.patch
3001-s390x-add-bits-hwcap.h.patch
+ 0001-add-_NL_LOCALE_NAME-extension-to-nl_langinfo.patch
ldconfig
__stack_chk_fail_local.c
@@ -264,6 +265,7 @@ dde4bb6c877d4fdf976e3ffea5d0a4a48f365708c488ceeaa4dcc29296820517aebbfa3b0527d74d
2c8e1dde1834238097b2ee8a7bfb53471a0d9cff4a5e38b55f048b567deff1cdd47c170d0578a67b1a039f95a6c5fbb8cff369c75b6a3e4d7ed171e8e86ebb8c 2000-pthread-internals-increase-DEFAULT_GUARD_SIZE-to-2-p.patch
76330dfff60b2a8703ddc38f378995334ab0fa56e31e499937a4b4dfd8ff4a0bf1f8108174e8f863810de5cc28ff4c50656b886ee468605072bc55310a077624 2001-thread-do-not-attempt-to-join-detached-threads-in-pt.patch
9c87849e6a58f393aaf4fa7dca31a010a369d41b2f24cdde6af0303df0436e2ef2ca5b767b5584b93f5c9c98e200ac2a972688b8ce2838a5ff9b746982085bcb 3001-s390x-add-bits-hwcap.h.patch
+d725bb4990c5b2cdb88f6ecbe1f63895b29717c0ae3af60181588dd41cb10cd201f2faaade26f1abd31b568964a327131dad6f928717d953f44d7ef625ea8955 0001-add-_NL_LOCALE_NAME-extension-to-nl_langinfo.patch
8d3a2d5315fc56fee7da9abb8b89bb38c6046c33d154c10d168fb35bfde6b0cf9f13042a3bceee34daf091bc409d699223735dcf19f382eeee1f6be34154f26f ldconfig
062bb49fa54839010acd4af113e20f7263dde1c8a2ca359b5fb2661ef9ed9d84a0f7c3bc10c25dcfa10bb3c5a4874588dff636ac43d5dbb3d748d75400756d0b __stack_chk_fail_local.c
0d80f37b34a35e3d14b012257c50862dfeb9d2c81139ea2dfa101d981d093b009b9fa450ba27a708ac59377a48626971dfc58e20a3799084a65777a0c32cbc7d getconf.c