Re: Standardize on running autoreconf in prepare()

2025-02-27 Thread David Runge
On 2025-02-26 21:53:50 (+0100), Jelle van der Waa wrote:
> After all the recent RISC-V news I went ahead and checked out the existing
> effort to get Arch Linux supported on RISC-V. Felix maintains an overlay of
> PKGBUILDs which require customization to be be able to build on RISC-V. A
> lot of these PKGBUILD's patch autotools projects to run `autoreconf -fiv` in
> prepare(), this re-generates `configure` to understand RISC-V.
>
> Since these patches are simple enough and I don't see them harming Arch
> Linux, I would argue that we want these patches applied in our packages.
> Re-generating configure should not break, and if it does we should not
> accept the patch and get a bug filled upstream.

Yes, this is generally a good idea and usually works withouot issue.
Exceptions can't easily be detected though as we currently expect base-devel to
be installed and not autotools specifically.
However, they usually include:
- projects with ancient and custom autotools (looking at you ncurses 👀)
- projects where `configure` is actually not autotools (looking at you qemu 👀)

> Re-creating configure and thus not using the provided `configure` could
> arguably also be a good thing regarding supply chain security. And this also
> should help with other architecture ports.

That's also what RFC0046[1] is about in consequence.
When not relying on custom source tarballs, autoreconf (or some custom bootstrap
script like autogen.sh) usually must be run.

> As a follow up we can discuss providing our own "/usr/share/config.site" and
> then ./configure --prefix=/usr would automatically configure localstatedir,
> libexecdir, etc.

That would also be great and I think should be developed and maintained by us
in a dedicated project, together with the custom `arch-meson` and any future
cmake presets[2].

Best,
David

[1] https://gitlab.archlinux.org/archlinux/rfcs/-/merge_requests/46
[2] https://gitlab.archlinux.org/archlinux/ideas/-/issues/15

-- 
https://sleepmap.de


signature.asc
Description: PGP signature


Re: Standardize on running autoreconf in prepare()

2025-02-27 Thread Frederik Schwan
On Wed, Feb 26, 2025 at 09:53:50PM +0100, Jelle van der Waa wrote:
> Hi All,
> 
> After all the recent RISC-V news I went ahead and checked out the existing
> effort to get Arch Linux supported on RISC-V. Felix maintains an overlay of
> PKGBUILDs which require customization to be be able to build on RISC-V. A
> lot of these PKGBUILD's patch autotools projects to run `autoreconf -fiv` in
> prepare(), this re-generates `configure` to understand RISC-V.
> 
> Since these patches are simple enough and I don't see them harming Arch
> Linux, I would argue that we want these patches applied in our packages.
> Re-generating configure should not break, and if it does we should not
> accept the patch and get a bug filled upstream.
> 
> Re-creating configure and thus not using the provided `configure` could
> arguably also be a good thing regarding supply chain security. And this also
> should help with other architecture ports.
> 
> As a follow up we can discuss providing our own "/usr/share/config.site" and
> then ./configure --prefix=/usr would automatically configure localstatedir,
> libexecdir, etc.
> 
> [1] https://github.com/felixonmars/archriscv-packages
> [2] 
> https://github.com/felixonmars/archriscv-packages/blob/master/libafterimage/riscv64.patch

+1


signature.asc
Description: PGP signature


Re: Standardize on running autoreconf in prepare()

2025-02-27 Thread Tobias Powalowski

Am 26.02.25 um 21:53 schrieb Jelle van der Waa:

Hi All,

After all the recent RISC-V news I went ahead and checked out the 
existing effort to get Arch Linux supported on RISC-V. Felix maintains 
an overlay of PKGBUILDs which require customization to be be able to 
build on RISC-V. A lot of these PKGBUILD's patch autotools projects to 
run `autoreconf -fiv` in prepare(), this re-generates `configure` to 
understand RISC-V.


Since these patches are simple enough and I don't see them harming 
Arch Linux, I would argue that we want these patches applied in our 
packages. Re-generating configure should not break, and if it does we 
should not accept the patch and get a bug filled upstream.


Re-creating configure and thus not using the provided `configure` 
could arguably also be a good thing regarding supply chain security. 
And this also should help with other architecture ports.


As a follow up we can discuss providing our own 
"/usr/share/config.site" and then ./configure --prefix=/usr would 
automatically configure localstatedir, libexecdir, etc.


[1] https://github.com/felixonmars/archriscv-packages
[2] 
https://github.com/felixonmars/archriscv-packages/blob/master/libafterimage/riscv64.patch


+ 1 from me too.

--
Tobias Powalowski
Arch Linux Developer (tpowa)
https://www.archlinux.org
tp...@archlinux.org

Archboot Developer
https://archboot.com

St. Martin-Apotheke
Herzog-Georg-Str. 25
89415 Lauingen
https://www.st-martin-apo.de
i...@st-martin-apo.de



Re: Standardize on running autoreconf in prepare()

2025-02-27 Thread Balló György
On Wed, 2025-02-26 at 21:53 +0100, Jelle van der Waa wrote:
> After all the recent RISC-V news I went ahead and checked out the 
> existing effort to get Arch Linux supported on RISC-V. Felix
> maintains 
> an overlay of PKGBUILDs which require customization to be be able to 
> build on RISC-V. A lot of these PKGBUILD's patch autotools projects
> to 
> run `autoreconf -fiv` in prepare(), this re-generates `configure` to 
> understand RISC-V.
> 
> Since these patches are simple enough and I don't see them harming
> Arch 
> Linux, I would argue that we want these patches applied in our
> packages. 
> Re-generating configure should not break, and if it does we should
> not 
> accept the patch and get a bug filled upstream.

+1

If autoreconf fails, then it's usually due to missing m4 macros, which
indicates either a missing makedependency which contains that macro, or
a custom directory needs to be specified by the AC_CONFIG_MACRO_DIR
variable [1] within configure.ac which can be fixed by a one-line
patch. [2]

[1]
https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/html_node/Input.html#index-AC_005fCONFIG_005fMACRO_005fDIR-1
[2] https://github.com/notroj/neon/pull/153/files



signature.asc
Description: This is a digitally signed message part