diff mbox series

[bug#60636] Add 'manifest.scm'

Message ID 20230108002719.19791-1-bjc@spork.org
State New
Headers show
Series [bug#60636] Add 'manifest.scm' | expand

Commit Message

Brian Cully Jan. 8, 2023, 12:27 a.m. UTC
---
 manifest.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 manifest.scm

Comments

Maxim Cournoyer Jan. 11, 2023, 7:15 p.m. UTC | #1
Hi,

Brian Cully <bjc@spork.org> writes:

> ---
>  manifest.scm | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
>  create mode 100644 manifest.scm
>
> diff --git a/manifest.scm b/manifest.scm
> new file mode 100644
> index 0000000..bdd4e64
> --- /dev/null
> +++ b/manifest.scm
> @@ -0,0 +1,29 @@
> +;; This is the complete list of Guix packages necessary for building Shepherd.

This is intended for the Shepherd repository, right?

> +;; For example the following shell command will run the built-in tests:
> +;;
> +;;  % guix shell -m manifest.scm --pure -- make check
> +
> +(specifications->manifest
> + '("autoconf"
> +   "automake"
> +   "binutils"
> +   "coreutils"
> +   "diffutils"
> +   "findutils"
> +   "gawk"
> +   "gcc"
> +   "gettext"
> +   "glibc"
> +   "grep"
> +   "guile"
> +   "guile-fibers"
> +   "guile-readline"
> +   "help2man"
> +   "libtool"
> +   "make"
> +   "pkg-config"
> +   "sed"
> +   "tar"
> +   "texinfo"
> +   "xz"))

The value this provides above 'guix shell -D shepherd' is that it
includes the build system bootstrapping packages too (autoconf,
automake, etc.), right?  Are all these items really needed?  Why do we
need GCC, or glibc or gettext for example?

Thanks for this contribution,
Brian Cully Jan. 12, 2023, 2:18 p.m. UTC | #2
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

> This is intended for the Shepherd repository, right?

Yes. The shepherd documentation pointed me to the Guix ML and 
bugtracker. If there’s somewhere better, I can re-submit.

> The value this provides above 'guix shell -D shepherd' is that 
> it
> includes the build system bootstrapping packages too (autoconf,
> automake, etc.), right?

That’s correct. Shepherd can’t be built from a checkout using 
‘guix shell -D shepherd’ because (according to Ludo) Guix uses the 
tarball as a source, not the git repository. Ludo did mention on 
IRC that shepherd could probably use a manifest.scm when I asked 
him about it, but I don’t want to speak for him more than that.

> Are all these items really needed?  Why do we
> need GCC, or glibc or gettext for example?

I added every item in response to one of the build steps 
failing. GCC is needed, for instance, because configure tests for 
the existence of a working C compiler (probably because of 
etc/crash-handler.c, but I couldn’t say for sure), glibc is needed 
because we’ve got a C compiler in the mix, and gettext is needed 
for ‘autoconf-point’.

-bjc
Maxim Cournoyer Jan. 12, 2023, 10:31 p.m. UTC | #3
+CC Ludovic

Hello,

Brian Cully <bjc@spork.org> writes:

> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
>
>> This is intended for the Shepherd repository, right?
>
> Yes. The shepherd documentation pointed me to the Guix ML and
> bugtracker. If there’s somewhere better, I can re-submit.
>
>> The value this provides above 'guix shell -D shepherd' is that it
>> includes the build system bootstrapping packages too (autoconf,
>> automake, etc.), right?
>
> That’s correct. Shepherd can’t be built from a checkout using ‘guix
> shell -D shepherd’ because (according to Ludo) Guix uses the tarball
> as a source, not the git repository. Ludo did mention on IRC that
> shepherd could probably use a manifest.scm when I asked him about it,
> but I don’t want to speak for him more than that.
>
>> Are all these items really needed?  Why do we
>> need GCC, or glibc or gettext for example?
>
> I added every item in response to one of the build steps failing. GCC
> is needed, for instance, because configure tests for the existence of
> a working C compiler (probably because of etc/crash-handler.c, but I
> couldn’t say for sure), glibc is needed because we’ve got a C compiler
> in the mix, and gettext is needed for ‘autoconf-point’.

Adding gcc-toolchain would probably be better than the separate gcc and
glibc.

Other than that, LGTM.  Could you send a v2 with the above change?
Thanks for explaining!
diff mbox series

Patch

diff --git a/manifest.scm b/manifest.scm
new file mode 100644
index 0000000..bdd4e64
--- /dev/null
+++ b/manifest.scm
@@ -0,0 +1,29 @@ 
+;; This is the complete list of Guix packages necessary for building Shepherd.
+;;
+;; For example the following shell command will run the built-in tests:
+;;
+;;  % guix shell -m manifest.scm --pure -- make check
+
+(specifications->manifest
+ '("autoconf"
+   "automake"
+   "binutils"
+   "coreutils"
+   "diffutils"
+   "findutils"
+   "gawk"
+   "gcc"
+   "gettext"
+   "glibc"
+   "grep"
+   "guile"
+   "guile-fibers"
+   "guile-readline"
+   "help2man"
+   "libtool"
+   "make"
+   "pkg-config"
+   "sed"
+   "tar"
+   "texinfo"
+   "xz"))