bug#48172: support split /boot partition

2023-06-03 Thread Distopico Vegan

Currently I have this similar use case, I have a PCI-E NVMe that is not
detected by BIOS (KGPE-D16 motherboard) so my plan was had a partition
for /boot in my SSD and the root system in the NVMe, so could be great
have support to that user case that I think is pretty common in old
board that doen's have NVMe and you want extend your system.


signature.asc
Description: PGP signature


bug#63852: ‘guix-package-cache.drv’ eats all your memory with ‘guix-cran’

2023-06-03 Thread Ludovic Courtès
Ludovic Courtès  skribis:

> It goes OK until building 
> /gnu/store/6rfaqfq693vda59a55asc4wjjg52ilns-guix-package-cache.drv, which
> consumes memory until it gets OOM-killed.

The culprit is easily found (here on just the 22K packages of ‘guix’, so
less than half of what you get with ‘guix-cran’):

--8<---cut here---start->8---
$ guix repl
GNU Guile 3.0.9
Copyright (C) 1995-2023 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guix-user)> ,m(gnu packages)
scheme@(gnu packages)> ,use(statprof)
scheme@(gnu packages)> (gcprof (lambda () (generate-package-cache "/tmp/t")))
% cumulative   self 
time   seconds seconds  procedure
 50.00 13.77 13.77  ice-9/boot-9.scm:2498:4
  6.94  1.91  1.91  display
  5.56  1.53  1.53  object->string
  2.78  0.76  0.76  reverse
  2.78  0.76  0.76  gensym
  2.78  0.76  0.76  ice-9/boot-9.scm:2217:0:%load-announce
  1.39  6.88  0.38  gnu/packages.scm:388:4:expand-cache
  1.39  0.76  0.38  srfi/srfi-1.scm:1028:0:lset-intersection
  1.39  0.38  0.38  number->string
  1.39  0.38  0.38  gnu/packages/crates-io.scm:17783:2:arguments
  1.39  0.38  0.38  open-output-string
  1.39  0.38  0.38  gnu/packages/crates-io.scm:18450:2:arguments
  1.39  0.38  0.38  gnu/packages/crates-io.scm:36208:2:arguments
  1.39  0.38  0.38  guix/packages.scm:1320:8:mproc
  1.39  0.38  0.38  gnu/packages/crates-io.scm:25101:2:arguments
  1.39  0.38  0.38  gnu/packages/crates-io.scm:29972:2:arguments
  1.39  0.38  0.38  gnu/packages/crates-io.scm:883:2:arguments
  1.39  0.38  0.38  ice-9/vlist.scm:449:0:vhash-cons
  1.39  0.38  0.38  append
  1.39  0.38  0.38  string-append
  1.39  0.38  0.38  system/vm/assembler.scm:2175:8
  1.39  0.38  0.38  
guix/build/syscalls.scm:1168:0:read-dirent-header/linux
  1.39  0.38  0.38  srfi/srfi-1.scm:1033:17
  1.39  0.38  0.38  gnu/packages/crates-io.scm:9336:2:arguments
  1.39  0.38  0.38  gnu/packages/crates-io.scm:64009:2:arguments
  1.39  0.38  0.38  guix/build-system/cargo.scm:229:4
  1.39  0.38  0.38  ice-9/boot-9.scm:2759:0:module-make-local-var!
  0.00   7328.64  0.00  system/vm/assembler.scm:1258:0:intern-constant
  0.00   1423.97  0.00  ice-9/boot-9.scm:220:5:map1
  0.00201.90  0.00  ice-9/threads.scm:388:4

[...]

---
Sample count: 72
Total time: 27.531145665 seconds (14.056589389 seconds in GC)
--8<---cut here---end--->8---

The assembler allocates a huge constant table in ‘intern-constant’
(‘generate-package-cache’ produces one literal list containing one small
vector per package, each of which contains strings and other constants).

The attached file emulates what ‘generate-package-cache’ does.  Each
vector in the list looks like this:

  #(0 "xyzxyz-0" "1.0.0" (gnu packages xyz0) xyzxyz-0 ("out") #t #f 
"gnu/packages/xyz0" 0 1)

The program terminates with roughly a 250 MiB heap for 22K entries—about
10 MiB per vector.

The heap profile on completion looks like this:

--8<---cut here---start->8---
  %   type   selfavg obj size
 57.5 bytevector  8,205,632 455868.4
 23.9 vector  3,413,857   549.3
  7.7 struct  1,093,84040.8
  5.3 pair  753,37616.0
  2.7 stringbuf 385,85651.1
  1.1 symbol151,42432.0
  0.4 program59,42447.3
  0.3 string 49,15232.0
  0.2 heap-number23,52032.0
  0.2 variable   21,69630.3
  0.1 smob   21,05632.0
  0.1 vm-continuation20,86432.0
  0.1 atomic-box 20,73632.0
  0.1 weak-table 19,58431.8
  0.1 unknown19,04032.0
  0.0 pointer 2,00016.0
  0.0 hash-table89632.0
  0.0 primitive 14416.0
  0.0 weak-vector9616.0
  0.0 frame  9632.0
  0.0 primitive-generic  6432.0
  0.0 keyword1616.0
sampled heap: 13.60166 MiB (heap size: 233.16016 MiB)
--8<---cut here---end--->8---

It’s likely that the ‘buf’ 

bug#63869: [shepherd] `guix system reconfigure` forgets `herd disable mysrv`

2023-06-03 Thread Attila Lendvai
i turn off some services using `herd disable`. then i do a `guix system 
reconfigure`, and these services get enabled and started.

i would expect the enabled/disabled state to be preserved across reconfigures.

if it's not easily feasible in the current architecture, then feel free to 
close this. it's not a crucial feature.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Those who do not weep, do not see.”
— Victor Hugo (1802–1885)






bug#63868: [reconfigure, shepherd] error: remove: unbound variable

2023-06-03 Thread Attila Lendvai
$ sudo guix system reconfigure ...
[...]
building 
/gnu/store/8by5a6wqlxm3fw27xh3a6zzzwfczjpcm-install-bootloader.scm.drv...
guix system: bootloader successfully installed on '(/boot/efi)'
guix system: warning: exception caught while executing 'eval' on service 'root':
error: remove: unbound variable
guix system: warning: some services could not be upgraded
hint: To allow changes to all the system services to take effect, you will need 
to reboot.

$

(notice the empty line before the prompt; may or may not be relevant)

this is all foggy.  the only certain part is that i get the above printed with 
a recent commit, but when i rolled back the guix channel to:

(commit "f9af75b2c34aab564c821b5bacebd8570777a535")

then it finished without the above error.

when it happens it also seems to break booting. it hang rather early, not long 
after grub.

it's happening on a server where i'd like to keep downtime low, so i didn't do 
double checks. i just rolled back, reconfigured, and it worked afterwards.

HTH,

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Choice implies consciousness - a high degree of consciousness. Without it, you 
have no choice. Choice begins the moment you disidentify from the mind and its 
conditioned patterns, the moment you become presentNobody chooses 
dysfunction, conflict, pain. Nobody chooses insanity. They happen because there 
is not enough presence in you to dissolve the past, not enough light to dispel 
the darkness. You are not fully here. You have not quite woken up yet. In the 
meantime, the conditioned mind is running your life.”
— Eckhart Tolle (1948–)