unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Autotools-generated 'configure' & 'Makefile.in' considered binaries?
@ 2022-03-30 12:04 Maxime Devos
  2022-03-30 14:31 ` Zhu Zihao
                   ` (3 more replies)
  0 siblings, 4 replies; 21+ messages in thread
From: Maxime Devos @ 2022-03-30 12:04 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1661 bytes --]

Hi guix,

Quite some packages in Guix use the Autotools system.  In this system,
a 'configure.ac' and 'Makefile.am' script / makefile is written, from
which 'autoconf' & 'automake' generate a very long bash script and a
Makefile.in.  Depending on the maintainer of the upstream package, this
'configure' and 'Makefile.in' are sometimes included in release
tarballs.

This seems in conflict with:

  * (guix)Submitting patches: ‘Make sure the package does not use
    bundled copies of software already available as separate
    packages.’

    Autotools packages have a 'config.guess' and 'config.sub' script
    that need to be updated whenever there's a new architecture.  As
    such, for some packages, these need to be replaced for aarch64,
    powerpc or risv64.  There are also some packages with very old
    configure scripts that don't support --build/--host/--target,
    which could gain --build/--host/--target support by just
    regenerating them.

    This also makes ensuring a package does not contain any malware
    much harder, because the configure script (and related files)
    needs to be read in their entirity.

 * When an upstream tarball contains .so, .dll, .a, etc. binaries,
   they are removed downstream in a snippet.  Why would the Autotools
   be an exception?

For some ‘early’ packages (gcc, glibc, binutils, ...), there's a
circularity problem, so building 'configure' and 'Makefile.in' from
source might not always be possible, but WDYT of building 'configure' &
'Makefile.in' from source for packages where it does not result in
bootstrapping problems?

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread
* Re: Autotools-generated 'configure' & 'Makefile.in' considered binaries?
@ 2022-06-29 19:01 Maxime Devos
  0 siblings, 0 replies; 21+ messages in thread
From: Maxime Devos @ 2022-06-29 19:01 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1867 bytes --]

Small clarification to old discussion:

Hello,

Ludovic Courtès <ludo@gnu.org> writes:

> Hi!
>
> Maxime Devos <maximedevos@telenet.be> skribis:
>
>> Ludovic Courtès schreef op vr 01-04-2022 om 10:58 [+0200]:
>>> As a first milestone, maybe we could start running ‘autoreconf’
more
>>> often, for packages higher in the graph.  We could change the
>>> ‘bootstrap’ build phase to do that unless it’s explicitly turned
off.
>>> It may turn out to be a Sisyphean task though…
>>>
>>> Thoughts?
>>
>> Changing all pre-existing packages, maybe.  But doing this for new
>> packages (reducing review effort) and perhaps when a package is
updated
>> (for purity) should be feasible I think?  Then gradually things
would
>> improve and eventually(TM) doing the switch in the bootstrap phase
may
>> become feasible ...
>
> Yes, we could do that as a first step (in fact it’s already happening
as
> some projects no longer distribute tarballs).
>
> What do maintainers think of that policy?

No strong opinion, but I agree that having a complete development
environment capable of building from the bare sources (e.g. a git tree)
is useful in general.  On the other hand, using tarballs is often
more efficient and practical (it's made to be built by downstream
users,
rather than by developers, so it includes everything needed).  Release
tarballs are also often signed by the projects, which is neat.  So
perhaps we can leave some flexibility there and not make it a hard
rule, but a case of best judgment?

We can both use tarballs _and_ unbundle/regenerate, no need to switch
from tarball to git (though that's one way to do things)!  E.g., adjust
the bootstrap phase to always "autoreconf -vif" and/or add snippets or
post-unpack phases to remove generated or bundled Autotools files.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2022-06-29 19:10 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-30 12:04 Autotools-generated 'configure' & 'Makefile.in' considered binaries? Maxime Devos
2022-03-30 14:31 ` Zhu Zihao
2022-03-31 11:17   ` Maxime Devos
2022-03-31 11:19   ` Maxime Devos
2022-03-31 11:22   ` Maxime Devos
2022-03-31 11:27   ` Maxime Devos
2022-03-30 18:55 ` Liliana Marie Prikler
2022-03-30 19:24   ` Maxime Devos
2022-03-31  4:22     ` Liliana Marie Prikler
2022-03-31 11:10       ` Maxime Devos
2022-03-31 18:24         ` Liliana Marie Prikler
2022-03-31 18:31           ` Maxime Devos
2022-03-31 20:11             ` Liliana Marie Prikler
2022-04-01  8:58 ` Ludovic Courtès
2022-04-01 10:03   ` Maxime Devos
2022-04-05 12:06     ` Ludovic Courtès
2022-04-06 16:35       ` Maxim Cournoyer
2022-04-10 20:25         ` Ludovic Courtès
2022-05-02 10:55       ` zimoun
2022-04-01  9:12 ` Jonathan McHugh
  -- strict thread matches above, loose matches on Subject: below --
2022-06-29 19:01 Maxime Devos

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).