Commit graph

3456 commits

Author SHA1 Message Date
Ludovic Courtès
b5018807ee
doc: Mention channel files beyond ~/.config/guix.
* doc/guix.texi (Channels): Instead of mentioning just
~/.config/guix/channels.scm, mention channel files in general and link
to “Invoking guix pull”.

Change-Id: Iefb8a2d5ee5d804b2b6319785842fc3a97704495
2024-03-22 11:40:33 +01:00
Antero Mejr
883e69cdfd
services: guix: Add ‘channels’ field.
* doc/guix.texi (Base Services): Document
'guix-configuration-channels' field.
(Invoking guix pull): Add cross-reference.
* gnu/services/base.scm (install-channels-file): New procedure.
(guix-configuration): Add channels field.
(guix-activation): Use 'install-channels-file' procedure.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I4d89235bf0bc6dde69984138ccb894b48ace9d76
2024-03-22 11:40:32 +01:00
Ludovic Courtès
d67e4f0f9b
doc: Add “Source Tree Structure” section.
* doc/contributing.texi (Source Tree Structure): New node.
* doc/guix.texi (Programming Interface): Add cross-reference.

Change-Id: I141a1f4d806ae5f72c7a246e18c14dc63056a607
2024-03-21 17:43:16 +01:00
Ludovic Courtès
c8c5d12e45
doc: Update ‘block-facebook-hosts-service-type’ description.
This is a followup to c1d37d0653.

* doc/guix.texi (Networking Services): Update to mention unroutable
addresses.

Change-Id: I6f62e1f414a3eb7892b2d4cc0d011458bbec7001
2024-03-21 17:43:16 +01:00
Ludovic Courtès
176e2eda7f
doc: cookbook: Account for ‘guix pull’ in /etc/profile instructions.
* doc/guix-cookbook.texi (Setting Up Compute Nodes): Include
$HOME/.config/guix/current.

Change-Id: I6c1c42394991af8f1fa7c2630bdb4b0aef946c2b
2024-03-19 17:02:15 +01:00
Ludovic Courtès
b7931e6f5d
git authenticate: Document ‘--end’.
* guix/scripts/git/authenticate.scm (show-help): Document ‘--end’.
* doc/guix.texi (Invoking guix git authenticate): Likewise.

Reported-by: Tomas Volf <~@wolfsden.cz>
Change-Id: Ia646203ce2f721487de547c76b9488754c70db66
2024-03-19 17:02:14 +01:00
Maxim Cournoyer
f12172612d
doc: Adjust for QEMU info manual name change.
* doc/guix.texi (Networking Setup): Change QEMU to qemu for its info manual
reference.

Change-Id: I55f57e66947f2581531c15fd5228a3ca043a9574
2024-03-19 03:40:09 -04:00
Carlo Zancanaro
d25620be4c
gnu: services: Add insecure-sasl-mechanisms to prosody configuration.
* gnu/services/messaging.scm (prosody-configuration): Add
insecure-sasl-mechanisms configuration option.
* doc/guix.texi (Messaging Services): Document it.

Change-Id: I8d9e42476ea8ad2f89b143ed4a66b4798e418586
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2024-03-17 12:53:21 +01:00
Rostislav Svoboda
4fe9aae225
doc: Correct the "guix package --install-from-expression" example.
* doc/guix.texi (Invoking @command{guix package}): Correct the module where
'guile-final' is defined. It is actually located in (gnu packages
commencement) rather than in the (gnu packages base).

Change-Id: I7747106916d53dcbe296b7302983c5013eb2926d
Signed-off-by: Christopher Baines <mail@cbaines.net>
2024-03-16 22:39:30 +00:00
Luis Felipe
999bfa0d54
doc: build: Update paths to style sheets.
The Guix website style sheets are now organized in themes. This change
makes the documentation builder use the resources provided by a theme
called "initial" (See https://issues.guix.gnu.org/69783).

* doc/build.scm (syntax-highlighted-html): Update path to CSS.
(html-manual-indexes): Likewise.
(stylized-html): Likewise, and update path to language picker image.

Change-Id: Ib2d51fcfdec42ad827add1ead1cfee4c9c4e65b7
Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
2024-03-15 23:22:45 +01:00
Fabio Natali
3bd795bc57
doc: Fix section on LUKS support.
Only LUKS1 is supported in Guix at the time of this commit. Contrarily to what
reported in previous versions of this section, LUKS2 is not supported.

* doc/guix.texi (Keyboard Layout, Networking, and Partitioning)[Disk
Partitioning]: Fix section on LUKS support.

Signed-off-by: Christopher Baines <mail@cbaines.net>
Change-Id: Ia670963178810174d3ea4585c537defbaaeb0f25
2024-03-14 13:31:13 +00:00
Giacomo Leidi
01f685d560
gnu: home: dotfiles: Properly support both plain and Stow directory layouts.
Fixes <https://issues.guix.gnu.org/68848>.

The current implementation of the home-dotfiles-service-type contradicts
the Guix manual.  This patch properly implements both the plain and Stow
dotfiles directory layouts.

It does so by refactoring home-dotfiles-configuration adding a new
packages field to support GNU Stow's users workflow and introducing
a new layout field to switch between the two directory layouts.

* gnu/home/services/dotfiles (home-dotfiles-configuration): Migrate to
(gnu services configuration);
[packages]: new field;
[layout]: new field;
(strip-stow-dotfile): new variable;
(strip-plain-dotfile): new variable;
(home-dotfiles-configuration->files): use the new fields;
[directory-contents]: allow for
selecting a subset of application dotfile directories;
* doc/guix.texi: document the new layouts.

Change-Id: I2e96037608353e360828290f055ec5271cfdfd48
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-03-06 23:25:51 +01:00
Ludovic Courtès
364422d0ac
doc: Fix typo in “Getting Started with the System”.
* doc/guix.texi (Getting Started with the System): Fix typo.

Change-Id: Idc52b9a4d5f5003899613595b6b275e098f6a3a8
2024-03-06 23:25:51 +01:00
Ludovic Courtès
edde7ee1bc
doc: Add “Inspecting Services” section.
* doc/guix.texi (Inspecting Services): New subsection.

Change-Id: I71378101de913a494e0d0e93cc76434c5a70b520
2024-03-02 16:08:50 +01:00
Ludovic Courtès
60c9a339df
doc: Add “Getting Started with the System” section.
* doc/guix.texi (Getting Started with the System): New node.
(After System Installation): Refer to it.  Move note about ‘sudo guix
pull’ to the “Getting Started with the System”.
(Getting Started): Refer to it.  Move note about ‘guix system roll-back’
to “Getting Started with the System”.
(Features): Refer to it.
(Using the Configuration System): Adjust intro.  Add “Troubleshooting”
note that mentions ‘guix style -f’ for misplaced parens.
(Instantiating the System): Simplify and cross-reference “Getting
Started with the System”.

Change-Id: Ie74f598450e8059a4579a016e2aeca2edd7696a7
2024-03-02 16:08:49 +01:00
Carlo Zancanaro
e64617c5fa
doc: Document required setup steps for Nix service.
* doc/guix.texi (Nix service): Add specific channel setup commands, add
commands to create profile directory.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-27 11:51:07 +01:00
Herman Rimm
b386c11e78
import: Do not return package name with json importer.
* guix/import/json.scm (json->code): Do not return package names after
package expressions.
* doc/package-hello.json: Fix comma errors and use valid greeter URL.

Change-Id: Id71924e72f690a9bda5fbfdb65a443029adfd158
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23 19:02:55 +01:00
Herman Rimm
635af8628c
import: Insert packages into modules alphabetically.
* guix/scripts/import.scm (guix-import): Add 'insert' option.
(import-as-definitions): Add procedure.
* doc/guix.texi (Invoking guix import): Describe 'insert' option.

Change-Id: Id87ea707123630e12bcb6788599acac6895b26c4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23 19:02:35 +01:00
Herman Rimm
bf746ae258
doc: Note SVN dependency of texlive importer.
* doc/guix.texi (Invoking guix import): Note dependency and remove
  duplicated words.

Change-Id: I94320db8c8ab3569aa461876522d5560e37a19ea
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23 19:00:52 +01:00
Maxim Cournoyer
ec9c8b0c1a
doc: Refine wording of binary installation introductory text.
* doc/guix.texi (Binary Installation): Mention the requirement to use a
Hurd or Linux kernel for the binary installation.

Suggested-by: Matt <matt@excalamus.com>
Change-Id: Ibc0552f59be4fdaaf8d44a5222e6feb925d3f06f
2024-02-21 12:05:00 -05:00
Ludovic Courtès
96ae7b2e33
doc: Augment ‘whoogle-service-type’ intro.
* doc/guix.texi (Whoogle Search): Enrich a bit.

Change-Id: Ib7e1da1c0709167d02c43ab991f3ae34fbc09c84
2024-02-20 10:57:16 +01:00
Miguel Ángel Moreno
0a7bf792c8
services: Add whoogle-service-type.
* gnu/services/web.scm (whoogle-service-type): New variable.
* doc/guix.texi (Web Services): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-20 10:57:16 +01:00
Ludovic Courtès
1cff19d8d4
services: virtual-build-machine: Add ‘configuration’ action.
* gnu/services/virtualization.scm (build-vm-shepherd-services): Add
‘configuration’ action.
* doc/guix.texi (Virtualization Services): Document it.

Change-Id: I4734e096d744b3cda0d523692498a73c0029e188
2024-02-18 15:34:43 +01:00
Ludovic Courtès
9edbb2d7a4
services: Add ‘virtual-build-machine’ service.
* gnu/services/virtualization.scm (<virtual-build-machine>): New record type.
(%build-vm-ssh-port, %build-vm-secrets-port, %x86-64-intel-cpu-models):
New variables.
(qemu-cpu-model-for-date, virtual-build-machine-ssh-port)
(virtual-build-machine-secrets-port): New procedures.
(%minimal-vm-syslog-config, %virtual-build-machine-operating-system):
New variables.
(virtual-build-machine-default-image):
(virtual-build-machine-account-name)
(virtual-build-machine-accounts)
(build-vm-shepherd-services)
(initialize-build-vm-substitutes)
(build-vm-activation)
(virtual-build-machine-offloading-ssh-key)
(virtual-build-machine-activation)
(virtual-build-machine-secret-root)
(check-vm-availability)
(build-vm-guix-extension): New procedures.
(initialize-hurd-vm-substitutes): Remove.
(hurd-vm-activation): Rewrite in terms of ‘build-vm-activation’.
* gnu/system/vm.scm (linux-image-startup-command): New procedure.
(operating-system-for-image): Export.
* gnu/tests/virtualization.scm (run-command-over-ssh): New procedure,
extracted from…
(run-childhurd-test): … here.
[test]: Adjust accordingly.
(%build-vm-os): New variable.
(run-build-vm-test): New procedure.
(%test-build-vm): New variable.
* doc/guix.texi (Virtualization Services)[Virtual Build Machines]: New
section.
(Build Environment Setup): Add cross-reference.

Change-Id: I0a47652a583062314020325aedb654f11cb2499c
2024-02-10 23:21:07 +01:00
Hilton Chain
2b296427d7
gnu: mbedtls-apache: Rename to mbedtls-lts.
* gnu/packages/tls.scm (mbedtls-apache): Rename package to "mbedtls".
Rename variable to…
(mbedtls-lts): …this.
(mbedtls-apache): Define as deprecated by mbedtls-lts.
(mbedtls-for-hiawatha): Adjust accordingly.
* doc/guix.texi: Likewise.
* gnu/packages/emulators.scm (dolphin-emu,retroarch)[inputs]: Likewise.
* gnu/packages/game-development.scm (godot-lts,godot)[inputs]: Likewise.
* gnu/packages/hardware.scm (hueplusplus,openrgb)[inputs]: Likewise.
* gnu/packages/haxe.scm (neko,haxe,hashlink)[inputs]: Likewise.
* gnu/packages/irc.scm (inspircd)[inputs]: Likewise.
* gnu/packages/julia-jll.scm (julia-mbedtls-jll)[arguments]<#:phases>,[inputs]:
Likewise.
* gnu/packages/julia.scm (julia)[arguments]<#:phases>,[inputs]: Likewise.
* gnu/packages/linphone.scm (bctoolbox)[inputs]: Likewise.
* gnu/packages/linux.scm (dislocker)[inputs]: Likewise.
* gnu/packages/networking.scm (nng)[inputs]: Likewise.
* gnu/packages/search.scm (dataparksearch)[inputs]: Likewise.
* gnu/packages/video.scm (obs)[inputs]: Likewise.
* gnu/packages/web.scm (hiawatha)[arguments]<#:phases>: Likewise.

Change-Id: I0c58b3cd0bcf6e44e7b16a69f6d2739aa3c1545b
2024-02-05 13:56:31 +08:00
Simon Tournier
9389070b9c
doc: contributing: Remove sentences appearing twice.
* doc/contributing.texi (Commit Access): Remove sentences appearing twice and
use @url.

Change-Id: I2b0cb9eebc6f9f66147f286c0bdffdf8924ec412
2024-02-03 10:29:54 +01:00
Simon Tournier
f2e5e94544
doc: contributing: Fix typo.
* doc/contributing.texi (Reviewing the Work of Others): Fix typo.

Change-Id: I4d3afd4f7e47dbda8a43fdf7f18c7c233d1c8762
2024-02-02 17:12:38 +01:00
Maxim Cournoyer
b88bff628d
doc: Mention the responsibilities that blocking comes with.
* doc/contributing.texi (Commit Access): Mention that blocking comes with
extra responsibilities.

Reviewed-by: Simon Tournier <zimon.toutoune@gmail.com>
Signed-off-by: Simon Tournier <zimon.toutoune@gmail.com>
2024-02-02 17:09:27 +01:00
Carlo Zancanaro
d4a4b12f0a
services: certbot: Reload nginx in deploy hook.
* gnu/services/certbot.scm (certbot-deploy-hook): Reload nginx.
* doc/guix.texi (Certificate services): Remove deploy-hook from example.

Change-Id: Ibb10481170a6fda7df72492072b939dd6a6ad176
Signed-off-by: Clément Lassieur <clement@lassieur.org>
2024-01-31 16:54:16 +01:00
Carlo Zancanaro
fc0ec9a3cc
services: certbot: Create self-signed certificates before certbot runs.
* gnu/services/certbot.scm (<certificate-configuration>): Add
start-self-signed? field.
(generate-certificate-gexp): New procedure.
(certbot-activation): Generate self-signed certificates when
start-self-signed? is #t.
* doc/guix.texi (Certificate services): Document start-self-signed?.

Change-Id: Icfd85ae0c3e29324acbcde6ba283546cf0e27a1d
Signed-off-by: Clément Lassieur <clement@lassieur.org>
2024-01-31 16:54:12 +01:00
Carlo Zancanaro
a2b1ef903b
services: certbot: Symlink certificates to /etc/certs.
* gnu/services/certbot.scm (certbot-deploy-hook): New procedure.
(certbot-command): Pass new deploy hook to certbot.
* doc/guix.texi: Replace "letsencrypt/live" with "certs" throughout, except in
the certbot deploy-hook description.

Change-Id: I2ba5e4903d1e293e566b732a84b07d5a134b697d
Signed-off-by: Clément Lassieur <clement@lassieur.org>
2024-01-31 16:54:03 +01:00
Attila Lendvai
dde76db33f
services: shepherd: Add respawn-limit and respawn-delay.
* gnu/services/shepherd.scm (<shepherd-service>): Add respawn-limit and
respawn-delay.
(shepherd-service-file): Emit the two values into the shepherd service
constructor form.

Change-Id: I54408e8fb4bcc0956d9610771bf5c566fdc2914c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-01-28 22:50:49 +01:00
Ludovic Courtès
5d2bc09f0a
doc: Add index entries for “dot files” and “Stow”.
* doc/guix.texi (Essential Home Services): Add index entries.

Change-Id: I0c3a5f5d94fe273c137eb3ca5fa6c5c91a34599b
2024-01-28 22:50:49 +01:00
Giacomo Leidi
2f67528edd
home: Add home-dotfiles-service.
* gnu/home/service/dotfiles.scm: New file;
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* po/guix/POTFILES.in: Add it.
* doc/guix.texi (Essential Home Services): Document it.

Change-Id: I6769169cfacefc3842faa5b31bee081c56c28743
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2024-01-28 22:50:49 +01:00
Florian Pelz
2823253484
doc: Fix typo.
Follow-up to 3872ecf274.

* doc/guix.texi (Complex Configurations): Use correct variable name.
2024-01-27 01:39:17 +01:00
Maxim Cournoyer
e06b283f60
doc: Define mumble-server-service-type as a variable.
Using defvar for service types causes them to be part of the index, which is
useful for discoverability.

* doc/guix.texi (Telephony Services) <mumble-server-service-type>: Define with
defvar.

Change-Id: I01bed0c86ff12425a81294cb12f1b2a8bd14cd6f
2024-01-26 15:24:00 -05:00
Maxim Cournoyer
063445792b
doc: Define jami-service-type as a variable.
Using defvar for service types causes them to be part of the index, which is
useful for discoverability.

* doc/guix.texi (Telephony Services) <jami-service-type>: Define with
defvar.

Change-Id: I7cbb3b7c84c34a91db689b8698a19ed49ef607b4
2024-01-26 15:23:50 -05:00
Maxim Cournoyer
2b0f475809
doc: Define postgresql-service-type as a variable.
Using defvar for service types causes them to be part of the index, which is
useful for discoverability.

* doc/guix.texi (Database Services) <postgresql-service-type>: Define with
defvar.

Change-Id: If1c920ad275a9386ec7bb9e48e9a132df98dee97
2024-01-26 15:04:13 -05:00
Ludovic Courtès
6cca8f0694
weather: Add ‘-e’.
* guix/scripts/weather.scm (show-help, %options): Add ‘-e’.
(guix-weather): Handle it.
* doc/guix.texi (Invoking guix weather): Document it.

Change-Id: I6dc97ec2b8226b57be33247b05a34c23b573a64f
2024-01-24 23:28:38 +01:00
Romain GARBAGE
916fb5347a
guix: download: Add support for git repositories.
* guix/scripts/download.scm (git-download-to-store*): Add new variable.
(copy-recursively-without-dot-git): New variable.
(git-download-to-file): Add new variable.
(show-help): Add 'git', 'commit', 'branch' and 'recursive'options
help message.
(%default-options): Add default value for 'git-reference' and
'recursive' options.
(%options): Add 'git', 'commit', 'branch' and 'recursive' command
line options.
(guix-download) [hash]: Compute hash with 'file-hash*' instead of
'port-hash' from (gcrypt hash) module. This allows us to compute
hashes for directories.
* doc/guix.texi (Invoking guix-download): Add @item entries for
`git', `commit', `branch' and `recursive' options. Add a paragraph in
the introduction.
* tests/guix-download.sh: New tests. Move variables and trap definition
to the top of the file.

Change-Id: Ic2c428dca4cfcb0d4714ed361a4c46609339140a
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2024-01-22 10:02:28 -05:00
muradm
1bdeec5d66
services: connman: Add 'connman-general-configuration'.
Currently connman has no main.conf as specified in 'man 5 connman.conf' which
would allow setting NetworkInterfaceBalcklist and other useful options.

This patch adds connman-general-configuration, serializes it and
passes to connmad with --config= flag.

All configuration fields are 'maybe-*' deliberately, to not disturb current
users and not require supporting configuration changes for connmand.

* gnu/services/networking.scm (<connman-general-configuration>): New
configuration record to represent main.conf for connmand.
(<connman-configuration>)[general-configuration]: New field.
(connman-shepherd-service): Honor it.
*doc/guix.texi (Networking Services): Add generated configuration.

Change-Id: I5d78f49e8b2d5e0b3cbd7b8b604e8a254b6397e8
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2024-01-22 09:51:32 -05:00
Jean-Pierre De Jesus DIAZ
2a43692aa7
guix: Add ork1-elf platform.
* doc/guix.texi: Document or1k-elf platform.
* guix/platforms/or1k.scm (or1k-elf): New variable.
* Makefile.am (MODULES): Add guix/platforms/or1k.scm.

Change-Id: I3f71a0fa97f1ebd2bbdbf6cd00a93b477a123648
2024-01-22 11:26:56 +01:00
Efraim Flashner
cb3f833aaa
doc: Fix mistakes in the manual.
Recommended by Christian Miller.

* doc/guix.texi (Packages with Multiple Outputs): Replace 'a packages'
with 'a package'.
(Invoking guix time-machine): Don't assume knowledge and give an
explicit link to Back to the Future.
(Invoking guix pack): Remove doubled word.
(Build Systems): Same.
(Debugging Build Failures): 'inspect' is not a command to be run.
(Invoking guix import): Remove doubled word.
(Invoking guix size): Remove stray word.
(Invoking guix processes): Replace 'guix environment' with 'guix shell'.
(Base Services): Add missing word.
(Networking Setup): Adjust a/an usage.
(Networking Services): Remove stray symbol.  Add space between two
words.
(Desktop Services): Remove stray symbol from example.
(Database Services): Document default postgresql version.
(Web Services): Adjust indentation.
(Audio Services): Add missing newline.
(Miscellaneous Services): Switch 'get' to 'gets'.
(Bootloader Configuration): Remove stray symbol.
(Secure Shell): Remove marks around accepted values.
(Installing Debugging Files): Replace 'is' with 'it'.
(Full-Source Bootstrap): Remove doubled word.
(Preparing to Use the Bootstrap Binaries): Same.

Change-Id: Ifbf2677dff7642c6531384145363d7611286e48b
2024-01-16 14:24:10 +02:00
Tomas Volf
086850e5b2
bootloader: grub: Add support for loading an additional initrd.
In order to be able to provide decryption keys for the LUKS device, they need
to be available in the initial ram disk.  However they cannot be stored inside
the usual initrd, since it is stored in the store and being a
world-readable (as files in the store are) is not a desired property for a
initrd containing decryption keys.  This commit adds an option to load
additional initrd during the boot, one that is not stored inside the store and
therefore can contain secrets.

Since only grub supports encrypted /boot, only grub is modified to use the
extra-initrd.  There is no use case for the other bootloaders.

* doc/guix.texi (Bootloader Configuration): Describe the new extra-initrd
field.
* gnu/bootloader.scm (<bootloader-configuration>): Add extra-initrd field.
* gnu/bootloader/grub.scm (make-grub-configuration): Use the extra-initrd
field.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I995989bb623bb594ccdafbf4a1a6de941bd4189f
2024-01-14 23:00:03 +01:00
Tomas Volf
d082312ef7
mapped-devices: Allow unlocking by a key file.
Requiring the user to input their password in order to unlock a device is not
always reasonable, so having an option to unlock the device using a key file
is a nice quality of life change.

* gnu/system/mapped-devices.scm (open-luks-device): Add #:key-file argument.
(luks-device-mapping-with-options): New procedure.
* doc/guix.texi (Mapped Devices): Describe the new procedure.

Change-Id: I1de4e045f8c2c11f9a94f1656e839c785b0c11c4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-01-14 23:00:03 +01:00
Nikolaos Chatzikonstantinou
cd7763350a
doc: Fix typos and add readonly option to qemu invocation.
* doc/guix.texi: Fix typos and add readonly option to qemu invocation.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Change-Id: I7b686e8ff45532e96fe370f0f344977cdf218bbe
2024-01-12 17:32:05 +01:00
David Elsing
b26926189e
guix: import: Optionally import necessary yanked crates.
* doc/guix.texi (Invoking guix import): Mention '--allow-yanked'.
* guix/import/crate.scm (make-crate-sexp): Add yanked? argument. For
yanked packages, use the full version suffixed by "-yanked" for
generated variable names and add a comment and package property.
(crate->guix-package): Add allow-yanked? argument and if it is set to #t,
allow importing yanked crates if no other version matching the
requirements exists.
[find-package-version]: Packages previously marked as yanked are only
included if allow-yanked? is #t and then take the lowest priority.
[find-crate-version]: If allow-yanked? is #t, also consider yanked
versions with the lowest priority.
[dependency-name+version]: Rename to ...
[dependency-name+version+yanked] ...this. Honor allow-yanked? and choose
between an existing package and an upstream package.  Exit with an error
message if no version fulfilling the requirement is found.
[version*]: Exit with an error message if the crate version is not found.
(cargo-recursive-import): Add allow-yanked? argument.
* guix/read-print.scm: Export <comment>.
* guix/scripts/import/crate.scm: Add "--allow-yanked".
* tests/crate.scm: Add test 'crate-recursive-import-only-yanked-available'.
[sort-map-dependencies]: Adjust accordingly.
[remove-yanked-info]: New variable.
Adjust test 'crate-recursive-import-honors-existing-packages'.
(test-bar-dependencies): Add yanked dev-dependencies.
(test-leaf-bob-crate): Add yanked versions.
(rust-leaf-bob-3.0.2-yanked): New variable.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: I175d89b39774e6b57dcd1f05bf68718d23866bb7
2024-01-09 09:38:38 +02:00
David Elsing
9f44ff2bb4
import: crate: Optionally import dev-dependencies recursively.
If --recursive-dev-dependencies is specified, development dependencies
are also included for all recursively imported packages.

* doc/guix.texi (Invoking guix import): Mention --recursive-dev-dependencies.
* guix/import/crate.scm (crate-recursive-import): Add
recursive-dev-dependencies? argument.
* guix/scripts/import/crate.scm (show-help, guix-import-crate): Add
"--recursive-dev-dependencies".
* tests/crate.scm: Test both #f and #t for #:recursive-dev-dependencies?
in the 'cargo-recursive-import' test.
(test-root-dependencies): Add intermediate-c as dev-dependency.
(test-intermediate-c-crate, test-intermediate-c-dependencies): New
variables.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: Iae89794681155d77f128733120e60f03bc297717
2024-01-09 09:38:38 +02:00
Oleg Pykhalov
0cf75c9b2f
guix: pack: Build layered images.
* guix/scripts/pack.scm (docker-image, guix-pack, %default-options,
%docker-format-options, show-docker-format-options/detailed): Handle
'--max-layers' option.
* doc/guix.texi (Invoking guix pack): Document this.

Change-Id: I90660b2421fcdde891f003469fe2e2edaac7da41
2024-01-08 21:04:44 +03:00
Graham James Addis
7d5168a2af
guix: pack: Add '--entry-point-argument' option.
* guix/scripts/pack.scm:
(entry-point-argument-spec-option-parser): New procedure.
(docker-image, %default-options, %docker-format-options,
show-docker-format-options/detailed, %options, show-docker-format-options,
guix-pack): Handle '--entry-point-argument' option.
* doc/guix.texi: (Invoking guix pack): Document this

Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
Change-Id: I1124feff6af39dcc63c85fd6cc7ad50f398489dc
2024-01-08 21:04:44 +03:00