tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
canokey-qemu: fix build on x86_64-darwin
Alyssa Ross
2 years ago
19e14ba4
befe8bbe
+45
2 changed files
expand all
collapse all
unified
split
pkgs
applications
virtualization
qemu
canokey-qemu-memcpy.patch
canokey-qemu.nix
+41
pkgs/applications/virtualization/qemu/canokey-qemu-memcpy.patch
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
hash = "sha256-4V/2UOgGWgL+tFJO/k90bCDjWSVyIpxw3nYi9NU/OxA=";
19
};
20
0
0
0
0
21
postPatch = ''
22
substituteInPlace canokey-core/CMakeLists.txt \
23
--replace "COMMAND git describe --always --tags --long --abbrev=8 --dirty >>" "COMMAND echo '$rev' >>"
···
18
hash = "sha256-4V/2UOgGWgL+tFJO/k90bCDjWSVyIpxw3nYi9NU/OxA=";
19
};
20
21
+
patches = [
22
+
./canokey-qemu-memcpy.patch
23
+
];
24
+
25
postPatch = ''
26
substituteInPlace canokey-core/CMakeLists.txt \
27
--replace "COMMAND git describe --always --tags --long --abbrev=8 --dirty >>" "COMMAND echo '$rev' >>"