summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2018-02-01 16:56:21 -0600
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2018-02-01 16:56:21 -0600
commit707c5f3794d557c53612cb72f0e910f45d32b508 (patch)
treeb3567ac09a35a9dff3cb6bda42b365131ef36d18
parentd09f7ffc44977b8f68b0c0b530ea12c8b545abc9 (diff)
downloadpackages-707c5f3794d557c53612cb72f0e910f45d32b508.tar.gz
packages-707c5f3794d557c53612cb72f0e910f45d32b508.tar.bz2
packages-707c5f3794d557c53612cb72f0e910f45d32b508.tar.xz
packages-707c5f3794d557c53612cb72f0e910f45d32b508.zip
user/man-db: fix iconv crap (thanks @smaeul)
-rw-r--r--user/man-db/APKBUILD8
-rw-r--r--user/man-db/man-db-2.7.5-iconv.patch75
2 files changed, 80 insertions, 3 deletions
diff --git a/user/man-db/APKBUILD b/user/man-db/APKBUILD
index 32e688455..ff748ba3f 100644
--- a/user/man-db/APKBUILD
+++ b/user/man-db/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=man-db
pkgver=2.7.6.1
-pkgrel=1
+pkgrel=2
pkgdesc="The man command and related utilities for examining on-line help files"
url="http://www.nongnu.org/man-db/"
arch="all"
@@ -12,7 +12,8 @@ makedepends="db-dev gettext-dev libpipeline-dev zlib-dev"
subpackages="$pkgname-lang $pkgname-doc"
options="!check" # requires //IGNORE in iconv
source="http://download.savannah.nongnu.org/releases/man-db/man-db-$pkgver.tar.xz
- man-db.trigger"
+ man-db.trigger
+ man-db-2.7.5-iconv.patch"
triggers="man-db.trigger=/usr/share/man"
build() {
@@ -44,4 +45,5 @@ package() {
}
sha512sums="623c5e7f8b7c289908b2c926f8777293b8d39aeceef0d2509d701a8b0bfa81408650f655c8608318221786c751a79ee91124b07993de5298cd7fa6d8bb737301 man-db-2.7.6.1.tar.xz
-0d2ab0b42888178ffb83c5dd5eaac8005f047de56af55eb3046291318fd8ed8c4999a4ea0148367ea07c0a0490eb8b9bc726a03b46533ef51bec6a5747719b64 man-db.trigger"
+0d2ab0b42888178ffb83c5dd5eaac8005f047de56af55eb3046291318fd8ed8c4999a4ea0148367ea07c0a0490eb8b9bc726a03b46533ef51bec6a5747719b64 man-db.trigger
+bdf53b2868eb0652f8ca5bec340736a1923b52921bc1a33bde691f005be937f0a01dd32ff46d04ba956aa9c05b2cf276a03877de6c5fd1d997c4a5b029f330e2 man-db-2.7.5-iconv.patch"
diff --git a/user/man-db/man-db-2.7.5-iconv.patch b/user/man-db/man-db-2.7.5-iconv.patch
new file mode 100644
index 000000000..24fea8872
--- /dev/null
+++ b/user/man-db/man-db-2.7.5-iconv.patch
@@ -0,0 +1,75 @@
+diff --git man-db-2.7.5/src/man.c man-db-fixed/src/man.c
+index bea684f..df5f5cb 100644
+--- man-db-2.7.5/src/man.c
++++ man-db-fixed/src/man.c
+@@ -1503,11 +1503,9 @@ static void add_output_iconv (pipeline *p,
+ {
+ debug ("add_output_iconv: source %s, target %s\n", source, target);
+ if (source && target && !STREQ (source, target)) {
+- char *target_translit = xasprintf ("%s//TRANSLIT", target);
+ pipeline_command_args (p, "iconv", "-c",
+- "-f", source, "-t", target_translit,
++ "-f", source, "-t", target,
+ NULL);
+- free (target_translit);
+ }
+ }
+
+diff --git man-db-2.7.5/src/manconv.c man-db-fixed/src/manconv.c
+index cae9b67..48b7a81 100644
+--- man-db-2.7.5/src/manconv.c
++++ man-db-fixed/src/manconv.c
+@@ -106,10 +106,9 @@ static int try_iconv (pipeline *p, const char *try_from_code, const char *to,
+ static char *utf8 = NULL, *output = NULL;
+ size_t utf8left = 0;
+ iconv_t cd_utf8, cd = NULL;
+- int to_utf8 = STREQ (try_to_code, "UTF-8") ||
+- STRNEQ (try_to_code, "UTF-8//", 7);
+- const char *utf8_target = last ? "UTF-8//IGNORE" : "UTF-8";
+- int ignore_errors = (strstr (try_to_code, "//IGNORE") != NULL);;
++ int to_utf8 = STREQ (try_to_code, "UTF-8");
++ const char *utf8_target = "UTF-8";
++ int ignore_errors = 0;
+ int ret = 0;
+
+ debug ("trying encoding %s -> %s\n", try_from_code, try_to_code);
+diff --git man-db-2.7.5/src/manconv_client.c man-db-fixed/src/manconv_client.c
+index 2949c75..7805f90 100644
+--- man-db-2.7.5/src/manconv_client.c
++++ man-db-fixed/src/manconv_client.c
+@@ -131,7 +131,7 @@ void add_manconv (pipeline *p, const char *source, const char *target)
+ codes->from[2] = NULL;
+ name = appendstr (name, "UTF-8:", source, NULL);
+ }
+- codes->to = xasprintf ("%s//IGNORE", target);
++ codes->to = xstrdup (target);
+ /* informational only; no shell quoting concerns */
+ name = appendstr (name, " -t ", codes->to, NULL);
+ if (quiet >= 2)
+diff --git man-db-2.7.5/src/manconv_main.c man-db-fixed/src/manconv_main.c
+index 166a2b8..4e700e9 100644
+--- man-db-2.7.5/src/manconv_main.c
++++ man-db-fixed/src/manconv_main.c
+@@ -105,9 +105,6 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
+ return 0;
+ case 't':
+ to_code = xstrdup (arg);
+- if (!strstr (to_code, "//"))
+- to_code = appendstr (to_code, "//TRANSLIT",
+- NULL);
+ return 0;
+ case 'd':
+ debug_level = 1;
+diff --git man-db-2.7.5/src/whatis.c man-db-fixed/src/whatis.c
+index 39aa093..0a25c92 100644
+--- man-db-2.7.5/src/whatis.c
++++ man-db-fixed/src/whatis.c
+@@ -948,7 +948,7 @@ int main (int argc, char *argv[])
+ display_seen = hashtable_create (&null_hashtable_free);
+
+ #ifdef HAVE_ICONV
+- locale_charset = xasprintf ("%s//IGNORE", get_locale_charset ());
++ locale_charset = xstrdup (get_locale_charset ());
+ conv_to_locale = iconv_open (locale_charset, "UTF-8");
+ free (locale_charset);
+ #endif /* HAVE_ICONV */