Re: Direct symlink farm for transitive dependencies vs search paths

2024-09-17 Thread Adam Faiz
> Let's say that A depends on B, and B depends on C.
> 
> With search paths, A doesn't have symlinks to B, and B doesn't have symlinks 
> to 
> C. Thus, disk space is saved.
> 
> However, adding search path patches to existing softwares is cumbersome, and 
> a 
> long list of search paths results in inefficient searches.
> 
> Let's assume that B has symlinks to C, and A has symlinks to everything in B. 
> This means A has symlinks to symlinks in B. Transitive symlink is probably 
> more 
> efficient than search path. If A just copies symlinks from B and has symlinks 
> to plain files in B, then A ends up with only direct symlinks. Direct 
> symlinks 
> are more efficient than transitive symlinks.
> 
> It seems that search paths are preferred over symlinks to transitive 
> dependencies in gnu guix. Why?
Search paths are preferred because their purpose is to provide a list of places 
to look for extensions/plugins/mods of a package. Essentially, search paths are 
a way to provide runtime dependencies that are optional.

Packages usually link directly to their dependencies at compile time, except 
for scripting programming languages(which aren't expected to have linking 
functionality). Propagated inputs are used for the transitive dependencies you 
mention, but they should only be used for required dependencies that have to be 
installed with the package for it to detect them.

Packages shouldn't need to have symlinks in their output to another package 
when it could just directly reference it instead. More information on how 
native-inputs, inputs and propagated-inputs are different is explained in the 
Guix manual:
https://guix.gnu.org/manual/devel/en/html_node/package-Reference.html#index-inputs_002c-of-packages



Re: When can package be added to Guix?

2024-01-13 Thread Adam Faiz via
Hi martin,
> Hello, I follow a cool project, PrivacyBrowser, by Soren Stoutner.

> I have been eagerly awaiting its inclusion in Guix, but for some reason it 
> has stalled, and no response has been given to the developer. See chain here: 
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64408

> Can anything be done?

I think you should follow Clément Lassieur's suggestions in the link above, but 
I recommend web-browsers.scm as a more appropriate place than qt.scm for adding 
PrivacyBrowser.

Sometimes the developers forget about patches, so it's good to notify Guix 
committers by IRC or emailing the appropriate package team listed in 
etc/teams.scm.

> Thanks,
> mlampstaff


Re: guix package build: can distcc be used?

2022-12-25 Thread Adam Faiz

curious if distcc can be used for building packages in Guix?

If yes that can reduce the time spent in building significantly.
Currently, guix build doesn't support distcc for distributing individual 
source code files for compilation.
However, guix offload can be used to offload the whole build jobs to 
another trusted machine(s).


It's unknown whether implementing usage of distcc and enabling it in 
`guix build` will affect bit-for-bit reproducibility of packages.


The distcc feature request and adding distcc to guix's dependency 
closure and should be discussed further on guix-devel before implementing.