blob: 18f4f516c7c5d7230d3d21ed876171ea1707a33a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
* Profiles
** What is a profile?
A profile is a directory of symlinks which point to the paths of built
artifacts in the store.
** How do the paths of a system get set in a shell?
In your bash profile. When you open a shell, bash profile source's
$GUIX/etc/profile. This sets the path.
These profiles are themselves derivations. Your guix profile is a directory
built as a derivation, and your home directory simply points to it.
For more details, see (guix profiles)
** What is an input in a package?
An package "input" is a package dependency it is necessary to build or use the
package.
** What is a propagated input in a package?
A "propagated input" is a package dependency that gets added to the
profile. It is useful for specifying runtime dependencies.
The "propogated inputs" of a package are used to build profiles
recursively. The specify the paths that get added to a profile.
** What is a native input in a package?
A "native input" is a build dependency on the build architecture. It could be
different than the target architecture in a cross compilation.
** What is an input in a derivation?
The inputs of a derivation are its runtime dependencies.
** How does "hash guix" work?
...
** What do you want the Rocq packaging to look like?
Specify each package individually. Rocq's keystone package is "rocq-runtime"
so it should be installed first and labelled as such. For each of the other
packages, make sure that you inherit "rocq-runtime" and extend them as
necessary.
Give clear descriptions of the packages you build.
Make sure the propogated inputs are "sticky", so that all dependent propogated
inputs get bubbled up to the profile.
|