[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#77033] [PATCH] deploy: Support --target and --system.
From: |
Maxim Cournoyer |
Subject: |
[bug#77033] [PATCH] deploy: Support --target and --system. |
Date: |
Sat, 22 Mar 2025 21:32:30 +0900 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Hi Sergey,
Sergey Trofimov <sarg@sarg.org.ru> writes:
> Hi Maxim,
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
>
>> [...]
>>
>>>>> Additionally `guix-daemon` should know all the systems the host
>>>>> supports. Currently it knows only the native one (`--system`
>>>>> parameter).
>>>>
>>>> I've never used such feature, so I wouldn't know of how useful that
>>>> would be :-). Perhaps useful if the machine is to be used
>>>> exclusively
>>>> for cross-compiling by default? You could also set that via 'export
>>>> GUIX_BUILD_OPTIONS=--target=$gnu-triplet', no?
>>>
>>> You've mentioned it in the previous mail:
>>>
>>>> In my experience, assuming a powerful x86_64 workstation,
>>>> cross-compilation > native-compilation (on lower spec ARM machine) >
>>>> emulated native compilation (QEMU).
>>
>> I was answering the specific implementation details you seemed to allude
>> to, regarding that guix-daemon should know also about the non-native
>> (cross-compiled) target systems supported.
>>
>> I didn't understand that part. Why would we need to teach the daemon
>> something new? It already can cross-compile things as it is, even it
>> lacks such explicit knowledge, it seems.
>
> `build-machine` declares the systems it supports and local host is in
> fact also a build machine. Having explicit supported system declaration
> would:
> 1. allow better error messages ("can't build for `targetX`" instead of
> failing to build actual derivations)
>
> 2. provide more data to the offloading algorithm. It could then select
> the current host when necessary
I think one way to tackle both points above could be to allow defining
localhost as a build machine in /etc/guix/machines.scm (perhaps there
could be an option to make this implicit/automatic), though we would
need to special case it so that ssh is not used to communicate with it.
> 3. potentially allow to get rid of the `--system` build parameter (or
> replace it with `--build-type=native|emulated|cross`).
I'm not sure about this one, or at least I don't understand how that'd
capture all the necessary information. Perhaps you are considering only
in the narrow context of 'guix deploy' ? I think there's value that it
works the same everywhere.
--
Thanks,
Maxim
- [bug#77033] [PATCH] deploy: Support --target and --system., Sergey Trofimov, 2025/03/15
- [bug#77033] [PATCH] deploy: Support --target and --system., Roman Scherer, 2025/03/16
- [bug#77033] [PATCH] deploy: Support --target and --system., Roman Scherer, 2025/03/17
- [bug#77033] [PATCH] deploy: Support --target and --system., Sergey Trofimov, 2025/03/17
- [bug#77033] [PATCH] deploy: Support --target and --system., Maxim Cournoyer, 2025/03/20
- [bug#77033] [PATCH] deploy: Support --target and --system., Sergey Trofimov, 2025/03/20
- [bug#77033] [PATCH] deploy: Support --target and --system., Maxim Cournoyer, 2025/03/20
- [bug#77033] [PATCH] deploy: Support --target and --system., Sergey Trofimov, 2025/03/21
- [bug#77033] [PATCH] deploy: Support --target and --system., Maxim Cournoyer, 2025/03/22
- [bug#77033] [PATCH] deploy: Support --target and --system., Sergey Trofimov, 2025/03/22
- [bug#77033] [PATCH] deploy: Support --target and --system.,
Maxim Cournoyer <=
- [bug#77033] [PATCH] deploy: Support --target and --system., Roman Scherer, 2025/03/21
- [bug#77033] [PATCH] deploy: Support --target and --system., Maxim Cournoyer, 2025/03/22
[bug#77033] [PATCH] deploy: Support --target and --system., Sergey Trofimov, 2025/03/18