On Wed, 20 Jun 2018 at 00:52, Allan McRae <al...@archlinux.org> wrote: > > 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
While --ignorearch is documented correctly, flags such as --printsrcinfo will not complain about a missing arch, which is defined as a required field. I also believe --ignorearch should be changed to not ignore a missing arch either. Anyway, tonight I will start working on v2 of this patch set. I'll remove this commit unless you change your mind.