Debian Patches

Status for rust-git-cinnabar/0.7.2-2

Patch Description Author Forwarded Bugs Origin Last update
remove-windows-target.diff Remove dependencies for the windows target Mike Hommey <glandium@debian.org> no
remove-make-cmd.diff Remove dependency on make-cmd Mike Hommey <glandium@debian.org> no
remove-tee.diff Remove dependency on tee Mike Hommey <glandium@debian.org> no
no-default-features.diff Build with no default features enabled Mike Hommey <glandium@debian.org> no
built-using.diff Make dh_cargo happy about libcinnabar.a Mike Hommey <glandium@debian.org> no
downgrades.diff Downgrade bzip2, derive_more, itertools, lru and rand dependencies Mike Hommey <glandium@debian.org> no
curl-easy-setopt-01-literals.patch This patch is based on the commit below from git upstream, adapted for use in
the Debian rust-git-cinnabar package by Peter Michael Green.

commit 6f11c42e8edc5cf7d65156c9dd68e720f1b92229

curl: fix integer constant typechecks with curl_easy_setopt()

The curl documentation specifies that curl_easy_setopt() takes either:

...a long, a function pointer, an object pointer or a curl_off_t,
depending on what the specific option expects.

But when we pass an integer constant like "0", it will by default be a
regular non-long int. This has always been wrong, but seemed to work in
practice (I didn't dig into curl's implementation to see whether this
might actually be triggering undefined behavior, but it seems likely and
regardless we should do what the docs say).

This is especially important since curl has a type-checking macro that
causes building against curl 8.14 to produce many warnings. The specific
commit is due to their 79b4e56b3 (typecheck-gcc.h: fix the typechecks,
2025-04-22). Curiously, it does only seem to trigger when compiled with
-O2 for me.

We can fix it by just marking the constants with a long "L".

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff --git a/git-core/http-push.c b/git-core/http-push.c
index f9e67cabd4..591e46ab26 100644
Jeff King <peff@peff.net> no 2025-06-04
curl-easy-setopt-02-variables.patch commit 30325e23ba0d40567cc4ef78e4ba0c3776ef0c06

curl: fix integer variable typechecks with curl_easy_setopt()

As discussed in the previous commit, we should be passing long integers,
not regular ones, to curl_easy_setopt(), and compiling against curl 8.14
loudly complains if we don't.

That patch fixed integer constants by adding an "L". This one deals with
actual variables.

Arguably these variables could just be declared as "long" in the first
place. But it's actually kind of awkward due to other code which uses
them:

- port is conceptually a short, and we even call htons() on it (though
weirdly it is defined as a regular int).

- ssl_verify is conceptually a bool, and we assign to it from
git_config_bool().

So I think we could probably switch these out for longs without hurting
anything, but it just feels a bit weird. Doubly so because if you don't
set USE_CURL_FOR_IMAP_SEND set, then the current types are fine!

So let's just cast these to longs in the curl calls, which makes what's
going on obvious. There aren't that many spots to modify (and as you can
see from the context, we already have some similar casts).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff --git a/git-core/imap-send.c b/git-core/imap-send.c
index 27dc033c7f..2e812f5a6e 100644
Jeff King <peff@peff.net> no 2025-06-04
curl-easy-setopt-03-constants.patch commit 4558c8f84b2f8d3ba1483727bcb49935ae8ff595

curl: fix symbolic constant typechecks with curl_easy_setopt()

As with the previous two commits, we should be passing long integers,
not regular ones, to curl_easy_setopt(), and compiling against curl 8.14
loudly complains if we don't.

This patch catches the remaining cases, which are ones where we pass
curl's own symbolic constants. We'll cast them to long manually in each
call.

It seems kind of weird to me that curl doesn't define these constants as
longs, since the point of them is to pass to curl_easy_setopt(). But in
the curl documentation and examples, they clearly show casting them as
part of the setopt calls. It may be that there is some reason not to
push the type into the macro, like backwards compatibility. I didn't
dig, as it doesn't really matter: we have to follow what existing curl
versions ask for anyway.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff --git a/git-core/http.c b/git-core/http.c
index cce2ea7287..ecbc47ea4b 100644
Jeff King <peff@peff.net> no 2025-06-04

All known versions for source package 'rust-git-cinnabar'

Links