Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package man for openSUSE:Factory checked in at 2026-02-27 17:02:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/man (Old) and /work/SRC/openSUSE:Factory/.man.new.29461 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "man" Fri Feb 27 17:02:19 2026 rev:109 rq:1334927 version:2.13.1 Changes: -------- --- /work/SRC/openSUSE:Factory/man/man.changes 2026-01-12 10:23:48.695623284 +0100 +++ /work/SRC/openSUSE:Factory/.man.new.29461/man.changes 2026-02-27 17:04:29.142634462 +0100 @@ -1,0 +2,6 @@ +Tue Feb 24 13:51:11 UTC 2026 - Dr. Werner Fink <[email protected]> + +- Update man-db-2.7.1-zio.dif + * Use fdzopen as well to make libzio used overall + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ man.spec ++++++ --- /var/tmp/diff_new_pack.RZZdK8/_old 2026-02-27 17:04:31.714740887 +0100 +++ /var/tmp/diff_new_pack.RZZdK8/_new 2026-02-27 17:04:31.726741383 +0100 @@ -68,7 +68,7 @@ BuildRequires: less BuildRequires: libalternatives-devel BuildRequires: libpipeline-devel >= 1.5.0 -BuildRequires: libzio-devel +BuildRequires: libzio-devel >= 1.12 BuildRequires: lzip BuildRequires: man-pages BuildRequires: pkgconfig ++++++ man-db-2.7.1-zio.dif ++++++ --- /var/tmp/diff_new_pack.RZZdK8/_old 2026-02-27 17:04:31.846746349 +0100 +++ /var/tmp/diff_new_pack.RZZdK8/_new 2026-02-27 17:04:31.858746845 +0100 @@ -1,11 +1,17 @@ +From 38f0cfb1f79c7f5df6a9ea58e51b2b38e1b56a40 Mon Sep 17 00:00:00 2001 +From: Werner Fink <[email protected]> +Date: Thu, 19 Feb 2026 14:11:04 +0100 +Subject: [PATCH] Patch for libzio usage + +Signed-off-by: Werner Fink <[email protected]> --- config.h.in | 3 + - configure.ac | 52 +++++++++++++++++++++++++++++++++ - src/decompress.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- - 3 files changed, 138 insertions(+), 3 deletions(-) + configure.ac | 52 ++++++++++++++++++++++++ + src/decompress.c | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- + 3 files changed, 169 insertions(+), 5 deletions(-) --- config.h.in -+++ config.h.in 2024-11-11 10:43:01.369880933 +0000 ++++ config.h.in @@ -1148,6 +1148,9 @@ /* Define to 1 if you have the `z' library (-lz). */ #undef HAVE_LIBZ @@ -17,7 +23,7 @@ #undef HAVE_LIB_BCRYPT --- configure.ac -+++ configure.ac 2024-11-11 10:43:01.369880933 +0000 ++++ configure.ac @@ -35,6 +35,18 @@ MAN_ARG_DEVICE MAN_ARG_DB MAN_ARG_CONFIG_FILE @@ -37,7 +43,7 @@ MAN_ARG_AUTOMATIC_CREATE MAN_ARG_AUTOMATIC_UPDATE MAN_ARG_CATS -@@ -374,6 +386,46 @@ AC_DEFINE_UNQUOTED([PROG_UNXZ], ["$unxz" +@@ -374,6 +386,46 @@ AC_DEFINE_UNQUOTED([PROG_UNXZ], ["$unxz"], [Program to use as unxz.]) AC_DEFINE_UNQUOTED([PROG_UNLZIP], ["$unlzip"], [Program to use as unlzip.]) AC_DEFINE_UNQUOTED([PROG_UNZSTD], ["$unzstd"], [Program to use as unzstd.]) MAN_COMPRESS_LIB([z], [gzopen]) @@ -67,16 +73,16 @@ + AC_CHECK_LIB($lib, BZ2_bzopen, [LIBS="$LIBS -Wl,--no-as-needed -l$lib"; break]) + done + ]) -+ AC_CHECK_HEADER(lzmadec.h, [ -+ for lib in lzma lzmadec ++ AC_CHECK_HEADER(lzma.h, [ ++ for lib in lzma + do -+ AC_CHECK_LIB($lib, lzmadec_open, [LIBS="$LIBS -Wl,--no-as-needed -l$lib"; break]) ++ AC_CHECK_LIB($lib, lzma_easy_encoder, [LIBS="$LIBS -Wl,--no-as-needed -l$lib"; break]) + done + ]) -+ AC_CHECK_HEADER(lzma.h, [ -+ for lib in lzma ++ AC_CHECK_HEADER(zstd.h, [ ++ for lib in zstd + do -+ AC_CHECK_LIB($lib, lzma_easy_encoder, [LIBS="$LIBS -Wl,--no-as-needed -l$lib"; break]) ++ AC_CHECK_LIB($lib, ZSTD_createCCtx, [LIBS="$LIBS -Wl,--no-as-needed -l$lib"; break]) + done + ]) + fi @@ -85,8 +91,8 @@ # Check for various header files and associated libraries. --- src/decompress.c -+++ src/decompress.c 2024-11-11 10:44:24.036386441 +0000 -@@ -40,12 +40,17 @@ ++++ src/decompress.c +@@ -39,12 +39,17 @@ #include "pipeline.h" @@ -104,89 +110,138 @@ #include "manconfig.h" #include "compression.h" -@@ -146,7 +151,11 @@ static void decompress_zlib (void *data +@@ -99,6 +104,7 @@ static decompress *decompress_new_inprocess (char *buf, size_t len) + return d; + } + ++# ifndef HAVE_ZIO + static void decompress_zlib (void *data MAYBE_UNUSED) + { + gzFile zlibfile; +@@ -126,6 +132,7 @@ static void decompress_zlib (void *data MAYBE_UNUSED) + gzclose (zlibfile); + return; + } ++# endif + + /* The largest number of uncompressed bytes we're prepared to read into + * memory. (We actually allow at most one fewer byte than this, for easy +@@ -145,7 +152,11 @@ static void decompress_zlib (void *data MAYBE_UNUSED) static decompress *decompress_try_zlib (const char *filename) { -+#ifdef HAVE_ZIO ++# ifdef HAVE_ZIO + FILE *file; -+#else ++# else gzFile zlibfile; -+#endif ++# endif /* We only ever call this from the parent process (and don't * currently use threads), and this lets us skip per-file memory * allocation. -@@ -154,18 +163,32 @@ static decompress *decompress_try_zlib ( +@@ -153,18 +164,33 @@ static decompress *decompress_try_zlib (const char *filename) static char buffer[MAX_INPROCESS]; int len = 0; -+#ifdef HAVE_ZIO -+ file = fzopen(filename, "r"); ++# ifdef HAVE_ZIO ++ file = fzopen (filename, "r"); + if (!file) + return NULL; -+#else ++# else zlibfile = gzopen (filename, "r"); if (!zlibfile) return NULL; -+#endif ++# endif while (len < MAX_INPROCESS) { /* Read one more byte than we're prepared to return, in * order to detect EOF at the right position. The "len >= * MAX_INPROCESS" check below catches the boundary case. */ -+#ifdef HAVE_ZIO -+ int r = fread(buffer + len, sizeof(char), MAX_INPROCESS - len, file); -+#else ++# ifdef HAVE_ZIO ++ int r = fread (buffer + len, sizeof (char), ++ MAX_INPROCESS - len, file); ++# else int r = gzread (zlibfile, buffer + len, MAX_INPROCESS - len); -+#endif ++# endif if (r < 0) { -+#ifdef HAVE_ZIO -+ fclose(file); -+#else ++# ifdef HAVE_ZIO ++ fclose (file); ++# else gzclose (zlibfile); -+#endif ++# endif return NULL; } else if (r == 0) break; -@@ -173,7 +196,11 @@ static decompress *decompress_try_zlib ( +@@ -172,7 +198,11 @@ static decompress *decompress_try_zlib (const char *filename) len += r; } -+#ifdef HAVE_ZIO -+ fclose(file); -+#else ++# ifdef HAVE_ZIO ++ fclose (file); ++# else gzclose (zlibfile); -+#endif ++# endif if (len >= MAX_INPROCESS) return NULL; /* Copy input data so that we don't have potential data corruption -@@ -189,33 +216,86 @@ static decompress *decompress_try_zlib ( +@@ -188,33 +218,108 @@ static decompress *decompress_try_zlib (const char *filename) # define OPEN_FLAGS_UNUSED MAYBE_UNUSED #endif /* HAVE_LIBZ */ +#ifdef HAVE_ZIO +static void decompress_zio (void *data) +{ -+ const char *what = (const char*)data; ++ char *what = data; + FILE *file; -+ -+ file = fdzopen(dup (fileno (stdin)), "r", what); ++ ++ if (!what) ++ what = (char *) "n"; ++ ++ file = fdzopen (dup (fileno (stdin)), "r", what); + if (!file) + return; -+ ++ + for (;;) { -+ char buffer[4096]; -+ int r = fread(buffer, sizeof(char), sizeof(buffer), file); ++ char buffer[PIPE_BUF]; ++ int r = fread (buffer, sizeof (char), sizeof (buffer), file); + if (r <= 0) + break; + if (fwrite (buffer, 1, (size_t) r, stdout) < (size_t) r) + break; + } -+ -+ fclose(file); ++ ++ fclose (file); + return; +} ++ ++static int ATTRIBUTE_PURE which_decompressor (const char *filename) ++{ ++ const size_t len = strlen (filename); ++ struct l_s { ++ const char *ext; ++ size_t len; ++ int d; ++ } list[] = { ++ {"gz", 2, 'z' }, ++ {"z", 1, 'z' }, ++ {"Z", 1, 'Z' }, ++ {"bz2", 3, 'b' }, ++ {"xz", 2, 'x' }, ++ {"lzma", 4, 'l' }, ++ {"zst", 3, 's' }, ++ {"zstd", 4, 's' }, ++ {NULL, 0, '\0'}, ++ }; ++ struct l_s *l; ++ ++ for (l = list; l->ext; ++l) { ++ if (len > l->len && ++ STREQ (filename + (len - l->len), l->ext)) { ++ return (int) l->d; ++ } ++ } ++ return 'n'; ++} +#endif /* HAVE_ZIO */ + decompress *decompress_open (const char *filename, int flags OPEN_FLAGS_UNUSED) @@ -194,12 +249,13 @@ pipecmd *cmd; pipeline *p; struct stat st; ++ const char *ext; #ifdef HAVE_LIBZ -+# ifdef HAVE_ZIO -+ char *ext; -+# else ++# ifdef HAVE_ZIO ++ char opt[2] = {'\0', '\0'}; ++# else size_t filename_len; -+# endif ++# endif #endif /* HAVE_LIBZ */ - char *ext; struct compression *comp; @@ -208,49 +264,62 @@ return NULL; #ifdef HAVE_LIBZ -+# ifdef HAVE_ZIO -+ ext = strrchr (filename, '.'); -+ if (ext && ( -+ STREQ (ext, ".gz") || -+ STREQ (ext, ".z") || -+ STREQ (ext, ".bz2") || -+ STREQ (ext, ".xz") || -+ STREQ (ext, ".lzma") || -+ STREQ (ext, ".Z") -+ )) { -+# else ++# ifdef HAVE_ZIO ++ if ((opt[0] = which_decompressor (filename)) != 'n') { ++# else filename_len = strlen (filename); if (filename_len > 3 && STREQ (filename + filename_len - 3, ".gz")) { -+# endif ++# endif if (flags & DECOMPRESS_ALLOW_INPROCESS) { decompress *d = decompress_try_zlib (filename); if (d) return d; } - -+# ifdef HAVE_ZIO -+ static char opt[2] = {'\0','\0'}; ++# ifdef HAVE_ZIO + char *name = NULL; + -+ opt[0] = ext[1]; -+ + /* informational only; no shell quoting concerns */ -+ name = appendstr (NULL, "libzio < ", filename, (void *) 0); ++ name = appendstr (NULL, "zio<", filename, (void *) 0); + cmd = pipecmd_new_function (name, &decompress_zio, NULL, -+ (void *)opt); -+# else ++ (void *) opt); ++# else cmd = pipecmd_new_function ("zcat", &decompress_zlib, NULL, NULL); -+# endif ++# endif pipecmd_pre_exec (cmd, sandbox_load, sandbox_free, sandbox); p = pipeline_new_commands (cmd, nullptr); -+# ifdef HAVE_ZIO ++# ifdef HAVE_ZIO + free (name); -+# endif ++# endif goto got_pipeline; } #endif /* HAVE_LIBZ */ -@@ -313,7 +393,7 @@ void decompress_inprocess_replace (decom +@@ -235,9 +340,9 @@ decompress *decompress_open (const char *filename, int flags OPEN_FLAGS_UNUSED) + } + } + +-#ifdef HAVE_GZIP ++#if defined(HAVE_GZIP) && !defined(HAVE_ZIO) + /* HP-UX */ +- ext = strstr (filename, ".Z/"); ++ ext = strstr (filename, ".Z"); + if (ext) { + cmd = pipecmd_new_argstr (PROG_GUNZIP); + pipecmd_pre_exec (cmd, sandbox_load, sandbox_free, sandbox); +@@ -262,7 +367,11 @@ decompress *decompress_fdopen (int fd) + #endif /* HAVE_LIBZ */ + + #ifdef HAVE_LIBZ ++# ifdef HAVE_ZIO ++ cmd = pipecmd_new_function ("zio<", &decompress_zio, NULL, NULL); ++# else + cmd = pipecmd_new_function ("zcat", &decompress_zlib, NULL, NULL); ++# endif + pipecmd_pre_exec (cmd, sandbox_load, sandbox_free, sandbox); + p = pipeline_new_commands (cmd, nullptr); + #else /* HAVE_LIBZ */ +@@ -312,7 +421,7 @@ void decompress_inprocess_replace (decompress *d, char *buf, size_t len) void decompress_start (decompress *d) {
