[PATCH core-updates]: Use autoconf-wrapper instead of autoconf

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Maxime Devos
Owner
unassigned
Submitted by
Maxime Devos
Severity
normal
M
M
Maxime Devos wrote on 16 Feb 2021 19:10
(address . guix-patches@gnu.org)
87zh03dgty.fsf@telenet.be
Hi Guix,

This patch replaces autoconf with autoconf-wrapped in the native-inputs
almost everywhere (except for some packages in
gnu/packages/autotools.scm). As this would cause many rebuilds, this
patch targets the "core-updates" branch and not "master".

A wine package has autoconf in the inputs instead of native-inputs,
I wonder if that's intentional or a bug? I left that package untouched
for now.

Why this change?

* consistency / reducing confusion: some packages use autoconf, some use
autoconf-wrapper, and there's no (to me) obvious reason why two variants
of autoconf should be used.

* <whatever pro's nckx had in mind on #guix>

* some progress towards booting without /bin/sh

Scenario I have in mind (untested):

1. boot a system that doesn't have /bin/sh
2. decide to hack on guix (run git clone ...., cd $REPO)
3. guix environment guix
4. sh ./bootstrap (calls autoreconf -vfi)
5. ./configure --localstatedir=/var
6. more stuff

Without this patch, step (5.) will fail without this patch because
the generated ./configure script refers to /bin/sh, which doesn't
exist.

That said, there are some #!/bin/sh shebangs in the source code,
so there are some problems in (6.).

Why not?

* ‘make dist’ will produce unusable tarballs
when in an environment from ‘guix environment PACKAGE’.
This should now be replaced with ‘guix environment PACKAGE --ad-hoc
autoconf'.
-----BEGIN PGP SIGNATURE-----

iI0EARYIADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYCwKihccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7piLAQDoTkYg0qbF9KvaCjHqgMDHaf+x
wuttmI65sffccm/9lgD8D/XPKykGHVhF+upiruwCZw41V6GHnPmS7deLyiuxxAg=
=UAwQ
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 21 Feb 2021 23:05
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 46564@debbugs.gnu.org)
875z2lgjqg.fsf@gnu.org
Hi,

Maxime Devos <maximedevos@telenet.be> skribis:

Toggle quote (5 lines)
> This patch replaces autoconf with autoconf-wrapped in the native-inputs
> almost everywhere (except for some packages in
> gnu/packages/autotools.scm). As this would cause many rebuilds, this
> patch targets the "core-updates" branch and not "master".

OK.

Toggle quote (4 lines)
> A wine package has autoconf in the inputs instead of native-inputs,
> I wonder if that's intentional or a bug? I left that package untouched
> for now.

I think that’s a bug.

Toggle quote (26 lines)
> Why this change?
>
> * consistency / reducing confusion: some packages use autoconf, some use
> autoconf-wrapper, and there's no (to me) obvious reason why two variants
> of autoconf should be used.
>
> * <whatever pro's nckx had in mind on #guix>
>
> * some progress towards booting without /bin/sh
>
> Scenario I have in mind (untested):
>
> 1. boot a system that doesn't have /bin/sh
> 2. decide to hack on guix (run git clone ...., cd $REPO)
> 3. guix environment guix
> 4. sh ./bootstrap (calls autoreconf -vfi)
> 5. ./configure --localstatedir=/var
> 6. more stuff
>
> Without this patch, step (5.) will fail without this patch because
> the generated ./configure script refers to /bin/sh, which doesn't
> exist.
>
> That said, there are some #!/bin/sh shebangs in the source code,
> so there are some problems in (6.).

Yeah, I’m not sure this is a worthy goal.

Toggle quote (7 lines)
> Why not?
>
> * ‘make dist’ will produce unusable tarballs
> when in an environment from ‘guix environment PACKAGE’.
> This should now be replaced with ‘guix environment PACKAGE --ad-hoc
> autoconf'.

Yeah. I would be in favor of unifying things the other way around:
using ‘autoconf’ instead of ‘autoconf-wrapper’ everywhere. Since
there’s the ‘patch-shebangs’ phase, we don’t need ‘autoconf-wrapper’.

There’s one exception I think: Automake. This one needs
‘autoconf-wrapper’ so it can actually run its test suite. Perhaps
Libtool too.

WDYT?

Ludo’.
M
M
Maxime Devos wrote on 22 Feb 2021 18:23
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 46564@debbugs.gnu.org)
9e9ca439e3099b3e41b03b91b555b1b4000491d5.camel@telenet.be
Hi,

On Sun, 2021-02-21 at 23:05 +0100, Ludovic Courtès wrote:
Toggle quote (11 lines)
> [...]
>
> Maxime Devos <maximedevos@telenet.be> skribis:
>
> > This patch replaces autoconf with autoconf-wrapped in the native-inputs
> > almost everywhere (except for some packages in
> > gnu/packages/autotools.scm). As this would cause many rebuilds, this
> > patch targets the "core-updates" branch and not "master".
>
> OK.

The revised patch targets master, as less packages were changed
(changing the definition of libuv should be done on core-updates).

Toggle quote (15 lines)
> > A wine package has autoconf in the inputs instead of native-inputs,
> > I wonder if that's intentional or a bug? I left that package untouched
> > for now.
>
> I think that’s a bug.
>
> > Why this change? [...]
> Yeah, I’m not sure this is a worthy goal.
>
> > Why not?
> [...]
> Yeah. I would be in favor of unifying things the other way around:
> using ‘autoconf’ instead of ‘autoconf-wrapper’ everywhere. Since
> there’s the ‘patch-shebangs’ phase, we don’t need ‘autoconf-wrapper’.

I've attached a patch that unifies things the other way around.

Toggle quote (4 lines)
> There’s one exception I think: Automake. This one needs
> ‘autoconf-wrapper’ so it can actually run its test suite. Perhaps
> Libtool too.

Some other packages fail to build without autoconf-wrapper as well.
Some packages run './configure' from 'autogen.sh' or from the Makefile.
I added a little explanation to each package that actually needs
autoconf-wrapper, and discouraged new uses of autoconf-wrapper with
a comment next to the definition of autoconf-wrapper.

WDYT?

Maxime.
Attachment: file
-----BEGIN PGP SIGNATURE-----

iI0EABYIADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYDPolBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7im5AP9+1jgs1v0xhlsfHi6aG+F6GNA4
Fvulsz5R+Fk21FwWJwD+LT+1lwcRUd0JF6y7hiUm7aW191n2QcdIiEzfm6eg2Qc=
=ZTjc
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 23 Feb 2021 09:19
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 46564@debbugs.gnu.org)
87blcb8ad1.fsf@gnu.org
Hi Maxime,

Maxime Devos <maximedevos@telenet.be> skribis:

Toggle quote (7 lines)
>> There’s one exception I think: Automake. This one needs
>> ‘autoconf-wrapper’ so it can actually run its test suite. Perhaps
>> Libtool too.
>
> Some other packages fail to build without autoconf-wrapper as well.
> Some packages run './configure' from 'autogen.sh' or from the Makefile.

Oh right.

Toggle quote (4 lines)
> I added a little explanation to each package that actually needs
> autoconf-wrapper, and discouraged new uses of autoconf-wrapper with
> a comment next to the definition of autoconf-wrapper.

Great.

Toggle quote (43 lines)
> From d42be9473bac6b8bcfe17a37c92f2481cb2198fb Mon Sep 17 00:00:00 2001
> From: Maxime Devos <maximedevos@telenet.be>
> Date: Mon, 22 Feb 2021 16:43:10 +0100
> Subject: [PATCH] gnu: Use autoconf instead of autoconf-wrapper when possible.
>
> This should reduce confusion on when to use the "autoconf"
> package and when to use "autoconf-wrapper" instead in
> package definitions.
>
> Fixes: <https://issues.guix.gnu.org/46564>
>
> * gnu/packages/autotools.scm (autoconf-wrapper):
> advise to use the "autoconf" package instead where
> possible.
> * gnu/packages/game-development.scm (tsukundere)[native-inputs]:
> use "autoconf" instead of "autoconf-wrapper".
> * gnu/packages/gimp.scm
> (glimpse)[native-inputs]: likewise.
> (gimp-resynthesizer)[native-inputs]: add comment on why
> "autoconf-wrapper" is used.
> * gnu/packages/gnunet.scm (gnunet)[native-inputs]:
> use "autoconf" instead of "autoconf-wrapper".
> * gnu/packages/gnupg.scm (signing-party)[native-inputs]:
> add comment on why "autoconf-wrapper" is used.
> * gnu/packages/guile-xyz.scm
> (guile-bash,guile-filesystem,guile-ics,guile-udev)[native-inputs]:
> use "autoconf" instead of "autoconf-wrapper".
> * gnu/packages/libevent.scm (libuv)[native-inputs]: indicates
> "autoconf-wrapper" needs to be replaced with "autoconf"
> on core-updates.
> * gnu/packages/logging.scm (glog)[native-inputs]: use "autoconf"
> instead of "autoconf-wrapper".
> * gnu/packages/mail.scm (libetpan)[native-inputs]: likewise.
> * gnu/packages/mate.scm
> (mate-icon-theme-faenza)[native-inputs]: add comment on why
> "autoconf-wrapper" is used.
> (mate-screensaver)[native-inputs]: use "autoconf" instead of
> "autoconf-wrapper".
> * gnu/packages/package-management.scm (guix)[native-inputs]: likewise.
> * gnu/packages/sawfish.scm (librep)[native-inputs]: likewise.
> * gnu/packages/video.scm (motion)[native-inputs]: likewise.
> * gnu/packages/zile.scm (zile)[native-inputs]: likewise.

At first sight it should rebuild much so LGTM!

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 23 Feb 2021 09:19
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 46564@debbugs.gnu.org)
877dmz8acb.fsf@gnu.org
Ah, I meant “it should _not_ rebuild much”, so OK for master.
L
L
Ludovic Courtès wrote on 17 Mar 2021 23:12
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 46564-done@debbugs.gnu.org)
874kh9xwdr.fsf_-_@gnu.org
Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (45 lines)
>> From d42be9473bac6b8bcfe17a37c92f2481cb2198fb Mon Sep 17 00:00:00 2001
>> From: Maxime Devos <maximedevos@telenet.be>
>> Date: Mon, 22 Feb 2021 16:43:10 +0100
>> Subject: [PATCH] gnu: Use autoconf instead of autoconf-wrapper when possible.
>>
>> This should reduce confusion on when to use the "autoconf"
>> package and when to use "autoconf-wrapper" instead in
>> package definitions.
>>
>> Fixes: <https://issues.guix.gnu.org/46564>
>>
>> * gnu/packages/autotools.scm (autoconf-wrapper):
>> advise to use the "autoconf" package instead where
>> possible.
>> * gnu/packages/game-development.scm (tsukundere)[native-inputs]:
>> use "autoconf" instead of "autoconf-wrapper".
>> * gnu/packages/gimp.scm
>> (glimpse)[native-inputs]: likewise.
>> (gimp-resynthesizer)[native-inputs]: add comment on why
>> "autoconf-wrapper" is used.
>> * gnu/packages/gnunet.scm (gnunet)[native-inputs]:
>> use "autoconf" instead of "autoconf-wrapper".
>> * gnu/packages/gnupg.scm (signing-party)[native-inputs]:
>> add comment on why "autoconf-wrapper" is used.
>> * gnu/packages/guile-xyz.scm
>> (guile-bash,guile-filesystem,guile-ics,guile-udev)[native-inputs]:
>> use "autoconf" instead of "autoconf-wrapper".
>> * gnu/packages/libevent.scm (libuv)[native-inputs]: indicates
>> "autoconf-wrapper" needs to be replaced with "autoconf"
>> on core-updates.
>> * gnu/packages/logging.scm (glog)[native-inputs]: use "autoconf"
>> instead of "autoconf-wrapper".
>> * gnu/packages/mail.scm (libetpan)[native-inputs]: likewise.
>> * gnu/packages/mate.scm
>> (mate-icon-theme-faenza)[native-inputs]: add comment on why
>> "autoconf-wrapper" is used.
>> (mate-screensaver)[native-inputs]: use "autoconf" instead of
>> "autoconf-wrapper".
>> * gnu/packages/package-management.scm (guix)[native-inputs]: likewise.
>> * gnu/packages/sawfish.scm (librep)[native-inputs]: likewise.
>> * gnu/packages/video.scm (motion)[native-inputs]: likewise.
>> * gnu/packages/zile.scm (zile)[native-inputs]: likewise.
>
> At first sight it should rebuild much so LGTM!

And I’ve now pushed it.

Thanks, and apologies for forgetting to push it right away!

Ludo’.
Closed
?