diff options
authorThiago Jung Bauermann <>2022-08-21 03:11:24 -0300
committerGuix Patches Tester <>2022-08-21 07:14:23 +0100
commit8f787598640767d7d7d26bca9ebd8474d345e50c (patch)
parente16fcc748457b6340d745e18e699cd3ba1e35fa5 (diff)
guix system: Use standard cross and native build options.
This change prevents guix system from erroring out with an ugly backtrace when it's passed an invalid value to the “--system” or “--target” option. It also adds the “--list-systems” and “--list-targets” options. The manual section about guix system doesn't mention the “--target” option, so add it there. * guix/scripts/system (show-help): Call show-cross-build-options-help and show-native-build-options-help. (%options): Remove own implementation of “system” and “target” options and use the ones in %standard-cross-build-options and %standard-native-build-options. * doc/guix.texi (Invoking guix system): Document “--target” option.
2 files changed, 12 insertions, 9 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index ae07677e2c..7b74bc905b 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -37533,6 +37533,11 @@ Installation Image}).
Attempt to build for @var{system} instead of the host system type.
This works as per @command{guix build} (@pxref{Invoking guix build}).
+@item --target=@var{triplet}
+Cross-build for @var{triplet}, which must be a valid GNU triplet, such
+as @code{"aarch64-linux-gnu"} (@pxref{Specifying target triplets, GNU
+configuration triplets,, autoconf, Autoconf}).
@item --derivation
@itemx -d
Return the derivation file name of the given operating system without
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index be6e839941..443e9d3282 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -1046,6 +1046,10 @@ Some ACTIONS support additional ARGS.\n"))
for 'describe' and 'list-generations', list installed
packages matching REGEXP"))
+ (show-cross-build-options-help)
+ (newline)
+ (show-native-build-options-help)
+ (newline)
(display (G_ "
-h, --help display this help and exit"))
(display (G_ "
@@ -1136,14 +1140,6 @@ Some ACTIONS support additional ARGS.\n"))
(let ((level (string->number* arg)))
(alist-cons 'verbosity level
(alist-delete 'verbosity result)))))
- (option '(#\s "system") #t #f
- (lambda (opt name arg result)
- (alist-cons 'system arg
- (alist-delete 'system result eq?))))
- (option '("target") #t #f
- (lambda (opt name arg result)
- (alist-cons 'target arg
- (alist-delete 'target result eq?))))
(option '(#\r "root") #t #f
(lambda (opt name arg result)
(alist-cons 'gc-root arg result)))
@@ -1153,7 +1149,9 @@ Some ACTIONS support additional ARGS.\n"))
(option '(#\I "list-installed") #f #t
(lambda (opt name arg result)
(alist-cons 'list-installed (or arg "") result)))
- %standard-build-options))
+ (append %standard-build-options
+ %standard-cross-build-options
+ %standard-native-build-options)))
(define %default-options
;; Alist of default option values.