On Tue, 10 Mar 2026, Ludovic Courtès <[email protected]> wrote:
> Hello!
>
> Janneke Nieuwenhuizen <[email protected]> skribis:
>
>>> And, there’s some good news!  I hear fellow hackers have been working on
>>> this thing called BLUE, which could address our tarball problem as well!
>>> That is, once Guix uses BLUE as its build system, ‘make dist’ is
>>> effectively gone,
>>
>> Well, "someone" actually contributed some patches to BLUE *), making sure
>> that `make dist' would produce a reproducible source tarball ootb ;)
>>
>> Possibly BLUE should support a `make git-dist' or something; but as a
>> generic build system you'd probably not want have a hard dependency on
>> git?  Dunno...
>
> [...]
>
>> *) https://codeberg.org/lapislazuli/blue/pulls/251
>>    https://codeberg.org/lapislazuli/blue/pulls/258
>
> Nice!  I’m looking at ‘tarball.scm’ and it’s not entirely clear what
> ‘inputs’ contains: can it be more than just the list of source files
> (checked in)?  I would expect no?

Inputs is a list of:

 - A source file (string)
 - Another buildable (object base dependency tracking; e.g. a template-file)
 - An external dependency (e.g. something resolved by pkg-config)

As described in the <buildable> (blue/types/buildable.scm) definition:

    (inputs
     #:getter %buildable-inputs
     #:init-value '()
     #:init-keyword #:inputs
     #:type (type-or-list-of-type?
             (or?
              string?
              buildable?
              dependency?)))


The tarball manifest builder can filter the tarball inputs to only take
strings (source files), and possibly outputs of other buildables (i.e
generated source files, artifacts).

> Put differently, when would one ask BLUE to create a tarball instead of
> using ‘git archive’?

I see some cases:

  - The project is not using Git but another VCS.
  
  - Git archive is not flexible enough for what is required

    - The wanted compression format is not supported by Git

Otherwise, `git-archive(1)' is flexible enought to do a lots of things.

I leave the choice to the users to decide what they want to introduce as
a build dependency:

 - git :
  - dependencies: [email protected] [email protected] [email protected] 
[email protected] [email protected] [email protected] [email protected] 
[email protected] [email protected] [email protected] [email protected]
+ [email protected] [email protected] [email protected] [email protected] 
[email protected] [email protected] [email protected] 
[email protected] [email protected] [email protected] [email protected] 
[email protected]
+ [email protected] [email protected] [email protected] [email protected] [email protected]
[email protected] [email protected]

 - tar :
   - dependencies:

Thanks,
Olivier
-- 
Olivier Dion

Reply via email to