helloSystem / ISO

helloSystem Live and installation ISO
https://github.com/helloSystem/
BSD 3-Clause "New" or "Revised" License
805 stars 59 forks source link

ISO Build Doc Updates #519

Open u20230812 opened 10 months ago

u20230812 commented 10 months ago

Here's some feedback on what I found to work while building the ISO. Maybe there are newer instructions, or maybe my method was incorrect, or maybe the docs could use an update...

Setup is FreeBSD 13.2 installed in a Boxes VM on a Linux host.

1) Extremely easy to figure out how to get all this working based on docs available and scripts provided 2) The FreeBSD VM qcow2 filesystem is too small 3) Building the Live ISO https://hellosystem.github.io/docs/developer/building.html sha is not a package on FreeBSD 13.2 pkg install -y pkg git-lite zsync wget bash zip devel/py-xdg librsvg2 ca_root_nss sudo git zenity 4) You need to edit loader.conf before building the ISO vi + overlays/boot/boot/loader.conf uftdi_load="YES" boot_multicons="YES" boot_serial="YES" comconsole_speed="115200" console="comconsole,efi" 5) zenity package not found doing the build needs to be part of Building the Live ISO Installing furybsd-wifi-tool-0... pkg: Missing dependency 'zenity' see pkg install on item #3 5a) edit overlays/uzip/furybsd-wifi-tool/manifest and remove x11/zenity and put zenity since x11/zenity is not a package on 13.2 5b) edit overlays/uzip/furybsd-xorg-tool/manifest and remove x11/zenity and put zenity since x11/zenity is not a package on 13.2 5c) edit settings/packages.hello adding x11/zenity 6) Comment out xcb-util-cursor in settings/packages.hello 7) sudo su 8) export QT_QPA_PLATFORM=offscreen ./build.sh hello 9) Turns out modules get removed from the builder script and don't work vi ./settings/rc.conf.common kld_list="fusefs cuse ig4 iicbus iichid utouch asmc if_urndis if_cdce if_ipheth usb ucom uftdi"

Without step 7 error

freebsd-vm ~/Source/helloSystem_ISO]$ ./build.sh hello  
Host system version: 13.2-RELEASE  
This script must be run as root

Step 8 and 9 core dump without the export

extracting: LICENSE.txt     
extracting: install-linux.txt     
extracting: install-mac.txt     
extracting: install-win.txt     
+ mv 'Inter Desktop/Inter-V.ttf' /usr/local/furybsd/uzip/usr/local/share/fonts/TTF/  
+ rm -rf 'Inter *'  
+ mkdir -p /usr/local/furybsd/uzip/Applications  
+ chmod g+w /usr/local/furybsd/uzip/Applications  
+ chroot /usr/local/furybsd/uzip /usr/local/bin/desktop2app /usr/local/share/applications/featherpad.desktop /Applications/  
qt.qpa.xcb: could not connect to display    
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.  
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this pro  
blem.  

Available platform plugins are: bsdfb, minimal, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-g  
lx, xcb.  

Abort trap (core dumped) 

Original discussion here: https://github.com/helloSystem/ISO/issues/505#issuecomment-1704058166

probonopd commented 10 months ago

Thanks for sharing your experiences.

Since you marked this as a "bug", we need to figure out what exactly in the documentation (still) needs to be changed.

Setup is FreeBSD 13.2 installed in a Boxes VM on a Linux host. The FreeBSD VM qcow2 filesystem is too small

I have never used a Boxes VM on a Linux host nor the FreeBSD VM qcow2 filesystem; so possibly some of the issues might be related to that. My recommendation would be to install helloSystem (and the Developer Tools) on real hardware, and to use that for building helloSystem ISOs. And of course our official ISOs get made on Cirrus CI in the Cloud.

sha is not a package on FreeBSD 13.2

Already removed that from the documentation.

You need to edit loader.conf before building the ISO

I think you have some specific changes for one of your builds here; this is not for everyone.

zenity package not found doing the build needs to be part of Building the Live ISO

zenity and furybsd-wifi-tool are no longer used by helloSystem; are you building another ISO than the "hello" flavor (./build.sh hello)?

Comment out xcb-util-cursor in settings/packages.hello

Why?

export QT_QPA_PLATFORM=offscreen ./build.sh hello

Seems wrong; the desktop2app steps in settings/script.hello that need it have QT_QPA_PLATFORM=minimal QT_QPA_PLATFORMTHEME=panda set. This is needed so that desktop2app can find icons from the Qt theme.

Turns out modules get removed from the builder script and don't work

I don't understand this.

u20230812 commented 10 months ago

@probonopd perhaps this is because I'm building on a headless VM with no graphics. The QT and xcb bits failed on the headless config so I had to remove them to get it to build. I'm not surprised that they are needed dependencies so maybe it's just a requirement that you need more than a bare headless system to build.

I'll automate the whole thing in a lights out matter using a VM to get a recipe to share/demonstrate. Are the CI scripts available and does it run on bare metal or virtual? Does the CI bootstrap a new builder OS each time or was it a static config that's just doing repeatable builds in the same environment?

Here's the bit I noticed about rm -rf'ing the modules

https://github.com/helloSystem/ISO/blob/experimental/build.sh#L483-L485

The two choices I seen were bug and feature enhancement and neither one really fit. If it needs to be categorized as something else that's great too. I agree it's not exactly a bug...

probonopd commented 10 months ago

The official helloSystem ISOs get built on headless machines too, on https://cirrus-ci.com/. You can see the exact configuration here:

https://github.com/helloSystem/ISO/blob/experimental/.cirrus.yml