[pacman-dev] [PATCH 1/7] libmakepkg: disallow empty arch
Allan McRae
allan at archlinux.org
Tue Jun 19 23:52:30 UTC 2018
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
More information about the pacman-dev
mailing list