+ (patches + (if (target-ppc64le?) + (list (search-patch "exiv2-ppc64.patch"))))))
The second branch of the 'if' is missing -- as-is, *unspecified*
is used when (not (target-ppc64le?)), which won't work.
The 'patches' field is delayed, not thunked, so only the first system+target it sees will take effect. This will break things if for whatever reason you compute the derivation of the package for multiple systems in the same process.
To solve things, I recommend:
Greetings,
Maxime.