This supports running the installer quasi-directly from Guile by only building
a Guile installer-script in the store. Do something like:
./pre-inst-env guile -c '((@ (gnu installer) run-installer) #:dry-run? #t)'
or and BE VERY CAREFUL WHEN NOT USING #:DRY-RUN #T!
sudo -E ./pre-inst-env guile -c '((@ (gnu installer) run-installer))'
for this to work, you also need connman.
* gnu/installer.scm (installer-script, run-installer): New procedures.
Change-Id: I8cc1746845ec99f738e35fa91bb2342a674cfa88
This adds a "Kernel" page to the installer with the option to (cross-) install
the Hurd, if applicable (only available on x86 machines for now).
* gnu/installer/newt.scm (kernel-page): New procedure.
(newt-installer)[kernel-page]: New field.
* gnu/installer/kernel.scm,
gnu/installer/newt/kernel.scm: New files.
* gnu/local.mk (INSTALLER_MODULES): Add them.
* gnu/installer.scm (installer-steps): Use them to select kernel if
applicable.
* gnu/installer/newt/partition.scm (run-label-page): Default to "msdos" when
instaling the Hurd.
(run-fs-type-page): Add ext2 for the hurd.
(run-partitioning-page-partition): Remove `entire-encrypted' option when
installing the Hurd.
* gnu/installer/services.scm (system-services->configuration): Cater for the
Hurd with %base-services/hurd, and with %base-packages/hurd that must always
be set.
(%system-services): Change to procedure. When installing the the Hurd, do not
recommend `ntp-service-type' and USE `openssh-sans-x' package for
`openssh-service-type'.
(system-service-none): New variable.
* gnu/installer/newt/services.scm (run-network-management-page): Include it
when installing the Hurd.
(run-desktop-environments-cbt-page): When installing the Hurd, recommend to
not select any desktop enviroment. Update users.
* gnu/installer/parted.scm (efi-installation?): Return #f when installing for
the Hurd.
(create-ext2-file-system): New procedure.
(user-fs-type-name, user-fs-type->mount-type, partition-filesystem-user-type,
format-user-partitions): Support `ext2'.
(<user-partition> partition->user-partition): Use `ext2' when installing the
Hurd.
(auto-partition!): Likewise. No swap partition when installing the Hurd.
* gnu/installer/final.scm (install-system): Cater for cross installation of
the Hurd.
(bootloader-configuration): Use `grub-minimal-bootloader' when installing the
Hurd.
(user-partition-missing-modules): Cater for empty user-partitions.
(initrd-configuration, user-partitions->configuration): Cater for the Hurd.
* gnu/installer/steps.scm (format-configuration,
configuration->file): Cater for the Hurd.
* gnu/system/hurd.scm (%desktop-services/hurd): New variable.
* gnu/installer/tests.scm (choose-kernel): New procedure.
* gnu/tests/install.scm (gui-test-program): Use it.
Change-Id: Ifafb27b8a2f933944c77223a27ec151757237e36
This allows running the installer without root privileges. Do something like
./pre-inst-env guix repl
,use (guix)
,use (gnu installer)
(installer-program #:dry-run? #t)
,build $1
=>
"/gnu/store/...-installer-program"
and run
/gnu/store/...-installer-program
* gnu/installer/newt.scm (locale-page): Add #:dry-run? parameter.
(keymap-page): Likewise.
* gnu/installer/newt/keymap.scm (run-keymap-page): Likewise.
* gnu/installer/steps.scm (run-installer-steps): Likewise. Use it to skip
writing to socket.
* gnu/installer/newt/final.scm (run-final-page): Rename to...
(run-final-page-install): ...this.
(dry-run-final-page, run-final-page): New procedures.
* gnu/installer/parted.scm (bootloader-configuration): Cater for empty user
partitions.
* gnu/installer/utils.scm (dry-run-command): New procedure.
* gnu/installer.scm (compute-locale-step): Add #:dry-run? parameter. Use it
to avoid actually applying locale.
(compute-keymap-step): Add dry-run? parameter. Pass it to
keymap-page.
(installer-program): Add #:dry-run? parameter. If #:true
avoid writing to /proc, use dry-run-command, skip sync and reboot, and pass
dry-run? to...
(installer-steps): ...here. Add #:dry-run? parameter. Use it to disable
skip network, substitutes, partitioning pages, and pass it to...
compute-locale-step, compute-keymap-step, and final-page.
Change-Id: I0ff4c3b0a0c69539af617c27ba37654beed44619
This operating system specification for the Hurd creates a system that
supports building the guix package from git natively.
Do something like
./pre-inst-env guix system build --target=i586-pc-gnu \
gnu/system/examples/devel-hurd.tmpl
./pre-inst-env guix system image --image-type=hurd-qcow2 --image-size=15G \
--no-offload gnu/system/examples/devel-hurd.tmpl
cp /gnu/store/...disk-image devel.img
guix shell qemu -- qemu-system-i386 -enable-kvm -m 4096 \
-device rtl8139,netdev=net0 \
-netdev user,id=net0,hostfwd=tcp:127.0.0.1:10022-:2222 \
-hda devel-hurd.img
ssh -p 10022 root@localhost
GUIX_PROFILE=/run/current-system/bootstrap-profile
source $GUIX_PROFILE/etc/profile
mkdir -p ~/src/guix
cd src/guix
git clone git://git.savannah.gnu.org/guix
cd guix
./bootstrap
./configure --with-courage
make
* gnu/system/examples/devel-hurd.tmpl: New file.
Change-Id: I097c7c00a9ab9602db7f8f3305827c815f308d1e
* gnu/build/hurd-boot.scm (boot-hurd-system): Check for stale shepherd socket
and remove it. Be chattier about /hurd symlink replacement.
Change-Id: I5e528c131ebeadb7ebc9727336a0f9301af3e68e
This avoids hanging upon second boot and ensures a declarative /hurd and /dev.
* gnu/packages/patches/hurd-startup.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/hurd.scm (hurd): Use it.
[arguments]: In stage create-runsystem remove /dev/urandom.
Change-Id: Ifcca5562c297204735c35132820a32ca0f273677
* gnu/services/base.scm (swap-service-type): Do not include 'udev' requirement
for the Hurd. Use system* with "swapon", "swapoff" for the Hurd.
* gnu/system.scm (hurd-default-essential-services): Add swap-services.
* gnu/services/base.scm (swap-service-type):
Change-Id: I1d4d445c614921752dc84aa0dd6ff42cdbf62aa8
This allows us to use %base-services/hurd for services in a Hurd config for a
real machine without removing static-networking.
* gnu/system/hurd.scm (%base-services/hurd): Factor networking out to...
(%base-services+qemu-networking/hurd): ..this new variable.
* gnu/system/examples/bare-hurd.tmpl (%hurd-os): Use it.
* gnu/services/virtualization.scm (%hurd-vm-operating-system): Use it.
* gnu/system/images/hurd.scm (hurd-barebones-os): Use it. Add comment about
QEMU and networking for a real machine.
Change-Id: I777a63410383b9bf8b5740e4513dbc1e9fb0fd41
This supports using another than the default DISK0 PART1 and using LABEL or
UUID as root file-system specifier. It still defaults to DISK0 PART1 if
the file-system cannot be found, i.e., lives only at the build side: A
virtual machine/childhurd build.
* gnu/build/file-systems.scm (%hurd-device-spec-regexp, %device-spec-regexp):
New variables.
(device-name->hurd-device-name, hurd-device-name->device-name,
device-spec->device, device-spec->device-name): Use them in new procedures.
* gnu/bootloader/grub.scm (make-grub-configuration): Use them to remove
hardcoded partition number (root-index 1).
Change-Id: I49fa93dacc09883dfb4d695402c5eac2e0e17286
This fixes running grub-install when using guix system init --target.
* guix/scripts/system/reconfigure.scm (install-bootloader): Use native package
when invoking install-bootloader-program.
Change-Id: I48d80a8dff866ada3625d827dd3036fb966eee9a
Reported by dariqq: <https://issues.guix.gnu.org/74280>.
This is a followup to commit 92910f5413.
* gnu/packages/aux-files/linux-libre/6.11-i686.conf,
gnu/packages/aux-files/linux-libre/6.11-x86_64.conf: Disable
CONFIG_DRM_I915_REPLAY_GPU_HANGS_API.
Change-Id: I345aba7b19d3e7c3e28fec2e6ed2d7bdbc2099c9
This is a follow up adjustment, proposed by Maxim Cournoyer
<maxim.cournoyer@gmail.com> in <https://issues.guix.gnu.org/73299>.
* guix/build/go-build-system.scm (fix-embed-files): Improve the grammar
and style, and provide a URL to the raw source file for reference.
Change-Id: I78824b92d70a2431f61d11e8737bca6a2ddea3fa
* gnu/packages/task-runners.scm (run): Update to 0.11.2. Adjust package
style by shiftin order of fields.
[arguments]: Do not install sources.
[propagated-inputs]: Remove go-github-com-tekwizely-go-parsing.
[native-inputs]: Add go-github-com-goreleaser-fileglob,
go-github-com-subosito-gotenv, and
go-github-com-tekwizely-go-parsing.
Change-Id: I02e4384aee83a3000c159e9d74fe1e94505ce9a7
* gnu/packages/golang.scm (go-github-com-subosito-gotenv): Move from
here ...
* gnu/packages/golang-xyz.scm: ... to here.
Change-Id: Ic9733d34808da599536a34b33caad88707f8ebb7
* gnu/packages/golang.scm (go-github-com-tekwizely-go-parsing): Move
from here ...
* gnu/packages/golang-xyz.scm: ... to here.
* gnu/packages/task-runners.scm: Swap imported module from golang to golang-xyz.
Change-Id: I7a1fab8a1ab457011260ce7dac7a47ecf8f83dd3
* gnu/packages/golang.scm (go-github-com-tekwizely-go-parsing)
[description]: Include a list of shipped modules.
Change-Id: Ieddaf65ec95776666846af8785a26bdd2a02d24a
* gnu/packages/golang.scm (go-github-com-fsnotify-fsnotify): Move from
here ...
* gnu/packages/golang-xyz.scm: ... to here.
Change-Id: I56f234c1dbb956f97d9d733bc9d7b5dd572830f8
It's not in use by any packages in Guix, upstream message: "This
repository has been archived by the owner on Mar 2, 2024. It is now
read-only."
* gnu/packages/golang.scm (go-github-com-emersion-go-textwrapper): Delete variable.
Change-Id: I57b382b8102d808fd153ffc9a39bb1d11ffcb8e7
* gnu/packages/golang.scm (go-github-com-emersion-go-autostart): Move
from here ...
* gnu/packages/golang-xyz.scm: .. to here.
Change-Id: Ia1a52cc0122f3a343171c698f63783265b44bed7
* gnu/packages/finance.scm (trezord): Refresh package style.
[arguments]: Use list style, do not install source.
[description]: Start from new line.
Change-Id: I96fe06e5559746196d4a99dc2fe1faf731b71253