On 20/06/18 05:54, Eli Schwartz wrote: > On 06/19/2018 08:28 AM, Allan McRae wrote: >> On 09/06/18 05:33, Eli Schwartz wrote: >>> On 06/08/2018 02:18 PM, morganamilo wrote: >>>> We already ensure arch is an array but if arch is never defined >>>> this error never triggers. Add an explicit check for a missing arch. >>> >>> Good catch! We'd usually abort with >>> ==> ERROR: foo is not available for the 'x86_64' architecture. >>> >>> but not if we're doing some IGNOREARCH operation that doesn't check >>> this, e.g. --source or --printsrcinfo or --packagelist >>> >>> Or, makepkg --ignorearch. >>> >> >> Hrm... I just saw this after replying the patch was OK. >> >> With this patch: >> >> $ /home/allan/arch/code/pacman/scripts/makepkg --ignorearch >> ==> ERROR: arch is not allowed to be empty. >> >> >> I think our current check is OK here and this additional check is too >> stringent. >> >> Allan > > I'll agree with morganamilo here, if someone uses arch=(x86_64) and I > --ignorearch it to use it on armv7h, that's one thing, but if they don't > define it at all then --printsrcinfo succeeds but makepkg on its own fails. > > IMHO that makes the patch worthwhile for linting --printsrcinfo, and in > the process if it results in --ignorearch failing for the same issue, > then I think it's a good thing on the grounds of technical correctness. > > The PKGBUILD is fundamentally wrong to be missing required variables, it > shouldn't be "okay as long as you call makepkg with certain switches to > infer the arch", it doesn't work in the common case. Therefore it should > be fixed, and we should ensure that --printsrcinfo fails early. > > Yes, anyone who tries to build the package will notice the issue. But > unfortunately many people who try writing PKGBUILDs will only ever run > --printsrcinfo and not try building it -- this patch prevents that from > occurring. >
man makepkg: -A, --ignorearch Ignore a missing or incomplete arch field in the build script. The documentation defines the behaviour of --ignorearch as currently specified. Allan