Bdale Garbee wrote:
I'm (finally) working on updating the gzip in Debian to something newer
than 1.6, which caused me to stumble over the addition of the do_chown
function in gzip.c. That's because I need to build both native Debian
and Windows binary packages, the latter in support of a portion of the
Debian installer system that has something to do with Windows.
The problem is that mingw doesn't provide uid_t or gid_t definitions,
perhaps just because there isn't really an equivalent ownership
construct in Windows?
Yes, that must be it. I installed the attached into gzip master on Savannah;
does it fix things for you?
From 5405b4046acf80744caf2ba666128f25047b6411 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Sun, 29 Jul 2018 11:27:32 -0700
Subject: [PATCH] gzip: port better to mingw
Problem reported by Bdale Garbee for Debian
* gzip.c (do_chown): Don't assume uid_t and gid_t.
---
gzip.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/gzip.c b/gzip.c
index 429e554..a023d81 100644
--- a/gzip.c
+++ b/gzip.c
@@ -1914,17 +1914,20 @@ local int check_ofname()
the file and NAME its name. Change it to user UID and to group GID.
If UID or GID is -1, though, do not change the corresponding user
or group. */
+#ifdef NO_CHOWN
+/* The types uid_t and gid_t do not exist on mingw, so don't assume them. */
+# define do_chown(fd, name, uid, gid) ((void) 0)
+#else
static void
do_chown (int fd, char const *name, uid_t uid, gid_t gid)
{
-#ifndef NO_CHOWN
# if HAVE_FCHOWN
ignore_value (fchown (fd, uid, gid));
# else
ignore_value (chown (name, uid, gid));
# endif
-#endif
}
+#endif
/* ========================================================================
* Copy modes, times, ownership from input file to output file.
--
2.7.4