canokey-qemu: fix build on x86_64-darwin

+45
+41
pkgs/applications/virtualization/qemu/canokey-qemu-memcpy.patch
··· 1 + From 9e59480d941c40b868ebafa5138bbc71ca87f08e Mon Sep 17 00:00:00 2001 2 + From: Alyssa Ross <hi@alyssa.is> 3 + Date: Sat, 18 May 2024 09:55:17 +0200 4 + Subject: [PATCH] Fix build where memcpy is a macro 5 + 6 + I got the following compiler error with Clang 16 building for 7 + x86_64-apple-darwin: 8 + 9 + /tmp/nix-build-canokey-qemu-0-unstable-2023-06-06.drv-0/source/canokey-core/applets/oath/oath.c:44:50: error: too many arguments provided to function-like macro invocation 10 + memcpy(RDATA, (uint8_t[]){OATH_TAG_VERSION, 3, 0x05, 0x05, 0x05, OATH_TAG_NAME, HANDLE_LEN}, 7); 11 + ^ 12 + /nix/store/vw8y07yai2pjv02s1piw3r5cyhmjbddf-Libsystem-1238.60.2/include/secure/_string.h:64:9: note: macro 'memcpy' defined here 13 + #define memcpy(dest, src, len) \ 14 + ^ 15 + /tmp/nix-build-canokey-qemu-0-unstable-2023-06-06.drv-0/source/canokey-core/applets/oath/oath.c:44:3: note: parentheses are required around macro argument containing braced initializer list 16 + memcpy(RDATA, (uint8_t[]){OATH_TAG_VERSION, 3, 0x05, 0x05, 0x05, OATH_TAG_NAME, HANDLE_LEN}, 7); 17 + ^ 18 + ( ) 19 + 1 error generated. 20 + 21 + Link: https://github.com/canokeys/canokey-core/pull/85 22 + --- 23 + canokey-core/applets/oath/oath.c | 2 +- 24 + 1 file changed, 1 insertion(+), 1 deletion(-) 25 + 26 + diff --git a/canokey-core/applets/oath/oath.c b/canokey-core/applets/oath/oath.c 27 + index bd8361a..2d2c0ef 100644 28 + --- a/canokey-core/applets/oath/oath.c 29 + +++ b/canokey-core/applets/oath/oath.c 30 + @@ -41,7 +41,7 @@ int oath_install(uint8_t reset) { 31 + static int oath_select(const CAPDU *capdu, RAPDU *rapdu) { 32 + if (P2 != 0x00) EXCEPT(SW_WRONG_P1P2); 33 + 34 + - memcpy(RDATA, (uint8_t[]){OATH_TAG_VERSION, 3, 0x05, 0x05, 0x05, OATH_TAG_NAME, HANDLE_LEN}, 7); 35 + + memcpy(RDATA, ((uint8_t[]){OATH_TAG_VERSION, 3, 0x05, 0x05, 0x05, OATH_TAG_NAME, HANDLE_LEN}), 7); 36 + if (read_attr(OATH_FILE, ATTR_HANDLE, RDATA + 7, HANDLE_LEN) < 0) return -1; 37 + LL = 7 + HANDLE_LEN; 38 + 39 + -- 40 + 2.44.0 41 +
+4
pkgs/applications/virtualization/qemu/canokey-qemu.nix
··· 18 18 hash = "sha256-4V/2UOgGWgL+tFJO/k90bCDjWSVyIpxw3nYi9NU/OxA="; 19 19 }; 20 20 21 + patches = [ 22 + ./canokey-qemu-memcpy.patch 23 + ]; 24 + 21 25 postPatch = '' 22 26 substituteInPlace canokey-core/CMakeLists.txt \ 23 27 --replace "COMMAND git describe --always --tags --long --abbrev=8 --dirty >>" "COMMAND echo '$rev' >>"