Hi Mark,
On Sat, Mar 14, 2026 at 01:57:21AM +0000, Mark Brown wrote:
> I tend to batch up a bunch of stuff approximately once per release cycle
> to collect all the random churn in debehlper and whatever, or when
> there's a new upstream release (as just happened), this fell off the
> list prior to the last release largely due to the difficulty I was
> having understanding the patch.
Your process does not work for me, because it does not address
regressions in a timely manner.
I normally try to send small patches, but in case of zlib I ended up
bundling a fair bit of cleanup. I recognize this is not your preference.
Quite clearly your process is also failing, so let us try a different
process. I will escalate this to the CTTE if this is not fixed within a
month and you continue to object to NMUs.
> Clearly explained patches would probably help more here than repeatedly
> chasing; TBH whenever I spend time replying to the chasing that mostly
> makes me remember that I've looked at the issue which probably isn't
> what you're hoping for.
Trust me, I don't like to chase you either. In fact, I did not chase you
for quite a long time. You caused the need for being chased, because you
did not reply to it for a long time and then kept deferring the matter
unconstructively. I could have easily fixed the issue if you had kept
being silent. It is now that you make it clear that the included cleanup
is your main objection.
I am now attaching the smallest of patches in two versions to fix the
problem. There are two hunks:
The first one adds -lz for linking miniunzip. This has been a latent
problem. miniunzip uses zlib symbols and therefore should be linking it.
If you look at the linker invocation of a native build, you see it
missing:
| /bin/bash ./libtool --tag=CC --mode=link gcc -g -O2
-Werror=implicit-function-declaration
-ffile-prefix-map=/build/reproducible-path/zlib-1.3.dfsg+really1.3.1/contrib/minizip=.
-fstack-protector-strong -fstack-clash-protection -Wformat
-Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -Wall
-D_REENTRANT -O3 -DUNALIGNED_OK -L./../.. -Wl,-z,relro -o miniunzip miniunz.o
libminizip.la
It is not clear to me, why this works in native builds. Maybe linking
-lz into libminizip.la is sufficient there. In any case, minizip already
correctly adds -lz and so should miniunzip if only for consistency.
Missing this change gets us linker error about undefined symbols.
The other hunk is about changing the ./configure invocation for minizip.
Notably, nothing instructs it to perform a cross build via the --build
and --host flags. dh_auto_configure adds those flags. More precisely, it
always adds --build while it only adds --host for cross builds. Since
dh_auto_configure also passes --prefix and --libdir, I drop them. The
second version of the patch just adds those flags directly in case you
also object to using debhelper.
> I'm not overly enthustiastic about spending time on anything that hasn't
> already achieved a degree of popularity, some of the prior efforts were
> a bit early adopter and burned me a bit.
I am with you here. Unfortunately, this is a bit of a chicken & egg
problem. At this point, my personal view is that dgit push-source has
reached a state where its added cost is outweighed by the fact that the
git history is published and cross-referenced to the archive in a
uniform and consistent way. It also comes down to who bears the cost. To
me, a package that does not have readily available history is a cost as
I am interacting with lots. I suspect that you are not interfacing with
that many packages and thus are not experiencing that kind of cost as
much as I am. Finding a sweet spot obviously is subjective you reaching
a different conclusion from me on this is very much expected.
Helmut
--- a/contrib/minizip/Makefile.am
+++ b/contrib/minizip/Makefile.am
@@ -39,7 +39,7 @@
EXTRA_PROGRAMS = miniunzip minizip
miniunzip_SOURCES = miniunz.c
-miniunzip_LDADD = libminizip.la
+miniunzip_LDADD = libminizip.la -lz
minizip_SOURCES = minizip.c
minizip_LDADD = libminizip.la -lz
--- a/debian/rules
+++ b/debian/rules
@@ -87,7 +77,8 @@
AR=$(AR) CC="$(DEB_HOST_GNU_TYPE)-gcc" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" uname=GNU ./configure --shared --prefix=/usr --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)
- cd contrib/minizip && autoreconf -fis && CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" uname=GNU ./configure --prefix=/usr --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)
+ cd contrib/minizip && autoreconf -fis
+ CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" uname=GNU dh_auto_configure --sourcedirectory=contrib/minizip
touch $@
--- a/contrib/minizip/Makefile.am
+++ b/contrib/minizip/Makefile.am
@@ -39,7 +39,7 @@
EXTRA_PROGRAMS = miniunzip minizip
miniunzip_SOURCES = miniunz.c
-miniunzip_LDADD = libminizip.la
+miniunzip_LDADD = libminizip.la -lz
minizip_SOURCES = minizip.c
minizip_LDADD = libminizip.la -lz
--- a/debian/rules
+++ b/debian/rules
@@ -87,7 +77,7 @@
AR=$(AR) CC="$(DEB_HOST_GNU_TYPE)-gcc" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" uname=GNU ./configure --shared --prefix=/usr --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)
- cd contrib/minizip && autoreconf -fis && CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" uname=GNU ./configure --prefix=/usr --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)
+ cd contrib/minizip && autoreconf -fis && CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" uname=GNU ./configure --prefix=/usr --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
touch $@