#genTree help
1 messages · Page 2 of 1
setlocale: unsupported locale setting
* IMPORTANT: 16 news items need reading for repository 'gentoo'.
* Use eselect news read to view new items.
Calculating dependencies \
[ Results for search key : glib ]
* dev-haskell/glib [ Masked ]
Latest version available: 0.13.10.0
Latest version installed: [ Not Installed ]
Size of files: 39 KiB
Homepage: https://projects.haskell.org/gtk2hs/
Description: Binding to the GLIB library for Gtk2Hs
License: LGPL-2.1
* dev-libs/glib
Latest version available: 2.80.5-r1
Latest version installed: 2.80.5-r1
Size of files: 6425 KiB
Homepage: https://www.gtk.org/
Description: The GLib library of C routines
License: LGPL-2.1+
[ Applications found : 2 ]
!!! The short ebuild name "glib" is ambiguous. Please specify
!!! one of the above fully-qualified ebuild names instead.
... done!
Dependency resolution took 0.33 s (backtrack: 0/20).
dev-libs/glib is the one it tries to install
I cant pipe anything to a file
have you actually sucessfully done this
or did you run into all the same garbage
this is very frustrating
so it's already installed in the build root?
ok so that almost certainly wants sources available
wait
huh
says installed here
ok so i think maybe you need the kernel sources in the BUILD ROOT
and then error out
well it's making it for the --root
I didnt do --root
and then wants to rebuild, using sources from build root, presumably
I just did without --persistant
so i think maybe glib is in the stage3
so that's why it's "installed" according to that
then why is it being rebuilt
but i think the key here may be to install gentoo-kernel-bin with --persistent
for the ROOT
okay
genTree-exec --persistant --root stage3-amd64-systemd-20250126T154834Z emerge sys-kernel/gentoo-kernel-bin
like that
no --root
but the rest should be fine
when i say use --root i mean with emerge directly
80% of gentree is it just running "emerge --root /build_dir packages"
raceback (most recent call last):
File "/home/dismal/.local/bin/genTree-exec", line 8, in <module>
sys.exit(execute())
~~~~~~~^^
File "/home/dismal/.local/lib/python3.13/site-packages/genTree/main.py", line 89, in execute
genTree = GenTree(**kwargs)
File "/home/dismal/.local/lib/python3.13/site-packages/zenlib/logging/loggify.py", line 12, in init
super().init(*args, **kwargs)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/home/dismal/.local/lib/python3.13/site-packages/genTree/genTree.py", line 44, in init
self.config = GenTreeConfig(config_file=config_file, logger=self.logger, **kwargs)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/dismal/.local/lib/python3.13/site-packages/zenlib/logging/loggify.py", line 12, in init
super().init(*args, **kwargs)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: GenTreeConfig.init() got an unexpected keyword argument '_unknown'
yeah --root will make it unhappy
(will make genTree itself unhappy)
ooh wait
maybe quote "emerge x"
it shouldn't need that?
it passes every arg after the seed name to the container
nope
persistant
persistent
lol
i think i should enable strict arg parsing so it is noisier about the missing arg
okay it is running
should I try to run genTree again or just try and install glib after this finishes
this may help a bit
either works
maybe glib directly so you can see the error more easily
should it be persistent
i don't think so
only the kernel should be
since glib is already in the build root
i think once the kernel sources are available in the build root, glib should build fine in both cases
because it sources dependencies from build root, not the ROOT/layer root
did nothing
it errored out again
what do you want to try now
* ninja -v -j12 -l12 failed
*
* Call stack:
* ebuild.sh, line 136: Called src_compile
* environment, line 4384: Called meson-multilib_src_compile
* environment, line 2874: Called multilib-minimal_src_compile
* environment, line 3068: Called multilib_foreach_abi 'multilib-minimal_abi_src_compile'
* environment, line 3335: Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_compile'
* environment, line 3028: Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_compile'
* environment, line 3026: Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_compile'
* environment, line 680: Called multilib-minimal_abi_src_compile
* environment, line 3062: Called multilib_src_compile
* environment, line 3555: Called meson_src_compile
* environment, line 2941: Called eninja
* environment, line 1769: Called die
* The specific snippet of code:
* "$@" || die -n "${*} failed"
*
* If you need support, post the output of `emerge --info '=dev-libs/glib-2.80.5-r1::gentoo'`,
I cant pipe all the output to a file
you're doing that with what command?
so what do you want
installing glib
yeah but what method, genTree-exec <seed> emerge glib?
I did locale-gen without any args
must be done with --persistent ofc
yeah I did
I did research on this and all fixes pulled in glib which made them useless
yeah some things are weirdly circular
so sometimes to make the stuff from scratch you need to bootstrap a bit
like build it "minimally" first, then build another dep, then build it fully
are you getting the same errors as I have
should I use the desktop stage 3 even thought it comes bundled with kde and I dont need that
or would that not change anything
im not at that stage yet
im updating the base rn
using the desktop base is probably most reasonable if doing any gui stuff
would it be worth scrapping everything to try that
so the seed is just tbe build root, having more stuff in it generally makes building easier
no need to scrap
you can just add another seed
may be nice to compare things that way
no the seed should be set in the layer config
although i could probably make it an arg
no reason it can't be one
the desktop version depends on dracut
it probably wants an initramfs generator
required by virtual/dist-kernel-6.6.74::gentoo
=sys-kernel/installkernel-50 dracut
Use --autounmask-write to write changes to config files (honoring
CONFIG_PROTECT). Carefully examine the list of proposed changes,
paying special attention to mask or keyword changes that may expose
experimental or unstable packages.
ERROR | Emerge info:
Portage 3.0.66.1 (python 3.12.8-final-0, default/linux/amd64/23.0/desktop/gnome/systemd, gcc-14, glibc-2.40-r8, 6.12.11-amd64 x86_64)
you can set -initramfs on the kernel package
dracut is redhat propaganda, ugrd would work 😛
ssys-kernel/installkernel -initramfs
yea
it worked?
it threw the same error during update-seed
huh worked for me
when it tried to pull in glib
i may try with a systemd desktop one
i didn't even do locale-gen i don't think
but packaegs run that automatically at times
I did select my profile as gnome tho
so it might not be pulling in glib
if you didnt
can you give the full profile string so i can test?
default/linux/amd64/23.0/desktop/gnome/systemd
genTree-exec --persistent stage3-amd64-systemd-20250126T154834Z eselect profile set default/linux/amd64/23.0/desktop/gnome/systemd
thats how I set it
from the latest desktops stage3
yeah it seemed to work?
i think ther may be some kinda conflict with your system locale
idk that's my best gguess rn
hmmmmm maybe i need to have it source /etc/profile first?
but the thing is that it doesn't have a real shell in here?
idk this seems to be some kinda issue with your host system, possibly even the kernel?
it's hard to tell, but locales seem like a good place to start looking
maybe just the stuff in /etc/profile.env needs to be set?
you could source your shell on that, then re-run genTree
that may be a reasonable way to test
so like source <seed root>/etc/profile
it may literally just eb the LANG setting
you may want to set it to something both on your system and in the build root
on my host
yup
just in whatever shell you're using
wait maybe don't source the whole file
i think maybe just set the LANG to start
if that doesn't work you cna try sourcing it
more than moderate chance it breaks your shell
trying again
I dont think I got an error about locale this tme
I added that line to the etc/profile
the locale
but i think it should have a locale defined by default
maybe you need to eselect locale set?
there wasnt
for me it always kinda works ootb
it is still going
nice so maybe it was using some default locale not on your host system?
idk
normally that would be handled without config
not sure if bug or "expected" with another host type
it is building llvm right now
nice seems to be working then?
so mostly pay attention to the files it outputs, i think
it should list the path
they are pretty normal tarballs
I think I dont wanna jinx it
tbh most issues should happen early, if they are genTree ones, and if they happen later those are likely portage issues, but can be brought about by the environment
but unless you're setting weird options or doing things totally out of order, portage generally works
I could have allocated more cores but I dont wanna overload my system
portage uses all cores by default
--jobs is how many different builds can run at once
I am forced to use Ubuntu bc it is the only distro that supports my GPU
Ubuntu is almost as shit as red hat
you tried the gentoo livegui?
The other thing is I need to be able to use virtual machines and I don't know of VMware likes using Getnoo
i just use libvirtd
I participate in cyber security competitions and they distribute images for VMware and if you don't use VMware then you aren't eligible to dispute your score if it doesn't work
well i think vmware stuff should run on gentoo like any other distro
but i use vmware images with kvm all the time
I would rather ditch VMware entirely but I want to be able to dispute my score if it doesn't work
the most important part is the storage
vmware uses vmdk kvm/qemu use qcow2
you can convert back and forth
the rest of the "vm" is a definition of how many cores it uses, etc
i typically redefine that
from there the main consideration is if it's uefi or not
yeah that doesn't mean they made it a uefi bootable image
so it could mbr boot
some people do that for vms, it depends on who made the image
It just got done building llvm
nice
A little bit ago I don't remember. I think it was a couple weeks ago. Microsoft released a video claiming that Windows is the most secure and private operating system
lol
Don't you want to switch
yeah that convinced me
Great make sure to enable recall so we can watch your screen
BTW we pinky promise we don't get any data
failed on glib
noooo
genTree-exec systemd-desktop emerge -1 dev-libs/glib
this works for me
on the fresh systemd/desktop stage3
is that before you declare the gnome profile
ill try that I am trying re running it just to make sure it wasnt a fluke
not persistent?
genTree-import-seed stage3-amd64-desktop-systemd-20250202T154819Z.tar.xz systemd-desktop
genTree-exec --persistent systemd-desktop eselect profile set default/linux/amd64/23.0/desktop/gnome/systemd
genTree-update-seed systemd-desktop
not persistent because im testing
but it shouldn't change much
i just don't really want to alter the seed unless i have to
it failed
can you try that with that stage3?
it said invalid locale
it worked for me, if that exact process fails for you im blaming the environment
I used the same seed
like something something ubuntu lol
i may test on an ubunutu vm
this is definitely a strange issue
I am running it inside a debian testing vm
on the ubuntu server
bc ubuntu doesnt have python 3.12 support
setlocale: unsupported locale setting
setlocale: unsupported locale settin
it did say that
should I try in a gentoo machine
like outside the container
I have a gentoo machine pre made
yeah if you have a gentoo machine you may as well
i mean that's where i test it 😛
but im intersted to know why it fails on a different host
the container should be mostly isolated
unless you have a locale set in the host env whihc doesn't work in the container?
it doesn't reset that stuff
It's unzipping right now. I have a pre-made Gentoo umage with gnome pre-installed so I don't have to redownload it every single time
GDM_LANG=en_US.UTF-8
LANG=en_US.UTF-8
ok so i don't think it's that
ohhhhh
could that be why
hmmmmmmmmmmmm maybe changing that or unsetting it could help?
maybe try a compat one
I am just gonna try in my gentoo machine
wait this is what i have set, i'm not sure if it removes the hyphen?
idk
that was in my /etc/locale.gen
but yeah i would be a bit surprised if it failed on a gentoo vm too
something didnt work
unzipping again
it is importing now
the machine has 80gb of disk space should that suffice
this machine just has gnome and basic utils so I have to install some stuff
I have that
yeah I just installed that
I am gonna sync
set the profile
and install glib
and then do the gentree command
you should be able to do this
it is syncing rn
it successfully merged glib
I used debian testing
the host is ubuntu but I made a debian testing vm
there should be a disclaimer on there that it only works on gentoo hosts until you can do at least basic testing on other platforms
i don't see any reason it's gentoo specific
i need to look into this issue more at some point
I would personally test on both Debian Testing and Arch as thats what most people use or have a distro based on
is there a way I can remove the kde desktop from the image so it doesnt have both kde and gnome
it has kde by default
that is just in the seed
oh okay
i think it does depclean after a "update"
so if you set a new profile, and do genTree-update-seed it should more or less migrate to that
">>> Emerging (43 of 61) kde-frameworks/extra-cmake-modules-6.10.0::gentoo"
that is why I am concerned
some things may just want kde stuff
you can do things to forcefully remove that stuff but it may be necessary
how do I do the thing with chrome to add it to package.license
you make a file under ~/.local/share/genTree/config/<name>/package.license/chrome
then set that config overlay name in the config
you set config_overlay = <name>
same dir name used above
If I do eix-installed -a is that what will be in the tar ball
no
it uses emerge --root to build stuff into the dir that gets packed into a tarball
Okay
once the base layer with only system and the kernel
then do I make another file with chrome and the other utilities I want
im not sure it even really needs the kernel tbh
you may be able to sqush them all together if you use "glibc" as the base
since this glib issue is solved
After all is said and done
How do make the tar ball
And how do you make the tarball into the squashfs
you genTree <config.toml>
tarball to squashfs idk
im sure there are more than one ways
You were saying it's possible
tar and squashfs are just archive formats
squashfs can make from a dir
but it may be able to handle it direct
the "full" ones have every layer used for the build packed together
you can see contents with tar -tf file
you may want to unpack it and then manually add a kernel or something
emerge with --root doesn't install the kernel "fully"
How complicated is that
Where are you copying it from
you can use the modules from the livecd
and the kernel from the livecd
if you want
or make your own
also the initramfs
you can remake any of this
but i mean there is nothing that special about this stuff as long as it's consistent, like matching kernel, initramfs(kmods) and kmods in the rootfs, squashfs in this case
you can always test with arch-chroot into the unpacked archive
or whatever, really
So it shouldn't be too hard
nope, just try to undertand the process, it's not really that complex
just a bit particular
that didnt work
/home/dismal/.local/share/genTree/config/chrome/package.license
overlay= ["chrome"]
got it
got an ad for BS
lol
this is the syntax you used whihc worked right?
yes
INFO | [systemd-base] Created archive: /builds/stage3-systemd-systemd-base.tar (2566.26 MB)
INFO | V:V [systemd-base] Packing all layers into: /builds/stage3-systemd-systemd-base-full.tar
INFO | #%- [systemd-base] Packing bases: /builds/stage3-systemd-base.tar, /builds/stage3-systemd-glibc.tar, /builds/stage3-systemd-systemd-base.tar
INFO | ~%> [systemd-base] Refiltering archive: /builds/stage3-systemd-systemd-base-full.tar (2627.71 MB)
INFO | [systemd-base] Created final archive: /builds/stage3-systemd-systemd-base-full.tar (2627.71 MB)
@plush fjord how do I proceed from here
check out that stage3-systemd-systemd-base-full.tar
what do I need to do with it
didnt you say I need to do something with the kernel
you can extract that into a dir and work with it
and you need kmods in it
you can take those from an already made install iso
like rip out /lib/modules from its squashfs
ok
does it have to be from a gui image
since I have a gui
or does it not matter
6.6.74-gentoo-dist
there are also symlinks
do they need to be preserved
well you prob want it to have video drivers
right
if the livegui works, you can copy them from there
I used the live gui one
and i think those symlniks help but are not required
ok
yeah so once you are done making that, you can more or less repack the livegui with your squashfs
you could even install grub yourself, on some bootable device, then copy the config and edit it to work with your squashfs
I thought the iso already has it
yeah you need to repack the iso if you want to use that
and make sure it has the same label as it had before
i think the grub tool is how the livecd does it
idk how you set the label
that was the part that was confusing
I read the man page and didnt see a flag for it
if you manually install grub to some ESP, and set a GPT label, that may work
the squashfs is extremely small
like susiciously small
I used xz compression because thats what they used to make the image
the one the comes with the iso is 3gb
and the one I generated is 800mb
you can easily mount a squashfs
this is the stock one
i think gentree makes all symlinks relative
and within the root
if the one from the livecd has absolute paths it could be reading system stuff
the livegui image does come with a lot of stuff
that too
it has all that
search --no-floppy --set=root -l gentoo-amd64-livegui
linux /boot/gentoo nodhcp secureconsole root=live:CDLABEL=gentoo-amd64-livegui rd.live.dir=/ rd.live.squashimg=image.squashfs cdroot
those are dracut args
idk about it for sure
if you wanna make a custom ugrd image for this, that's possible too
I just need to find out how to correctly make the iso
im not sure how to make an iso in particular
but it's not hard to make a bootable device
is this just like putting any other image on a device
as the gentoo iso uses HFS+
yeah you just put the kenrel/bootloader/squashfs/initramfs on it
and if the bootlaoder is in the default efi path it should just work
so long as the config is reasonable
if you use ugrd it bakes the label and whatnot into the image
so just copy the everything from the iso to the disk
you may be able to remake some of it, like grub-install to the ESP root, im not 100% sure how to change the config
i think you can kinda pick parts from the livecd one
and just add those to the grub config on the target
so with ugrd, grub mostly just needs to start the kernel and tell it to use an initarmfs
with dracut it needs those "magic" args passed
where labels matter
how does catalyst make the iso
mix of grub and dracut, im not sure the exact details
I cant just use the stuff that is part of the iso already
and just add the squashfs
grub installs with certain uuids set in the efi portion
it's not always possibel to just copy grub as a whole
you probably want to reinstall
but you can probably use the existing kernel from the livecd
how can I do that
do I need to use your tool to do that
what am I mounting
a USB or something you want to boot to
wdym?
this is the structure of the iso
I have replaced the image.squashfs with mine
is there anything I have to remove to install grub
so if you replaced the squashfs it may just wrok
as long as it has the "right" kmods in it
I copied the ones from the stock image.squashfs
then it should be fine
/home/dismal/Downloads/livegui-amd64-20250202T154819Z.iso: ISO 9660 CD-ROM filesystem data (DOS/MBR boot sector) 'gentoo-amd64-livegui' (bootable)
file.iso: ISO 9660 CD-ROM filesystem data 'gentoo-amd64-livegui'
this one is mine
what are those other partitions
I got it right
at least for the partitions
@plush fjord any ideas
I hope I didn't do all this for nothing
Do I need to install grub inside the squashfs
Would you be willing to look at the image