diff mbox series

[bug#46564,core-updates] : Use autoconf-wrapper instead of autoconf

Message ID 9e9ca439e3099b3e41b03b91b555b1b4000491d5.camel@telenet.be
State Accepted
Headers show
Series [bug#46564,core-updates] : Use autoconf-wrapper instead of autoconf | expand

Checks

Context Check Description
cbaines/submitting builds success
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

M Feb. 22, 2021, 5:23 p.m. UTC
Hi,

On Sun, 2021-02-21 at 23:05 +0100, Ludovic Courtès wrote:
> [...]
> 
> 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).

> > 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.

> 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.

Comments

Ludovic Courtès Feb. 23, 2021, 8:19 a.m. UTC | #1
Hi Maxime,

Maxime Devos <maximedevos@telenet.be> skribis:

>> 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.

> 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.

> 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’.
Ludovic Courtès Feb. 23, 2021, 8:19 a.m. UTC | #2
Ah, I meant “it should _not_ rebuild much”, so OK for master.
Ludovic Courtès March 17, 2021, 10:12 p.m. UTC | #3
Ludovic Courtès <ludo@gnu.org> skribis:

>> 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’.
diff mbox series

Patch

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.
---
 gnu/packages/autotools.scm          | 2 ++
 gnu/packages/game-development.scm   | 2 +-
 gnu/packages/gimp.scm               | 4 +++-
 gnu/packages/gnunet.scm             | 2 +-
 gnu/packages/gnupg.scm              | 2 ++
 gnu/packages/guile-xyz.scm          | 8 ++++----
 gnu/packages/libevent.scm           | 1 +
 gnu/packages/logging.scm            | 2 +-
 gnu/packages/mail.scm               | 2 +-
 gnu/packages/mate.scm               | 4 +++-
 gnu/packages/package-management.scm | 2 +-
 gnu/packages/sawfish.scm            | 2 +-
 gnu/packages/video.scm              | 2 +-
 gnu/packages/zile.scm               | 2 +-
 14 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index 09f4bf4122..452749828a 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -267,6 +267,8 @@  exec ~a --no-auto-compile \"$0\" \"$@\"
     ;; Do not show it in the UI since it's meant for internal use.
     (properties '((hidden? . #t)))))
 
+;; Only use this package when autoconf is not usable,
+;; see <https://issues.guix.gnu.org/46564#1>.
 (define-public autoconf-wrapper
   (make-autoconf-wrapper autoconf))
 
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 92c3da92ab..18b4358887 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -529,7 +529,7 @@  clone.")
                    all)))
                #t))))))
     (native-inputs
-     `(("autoconf" ,autoconf-wrapper)
+     `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("guile" ,guile-3.0)
        ("pkg-config" ,pkg-config)
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 4d229a1fd9..5e61091f22 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -518,6 +518,8 @@  MyPaint.")
                (mkdir-p target)
                #t))))))
     (native-inputs
+     ;; avoid ./autogen.sh: ./configure: /bin/sh: bad interpreter:
+     ;; No such file or directory
      `(("autoconf" ,autoconf-wrapper)
        ("automake" ,automake)
        ("glib" ,glib "bin")                       ; glib-gettextize
@@ -590,7 +592,7 @@  transferring the style of an image.")
                    (format port "for dir in '~a'.split(':'):~%" pythonpath)
                    (format port "    site.addsitedir(dir)~%")))))))))
     (native-inputs
-     `(("autoconf" ,autoconf-wrapper)
+     `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 80e4aba29b..d261f42dcc 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -368,7 +368,7 @@  kinds of basic applications for the foundation of a GNU internet.")
                   "0nqc18jh9j30y4l6yh6j35byfg6qalq7yr3frv9rk10qa041c2sv"))))
       (build-system gnu-build-system)
       (native-inputs `(("pkg-config" ,pkg-config)
-                       ("autoconf" ,autoconf-wrapper)
+                       ("autoconf" ,autoconf)
                        ("automake" ,automake)))
       (inputs `(("guile" ,guile-2.0)
                 ("gnunet" ,gnunet)))
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 18fc76ef35..20fc264659 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -695,6 +695,8 @@  PGP keysigning parties.")
                 "1aig5ssabzbk4mih7xd04vgr931bw0flbi8dz902wlr610gyv5s5"))))
     (build-system gnu-build-system)
     (native-inputs
+     ;; autoconf-wrapper is required due to the non-standard
+     ;; 'configure phase.
      `(("autoconf" ,autoconf-wrapper)
        ("automake" ,automake)))
     (inputs `(("perl" ,perl)
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 8d9126df44..c4c8a04b5c 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -367,7 +367,7 @@  dictionary and suggesting spelling corrections.")
                (string-append "--libdir=" (assoc-ref %outputs "out")
                               "/lib/bash"))))
       (native-inputs `(("pkg-config" ,pkg-config)
-                       ("autoconf" ,autoconf-wrapper)
+                       ("autoconf" ,autoconf)
                        ("automake" ,automake)
                        ("libtool" ,libtool)
                        ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'.
@@ -642,7 +642,7 @@  is not available for Guile 2.0.")
                 "1shmkc0y9r2sj3kw7hrsnamnp7y8xifkhf3m3rnfxczqg63k67vy"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf-wrapper)
+     `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("pkg-config" ,pkg-config)
        ("texinfo" ,texinfo)))
@@ -1697,7 +1697,7 @@  provides tight coupling to Guix.")
                   #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf-wrapper)
+     `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("texinfo" ,texinfo)
        ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'.
@@ -1830,7 +1830,7 @@  users and in some situations.")
                 "1l6csncjqnx58c6c3wdl7rshnhk4pzhjq2q8lnkg483564s9w5py"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf-wrapper)
+     `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("gettext" ,gettext-minimal)
        ("libtool" ,libtool)
diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm
index dab574a155..7109d9a88d 100644
--- a/gnu/packages/libevent.scm
+++ b/gnu/packages/libevent.scm
@@ -115,6 +115,7 @@  limited support for fork events.")
      '(#:configure-flags '("--disable-static")
        ;; XXX: Some tests want /dev/tty, attempt to make connections, etc.
        #:tests? #f))
+    ;; TODO replace with autoconf on core-updates
     (native-inputs `(("autoconf" ,autoconf-wrapper)
                      ("automake" ,automake)
                      ("libtool" ,libtool)
diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index 87283f3752..eafc23b2e6 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -99,7 +99,7 @@  staying as close to their API as is reasonable.")
                       #t)))))
     (native-inputs
      `(("perl" ,perl)                             ;for tests
-       ("autoconf" ,autoconf-wrapper)
+       ("autoconf" ,autoconf)
        ("automake" ,automake)
        ("libtool" ,libtool)))
     (synopsis "C++ logging library")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 2bd376a1a1..bb021fad0d 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1474,7 +1474,7 @@  useful features.")
              (sha256
                (base32 "0g7an003simfdn7ihg9yjv7hl2czsmjsndjrp39i7cad8icixscn"))))
     (build-system gnu-build-system)
-    (native-inputs `(("autoconf" ,autoconf-wrapper)
+    (native-inputs `(("autoconf" ,autoconf)
                      ("automake" ,automake)
                      ("libtool" ,libtool)
                      ("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index a9635d90fe..fbb1a74d09 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -176,6 +176,8 @@  actions.")
              (setenv "CONFIG_SHELL" (which "sh"))
              (invoke "sh" "autogen.sh"))))))
     (native-inputs
+     ;; autoconf-wrapper is required due to the non-standard
+     ;; 'autoconf phase.
      `(("autoconf" ,autoconf-wrapper)
        ("automake" ,automake)
        ("intltool" ,intltool)
@@ -1201,7 +1203,7 @@  Re-decorates windows on un-maximise.
                (("dbus-1") ""))))))))
     (native-inputs
      `(("automake" ,automake)
-       ("autoconf" ,autoconf-wrapper)
+       ("autoconf" ,autoconf)
        ("gettext" ,gettext-minimal)
        ("intltool" ,intltool)
        ("mate-common" ,mate-common)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 9fb8c40a31..9e498fbe29 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -377,7 +377,7 @@  $(prefix)/etc/init.d\n")))
                        ;; XXX: Keep the development inputs here even though
                        ;; they're unnecessary, just so that 'guix environment
                        ;; guix' always contains them.
-                       ("autoconf" ,autoconf-wrapper)
+                       ("autoconf" ,autoconf)
                        ("automake" ,automake)
                        ("gettext" ,gettext-minimal)
                        ("texinfo" ,texinfo)
diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm
index 26d8eba3b6..4162fe43cd 100644
--- a/gnu/packages/sawfish.scm
+++ b/gnu/packages/sawfish.scm
@@ -53,7 +53,7 @@ 
      `(("makeinfo"   ,texinfo)
        ("pkg-config" ,pkg-config)
 
-       ("autoconf" ,autoconf-wrapper)
+       ("autoconf" ,autoconf)
        ("automake" ,automake)
        ("libtool"  ,libtool)))
     (inputs
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 029b5b6ebb..b78874ae18 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -4244,7 +4244,7 @@  It counts more than 100 plugins.")
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf-wrapper)
+     `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/zile.scm b/gnu/packages/zile.scm
index 6169815520..c28bc1bdd1 100644
--- a/gnu/packages/zile.scm
+++ b/gnu/packages/zile.scm
@@ -120,7 +120,7 @@  default Emacs configuration, but it carries a much lighter feature set.")
          ,@(package-inputs zile)))
       (native-inputs
        `(("m4" ,m4)                               ;for 'bootstrap'
-         ("autoconf" ,autoconf-wrapper)
+         ("autoconf" ,autoconf)
          ("automake" ,automake)
 
          ;; For some reason, 'bootstrap' insists on having these.
-- 
2.30.0