[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
?
Your comment

This issue is archived.

To comment on this conversation send an email to 46564@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 46564
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch