On 20/02/11 20:19, Magnus Therning wrote:
On Sun, Feb 20, 2011 at 08:09:16PM +1000, Allan McRae wrote:
On 20/02/11 20:05, Magnus Therning wrote:
On Sun, Feb 20, 2011 at 07:55:10PM +1000, Allan McRae wrote:
On 20/02/11 19:36, Magnus Therning wrote:
I just tried building a package with more than one source file using makechrootpkg. It failed with this message:
==> ERROR: Integrity checks (md5) differ in size from the source array.
That is an error from makepkg.
Indeed, but AFAICS it's caused by makechrootpkg not copying all the sources into the build chroot for makepkg to find.
No... it cause by your PKGBUILD having more/less entries in the sources array that the md5sums array.
Please, read my initial email!
My PKGBUILD is just fine, it builds out of the build chroot (using makepkg directly) and it builds when I modify makechrootpkg as I outlined.
The source array is modified based on files in the dir holding the PKGBUILD, like this:
if [[ -f my.patch ]]; then sources=(${sources[@] my.patch) fi
So the build failure reported by makepkg *really* is caused by makechrootpkg not copying over all the source files.
(Now it may be bad to modify the source array that way, but that's a different discussion altogether.)
makechrootpkg sets SRCDEST and copies the source files there. Your PKGBUILD assumes the sources are alongside the PKGBUILD. When run with makechrootpkg, your PKGBUILD fails as the "[[ -f my.patch ]]" fails as my.patch is not in the current directory, but rather in $SRCDIR. Try: if [[ -f $SRCDIR/my.patch ]]; Also, the real issue is that you always have the md5sum for my.patch in your md5sum array when it should be added in the same if statement. Allan