Dir dürfte in prepare() einfach das einleitende
cd "pkgname-$pkgver"
fehlen. (Bzw. ggf nur "$pkgname" je nachdem wie du arbeitest)
Ohne das cd befindest du dich in dort_wo_PKGBUILD_ist/src und da liegen die ausgepackten Quellen i.d.R. nicht¹, sondern darin gibt es noch das $pkgname_Verzeichnis. (Tip: du kannst in die Funktionen auch Dinge wie echo oder pwd für dich zum Debuggen einbauen)
Ob dann die zu patchende Datei gefunden wird hängt vom --strip ab, also von wo aus du das diff erstellt hast.
Hinweis: In den folgenden Pfadbeispielen ist ./ am Anfang das Verzeichnis in dem dein PKGBUILD liegt.
Mit deinem --strip=1 wird momentan für ffDiaporama.r0/src/ffDiaporama/wgt_QMultimediaBrowser/QCustomFolderTable.cpp nur der Teil "ffDiaporama.r0" vom Pfad entfernt, die zu pachende Datei würde also in:
./src/src/ffDiaporama/wgt_QMultimediaBrowser/QCustomFolderTable.cpp
erwartet (was wahrscheinlich auch nicht stimmt IMHO). Da müßtest du mit den --strip= Werten probieren.
--strip=1 sollte eigentlich immer dann passen, wenn man den diff im ./src Verzeichnis zieht und sich darin vom ausgepackten Paket-Folder z.B. ein .org/.new oder wie du ein .r0/.r1 ziehst.
//edit:
¹Natürlich liegen dort die ausgepackten Quellen, aber ein Source-Tarball hat meist ein $pkgname oder pkgname-$pkgver als "Startpunkt". Kann man z.B. mit:
tar --list -f source.tar.gz | head -1
sehen.
Noch ein Hinweis:
Wenn du deine Ausgaben (z.B. von der Ausgabe in deinem 1.Post) in Code-Tags setzt, werden diese wesentlich lesbarer...