Github messages for voidlinux
 help / color / Atom feed
From: voidlinux-github@inbox.vuxu.org
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] [NO MERGE] man-db: add system account _man:_man
Date: Mon, 11 Nov 2019 03:37:10 +0100
Message-ID: <20191111023710.0vi6dmb8HY2xJ68s6YMGOHQfYZbV2asvex4qq_-ElFw@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-15737@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 408 bytes --]

There is an updated pull request by zdtcd against master on the void-packages repository

https://github.com/zdtcd/void-packages man-db
https://github.com/void-linux/void-packages/pull/15737

[NO MERGE] man-db: add system account _man:_man
man-db complains that:
> mandb: the setuid man user "man" does not exist

A patch file from https://github.com/void-linux/void-packages/pull/15737.patch is attached

[-- Warning: decoded text below may be mangled --]
[-- Attachment #2: github-pr-man-db-15737.patch --]
[-- Type: text/x-diff, Size: 5292 bytes --]

From 2077dab43c7b98e0f3a85f582404f767d12f9db2 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Wed, 23 Oct 2019 08:18:33 +0700
Subject: [PATCH] man-db: add system account _man:_man

man-db complains that:
> mandb: the setuid man user "man" does not exist

While we're at it, patch man-db to not use glibc iconv's extension on
musl.
---
 srcpkgs/man-db/files/man-db.cron-daily        |  9 ++-
 .../patches/guard-glibc-iconv-ext.patch       | 59 +++++++++++++++++++
 srcpkgs/man-db/template                       | 18 +++---
 3 files changed, 73 insertions(+), 13 deletions(-)
 create mode 100644 srcpkgs/man-db/patches/guard-glibc-iconv-ext.patch

diff --git a/srcpkgs/man-db/files/man-db.cron-daily b/srcpkgs/man-db/files/man-db.cron-daily
index 6953b76560f..a602972b400 100755
--- a/srcpkgs/man-db/files/man-db.cron-daily
+++ b/srcpkgs/man-db/files/man-db.cron-daily
@@ -4,11 +4,10 @@
 # man-db cron daily
 set -e
 
-if ! [ -d /var/cache/man ]; then
-    # Recover from deletion, per FHS.
-    mkdir -p /var/cache/man
-    chmod 755 /var/cache/man
-fi
+# Recover from deletion, per FHS.
+mkdir -p /var/cache/man
+chown _man:_man /var/cache/man
+chmod 755 /var/cache/man
 
 # regenerate man database
 /usr/bin/mandb --quiet
diff --git a/srcpkgs/man-db/patches/guard-glibc-iconv-ext.patch b/srcpkgs/man-db/patches/guard-glibc-iconv-ext.patch
new file mode 100644
index 00000000000..bbf7b26ff11
--- /dev/null
+++ b/srcpkgs/man-db/patches/guard-glibc-iconv-ext.patch
@@ -0,0 +1,59 @@
+ src/manconv.c        | 7 ++++++-
+ src/manconv_client.c | 4 ++++
+ src/whatis.c         | 4 ++++
+ 3 files changed, 14 insertions(+), 1 deletion(-)
+
+diff --git src/manconv.c src/manconv.c
+index b9ac8d3a..8f5bdaee 100644
+--- src/manconv.c
++++ src/manconv.c
+@@ -111,9 +111,14 @@ static int try_iconv (pipeline *p, const char *try_from_code, const char *to,
+ 	iconv_t cd_utf8, cd = NULL;
+ 	bool 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";
+ 	bool ignore_errors = (strstr (try_to_code, "//IGNORE") != NULL);
+ 	int ret = 0;
++#ifdef __GLIBC__
++	const char *utf8_target = last ? "UTF-8//IGNORE" : "UTF-8";
++#else /* __GLIBC__ */
++	const char *utf8_target = "UTF-8";
++	last = false;
++#endif /* ! __GLIBC__ */
+ 
+ 	debug ("trying encoding %s -> %s\n", try_from_code, try_to_code);
+ 
+diff --git src/manconv_client.c src/manconv_client.c
+index 0c41bec6..2a7f1398 100644
+--- src/manconv_client.c
++++ src/manconv_client.c
+@@ -102,7 +102,11 @@ void add_manconv (pipeline *p, const char *source, const char *target)
+ 		gl_list_add_last (codes->from, xstrdup (source));
+ 		name = appendstr (name, "UTF-8:", source, (void *) 0);
+ 	}
++#ifdef __GLIBC__
+ 	codes->to = xasprintf ("%s//IGNORE", target);
++#else /* __GLIBC__ */
++	codes->to = xasprintf ("%s", target);
++#endif /* ! __GLIBC__ */
+ 	/* informational only; no shell quoting concerns */
+ 	name = appendstr (name, " -t ", codes->to, (void *) 0);
+ 	if (quiet >= 2)
+diff --git src/whatis.c src/whatis.c
+index d2559169..ec80c117 100644
+--- src/whatis.c
++++ src/whatis.c
+@@ -945,9 +945,13 @@ int main (int argc, char *argv[])
+ 	display_seen = new_string_set (GL_HASH_SET);
+ 
+ #ifdef HAVE_ICONV
++#ifdef __GLIBC__
+ 	locale_charset = xasprintf ("%s//IGNORE", get_locale_charset ());
+ 	conv_to_locale = iconv_open (locale_charset, "UTF-8");
+ 	free (locale_charset);
++#else /* __GLIBC__ */
++	conv_to_locale = iconv_open(get_locale_charset (), "UTF-8");
++#endif /* ! __GLIBC__ */
+ #endif /* HAVE_ICONV */
+ 
+ 	if (regex_opt) {
diff --git a/srcpkgs/man-db/template b/srcpkgs/man-db/template
index dfc483c3ea8..c5071c0c6ec 100644
--- a/srcpkgs/man-db/template
+++ b/srcpkgs/man-db/template
@@ -1,13 +1,14 @@
 # Template file for 'man-db'
 pkgname=man-db
 version=2.9.0
-revision=1
+revision=2
 build_style=gnu-configure
 configure_args="--with-db=db --with-pager=less --with-gzip=/usr/bin/gzip
  --with-bzip2=/usr/bin/bzip2 --disable-rpath --enable-threads=posix
  --with-lzma=/usr/bin/lzma --with-xz=/usr/bin/xz --disable-setuid
  --without-included-regex --enable-automatic-create --with-libseccomp
- --without-systemdsystemunitdir --without-systemdtmpfilesdir"
+ --without-systemdsystemunitdir --without-systemdtmpfilesdir
+ --enable-cache-owner=_man"
 hostmakedepends="groff pkg-config"
 makedepends="db-devel gettext-devel groff libpipeline-devel libseccomp-devel
  zlib-devel"
@@ -21,6 +22,9 @@ distfiles="${NONGNU_SITE}/${pkgname}/${pkgname}-${version}.tar.xz"
 checksum=5d4aacd9e8876d6a3203a889860c3524c293c38f04111a3350deab8a6cd3e261
 provides="man-0_1"
 lib32disabled=yes
+system_accounts="_man"
+_man_homedir="/var/cache/man"
+make_dirs="/var/cache/man 0755 _man _man"
 
 alternatives="
  man:man:/usr/bin/mandb-man
@@ -30,12 +34,10 @@ alternatives="
  man:whatis.1:/usr/share/man/man1/mandb-whatis.1
  man:apropos.1:/usr/share/man/man1/mandb-apropos.1"
 
-pre_configure() {
-	case "$XBPS_TARGET_MACHINE" in
-		*-musl) CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/gettext"
-			LDFLAGS+=" -lintl";;
-	esac
-}
+case "$XBPS_TARGET_MACHINE" in
+	*-musl) CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/gettext"
+		LDFLAGS+=" -lintl";;
+esac
 
 post_install() {
 	# Rename files for alternatives

      parent reply index

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-23 13:43 [PR PATCH] man-db: add system account man:man voidlinux-github
2019-10-31  1:13 ` [PR PATCH] [Updated] " voidlinux-github
2019-10-31  1:13 ` voidlinux-github
2019-10-31 14:14 ` voidlinux-github
2019-11-01  0:43 ` voidlinux-github
2019-11-01  0:45 ` [PR PATCH] [Updated] " voidlinux-github
2019-11-01  0:45 ` voidlinux-github
2019-11-01  0:49 ` voidlinux-github
2019-11-10 10:08 ` [PR PATCH] [Updated] " voidlinux-github
2019-11-11  2:37 ` voidlinux-github [this message]

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191111023710.0vi6dmb8HY2xJ68s6YMGOHQfYZbV2asvex4qq_-ElFw@z \
    --to=voidlinux-github@inbox.vuxu.org \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Github messages for voidlinux

Archives are clonable: git clone --mirror http://inbox.vuxu.org/voidlinux-github

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.github.voidlinux


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git