cmocka: 1.1.5 -> 1.1.6

> Version 1.1.6 has been released to fix several issues
> and a few small new features.
https://gitlab.com/cmocka/cmocka/-/blob/cmocka-1.1.6/ChangeLog

We might conditionalize the patch e.g. for musl only,
but I don't think it could cause trouble elsewhere.
This commit is contained in:
Vladimír Čunát 2023-02-21 08:44:53 +01:00
parent 0f910f5664
commit 4454f21034
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA
2 changed files with 21 additions and 14 deletions

View file

@ -1,26 +1,17 @@
{ fetchurl, fetchpatch, lib, stdenv, cmake }:
let
# Temporary split to save rebuilds; see PR #217469
isUpdated = with stdenv; isDarwin && isAarch64;
in
stdenv.mkDerivation rec {
pname = "cmocka";
majorVersion = "1.1";
version = "${majorVersion}." + (if isUpdated then "6" else "5");
version = "${majorVersion}.6";
src = fetchurl {
url = "https://cmocka.org/files/${majorVersion}/cmocka-${version}.tar.xz";
sha256 = if isUpdated
then "0xksffx1w3pzm18ynf28cx8scrhylcbz43s1rgkkdqnyil1q6cjv"
else "1dm8pdvkyfa8dsbz9bpq7wwgixjij4sii9bbn5sgvqjm5ljdik7h";
sha256 = "0xksffx1w3pzm18ynf28cx8scrhylcbz43s1rgkkdqnyil1q6cjv";
};
patches = lib.optionals (!isUpdated) [
(fetchpatch {
name = "musl-uintptr.patch";
url = "https://git.alpinelinux.org/aports/plain/main/cmocka/musl_uintptr.patch?id=6a15dd0d0ba9cc354a621fb359ca5e315ff2eabd";
sha256 = "sha256-fhb2Tax30kRTGuaKvzSzglSd/ntxiNeGFJt5I8poa24=";
})
patches = [
./uintptr_t.patch
];
nativeBuildInputs = [ cmake ];

View file

@ -0,0 +1,16 @@
Resolve messy situation with uintptr_t and stdint.h
Platforms common in nixpkgs will have stdint.h - thereby we avoid problems
that seem complicated to avoid. References:
https://gitlab.com/cmocka/cmocka/-/issues/38#note_1286565655
https://git.alpinelinux.org/aports/plain/main/cmocka/musl_uintptr.patch?id=6a15dd0d0ba9cc354a621fb359ca5e315ff2eabd
It isn't easy, as 1.1.6 codebase is missing stdint.h includes on many places,
and HAVE_UINTPTR_T from cmake also wouldn't get on all places it needs to.
--- a/include/cmocka.h
+++ b/include/cmocka.h
@@ -18,2 +18,4 @@
#define CMOCKA_H_
+#include <stdint.h>
+#define HAVE_UINTPTR_T 1