The problem is that, in the patch phase, the patch file is referred to as 'patch', but the package for the `patch` program is what that variable resolves to: (let ((patch.gz (assoc-ref inputs "patch"))) After fixing that by renaming the variable for the patch file to something unique, the build fails like this: ------ gcc -D_GNU_SOURCE -O2 -Wall -g -I. -idirafter ./include/ -Ilib -c -o ipmaddr.o ipmaddr.c ipmaddr.c: In function ‘multiaddr_modify’: ipmaddr.c:351:25: warning: pointer targets in passing argument 2 of ‘parse_lla’ differ in signedness [-Wpointer-sign] if (parse_lla(*argv, ifr.ifr_hwaddr.sa_data) < 0) ^ ipmaddr.c:78:12: note: expected ‘unsigned char *’ but argument is of type ‘char *’ static int parse_lla(char *str, unsigned char *addr) ^ gcc -Llib -o ipmaddr ipmaddr.o -lnet-tools gcc -D_GNU_SOURCE -O2 -Wall -g -I. -idirafter ./include/ -Ilib -c -o mii-tool.o mii-tool.c mii-tool.c: In function ‘main’: mii-tool.c:432:29: error: too few arguments to function ‘parse_media’ case 'A': nway_advertise = parse_media(optarg); break; ^ mii-tool.c:163:12: note: declared here static int parse_media(char *arg, unsigned *bmcr2) ^ mii-tool.c:433:26: error: too few arguments to function ‘parse_media’ case 'F': fixed_speed = parse_media(optarg); break; ^ mii-tool.c:163:12: note: declared here static int parse_media(char *arg, unsigned *bmcr2) ^ mii-tool.c:456:2: warning: implicit declaration of function ‘version’ [-Wimplicit-function-declaration] version(); ^ mii-tool.c: At top level: mii-tool.c:32:13: warning: ‘Version’ defined but not used [-Wunused-variable] static char Version[] = "$Id: mii-tool.c,v 1.9 2006/09/27 20:59:18 ecki Exp $\n(Author: David Hinds based on Donald Becker's mii-diag)"; ^ make: *** [: mii-tool.o] Error 1 phase `build' failed after 7.5 seconds ------ This problem with the wrong number of arguments being passed to parse_media() is introduced in the Debian patch, so we should check if there is a better version of the patch or if fixes are being applied upstream.