How To: Building the VSIDO Installer

VastOne

For several years I have looked at different Linux installers and what could be done in the debian installer space.  I have always come away disappointed that what was/is out there was seldom documented or shared in a way that could be used anywhere else

Two weeks ago misko_2083 introduced us to Trios Linux.  For the first time I got to see an installer I was interested in (semplice linstaller) used in a practical debian setup I was familiar with

Since then there has been non stop development and collaboration with Filip Danilović and Miloš Pavlović that started here and was discussed more here.  The end result is VSIDO now has a new installer that will continue to grow

For complete transparency these are the steps I use to convert the TRIOS installer to the VSIDO installer.  This is for anyone in the future looking for these steps, who may find it easier than the Semplice team did, Filip and Miloš and the Trios team did, or certainly I did when we began looking at different installers

Here is the How To build and install the Semplice/Trios/VSIDO linstaller for debian:




Build the Installer

First some requirements and dependencies to build

sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get install python-all screen python-notify2 python-progressbar python-parted imvirt cryptsetup fatresize hfsprogs pastebinit reiser4progs jfsutils debhelper dh-python dpkg-dev devscripts git

Keeptalking build

git clone https://gitlab.com/Cofi/keeptalking.git && cd keeptalking

dpkg-buildpackage -uc -us


Bricks build

git clone https://gitlab.com/Cofi/bricks.git && cd bricks

dpkg-buildpackage -uc -us


Installer build

For a Standard Build:

git clone https://gitlab.com/Cofi/trios-installer.git && cd trios-installer

dpkg-buildpackage -uc -us


For Testing Build: (Can only be Standard or Testing, NOT both)

git clone https://gitlab.com/Cofi/trios-installer.git && cd trios-installer && git checkout testing

dpkg-buildpackage -uc -us





Install the VSIDO Installer

First some requirements or dependencies:


sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get install python-all screen python-notify2 python-progressbar python-parted imvirt cryptsetup fatresize hfsprogs pastebinit reiserfsprogs jfsutils xfsprogs btrfs-tools


Now install the debs In This Order

cd to each directory these are in (Put them all in one single directory) ... the tab to complete fills out the remaining portion of the file name.. saves time and gets it correct for whatever version is there (version numbers will change)

sudo dpkg -i python-t9n (tab to complete)
sudo dpkg -i python-keeptalking (tab to complete)
sudo dpkg -i python-libbricks (tab to complete)
sudo dpkg -i keeptalking (tab to complete)
sudo dpkg -i bricks (tab to complete)
sudo dpkg -i linstaller-modules-base (tab to complete)
sudo dpkg -i linstaller-modules-bricks (tab to complete)
sudo dpkg -i linstaller-frontend-cli (tab to complete)
sudo dpkg -i linstaller-frontend-glade (tab to complete)
sudo dpkg -i linstaller_ (tab to complete)
sudo dpkg -i linstaller-config-vsido (tab to complete)
sudo dpkg -i linstaller-session (tab to complete)
sudo dpkg -i live-config-linstaller (tab to complete)


After Installation

Now edit these files:

sudo medit /usr/share/linstaller/linstaller/modules/network/inst/_init_.py

and make this

auto lo
iface lo inet loopback
""")


this

auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
""")



Next create or convert these in /etc/linstaller directory (these must replace the trios files that are in /etc/linstaller directory)

sudo medit /etc/linstaller/vsido

## MAIN LINSTALLER CONFIGURATION FILE FOR VSIDO

[linstaller:extends]
source = vsido-base

# Do not ask for language, use the system's one instead.
#[module:language]
#ask = False

# Do not ask for timezone, use the system's one instead.
#[module:timezone]
#ask = False

# Disable root
#[module:userhost]
#root = None


sudo medit /etc/linstaller/vsido-base

## BASE LINSTALLER CONFIGURATION FILE FOR VSIDO -- END USER WILL NOT (HOPEFULLY) NEED THIS

[linstaller]
distribution = VSIDO
modules = uefidetect.inst welcome.front language.front timezone.front userhost.front partdisks.front bootloader.front summary.front partdisks.inst unsquash.inst virtualpartitions.inst language.inst timezone.inst network.inst supportrepo.inst bootloader.inst userhost.inst debian.inst clean.inst fstab.inst finish.inst end.front
special = partdisks.inst unsquash.inst virtualpartitions.inst

[module:language]
ask = True

[module:timezone]
ask = True
timezone = Etc/GMT

[module:partdisks]
swap_noformat = True

[module:unsquash]
image = /lib/live/mount/medium/live/filesystem.squashfs

[module:debian]
remove = /etc/linstaller/trios.packages-remove
autoremove = True

[module:bootloader]
bootloader = grub
custom_kernel_args = grub_cmdline_linux
should_hide_menu = False

[module:supportrepo]
path = file:///lib/live/mount/medium/support
binarydir = ./



sudo ln -s /etc/linstaller/vsido /etc/linstaller/default

(You may have to delete the original /etc/linstaller/default to complete that command)

Profit!

Thank you to the Semplice team who created the original.  I also am grateful to the Trios development team for the sharing of their wisdom with the best FOSS intentions I have seen in a long time. Specifically I want to thank Filip Danilović and Miloš Pavlović,  people I am honored to consider friends
VSIDO      VSIDO Change Blog    

    I dev VSIDO

Snap

Thanks for this. I don't know if I will ever need to build the installer, but that's precious info and a very good reading.

misko_2083

#2
@VastOne I'm glad you are sharing this with everyone. That's what FOSS is all about.
Just noticed dependancies.
Filip has made changes with dependancies. One is a switch from reiser4progs to reiserfsprogs.
Reiser4 and reiserfs are not the same fs. The switch from reiser4 to reiserfs happened because reiser4 kernel module is not mainlined yet, and therefore doesn't exist in the Debian kernel.
One can actually create/format a reiser4 partition, but can't use it without manually compiling the kernel module first.
Filip also added xfsprogs, jfsutils and btrfs-tools. Changes are here
https://gitlab.com/trios-linux/trios-installer/commit/5848e9069a4c90cff5d9ecbc2b201d6904498da0

VastOne

@Misko... correct, this will be an evolving How To as it progresses

Thanks for those updates, I will correct them on the How To though I did already have all the required dependencies since I did build from Testing and had to have them
VSIDO      VSIDO Change Blog    

    I dev VSIDO

filip

@Misko pretty much said it all. :)
Thanks for sharing and for the effort!

Few notes along the way:

@VSUDO config:

To avoid having to change it on every rebuild, you can do it once, build the packages and then tuck away somewhere the "linstaller-config-trios" ( you can change the "trios" to "vsido" in debian/control ).
You can then re-use it, since it doesn't have a versioned dependencies, so should work with any new version of the installer. :)

@UEFI:

You can also delete all those lines, instead of commenting them ( which is a pain whenever there's more than 2-3 of them, for me atleast :D ).

@pkg installation:

A (much) easier way would be to put them all in a script:
echo '#!/bin/bash
sudo dpkg -i python-t9n
sudo dpkg -i python-keeptalking
sudo dpkg -i python-libbricks
sudo dpkg -i keeptalking
sudo dpkg -i bricks
sudo dpkg -i linstaller-modules-base
sudo dpkg -i linstaller-frontend-cli
sudo dpkg -i linstaller-frontend-glade
sudo dpkg -i linstaller
sudo dpkg -i linstaller-config-trios
sudo dpkg -i linstaller-session
sudo dpkg -i live-config-linstaller' >> /tmp/install-installer && chmod +x /tmp/install-installer && /tmp/install-installer

^ copy/paste all at once. :)

Cheers!

filip

@VastOne:

Updated How-To is spot on, except that the entire "After installation" section is redundant and no longer needed ( since installer v7.0.7~fd2 ).

Also, "bricks" module is not used in VSIDO ( and cannot be used, without modifications ), so you might as well remove it's section to keep things simpler.  :)

VastOne

Yes Filip.. I am testing that right now on the uEFI builds and have already made some changes to the How To

Once I am done with this test I will make the complete changes and build and commit all ISO's for release

Thank you!
VSIDO      VSIDO Change Blog    

    I dev VSIDO

VastOne

The VSIDO Installer is now dead on latest (non released) ISO test builds... It gets to the second screen and stops dead and nothing works to kill it. Some kind of update to SID has killed a dependency for the installer

From terminal the only thing showing is

REBUILDING LOCALE MODEL

Obviously nothing will be released until this is resolved

I'll try to rebuild the installer from a LiveCD session to see if it has been fixed at all from the TRIOS team
VSIDO      VSIDO Change Blog    

    I dev VSIDO

filip

#8
Quote from: VastOne on March 17, 2018, 04:43:27 PM
From terminal the only thing showing is

REBUILDING LOCALE MODEL
Hmm, it's unusual for Python not to output any error(s), so it may actualy be somewhere outside...
But anyhow, it would be most helpful if you could upload the latest build/ISO somewhere for me to download and see what's up!?
Updating the live system is a pain and likely won't produce the same environment as the prebuilt one. :)

VastOne

Thank you filip..

The latest test build ISO is here

As you see from the date that is over a week old.. I will also update the build environment to today's level, build a new ISO and test it

That will take me some time, I'll get back to you about it if it changes the situation
VSIDO      VSIDO Change Blog    

    I dev VSIDO

VastOne

I rebuilt today and the same issue is there.. I have uploaded that ISO as well
VSIDO      VSIDO Change Blog    

    I dev VSIDO

filip

#11
"Keeptalking" module is at blame here.
Something is going wrong with locale list building. Probably something changed in Sid/locales making the keeptalking parser read garbage/lock itself in an endless loop.

I'll resume hunting tonight, hopefully having it by the head by the end of the day.  :)

filip

Meh, got it.  8) 
"/usr/share/i18n/cns11643_stroke" file appeared probably recently in Sid, causing "keeptalking" to stumble over it. It is now properly ignored, so the issue should be fixed.
All you need to do is build the updated "keeptalking" package(s), version 6.0.3~trios1, using the usual mantra, git clone --> dpkg-buildpackage...
https://gitlab.com/Cofi/keeptalking

VastOne

Hi Filip..  There seems to be issues with the 6.0.3 version of the keeptalking.. I built it and installed it with no issues but had the same results on the first build of the ISO.  I confirmed from that livcd session that the keeptalking/Locale/__init__.py had the original and did not have the fix:

if "translit" in _file or "iso14651_t1" in _file or "POSIX" in _file or "cns11643_stroke" in _file: continue

I then checked it also in the build environment and confirmed that both 6.0.3 was installed and the fix was not there either

I manually edited the __init__.py file and added the changes, rebuilt the ISO and it the install worked flawlessly

Need anything else, please let me know
VSIDO      VSIDO Change Blog    

    I dev VSIDO

filip

#14
Quote from: VastOne on March 20, 2018, 10:41:11 PM
Hi Filip..  There seems to be issues with the 6.0.3 version of the keeptalking.. I built it and installed it with no issues but had the same results on the first build of the ISO.  I confirmed from that livcd session that the keeptalking/Locale/__init__.py had the original and did not have the fix:

if "translit" in _file or "iso14651_t1" in _file or "POSIX" in _file or "cns11643_stroke" in _file: continue

I then checked it also in the build environment and confirmed that both 6.0.3 was installed and the fix was not there either

I manually edited the __init__.py file and added the changes, rebuilt the ISO and it the install worked flawlessly

Need anything else, please let me know
It's most likely has something to do with the way you cloned git/built the package. I've just tested with the fresh clone, and the package (python-keeptalking) has the latest __init.py__ in question.

Steps I've followed ( on Stretch though, the issue you're having might also be Sid related ):git clone https://gitlab.com/Cofi/keeptalking.git && cd keeptalking

Verify that we're on "trios-master" branch:git branch  #should output: "* trios-master"

Double check the fix:grep cns11643 ./keeptalking/Locale/__init__.py
#output:                  if "translit" in _file or "iso14651_t1" in _file or "POSIX" in _file or "cns11643_stroke" in _file: continue


Build:dpkg-buildpackage -uc -us

Result (gdebi):
 

:)

Also, do make sure that you actually included the 6.0.3 version of the "python-keeptalking" package in the ISO.
The reason I'm even mentioning this is that "keeptalking" package doesn't have versioned dependency on it, so you could install new "keeptalking" and keep the old "python-keeptalking" without apt complaining ( I should really fix this  :D )...