New packages to ISO
Contents
Hamara Live Build
We use the code here to build the ISO. Before you proceed, make sure you read about the roles of different sub-directories as explained in the README.
Mechanism behind building ISO
Before you learn to include packages in Hamara ISO, it will be great if you understand what will happen when you add one.
------------------------------------------------- | Copy important scripts required pre, post and | | during the build procedure | ------------------------------------------------- | --------------------------------------------- | Cleanup previously build residue (if any) | --------------------------------------------- | ----------------------------------------------- | Download packages from the specified mirror | ----------------------------------------------- | ----------------- | Magical build | ----------------- | --------------------------------------------------------- | Calculation and verification of checksum for packages | --------------------------------------------------------- | ----------------------------------------------- | Write the iso, checksum, packages to output | -----------------------------------------------
Parameters
Before building the ISO, you need to take care of certain parameters and choose the correct values for them as per your need.
Mirror
Like any other distro, you will require a Mirror where you can download all your packages from.
Possible values: in.devel.hamaralinux.org
or devel.hamaralinux.org
Release
The release name of Hamara which you want to build.
Possible values: hamara-sugam
(latest) or hamara
Architecture
Architecture of the machine where you wish to run the Operating System.
Possible values: amd64
or i386
or all
Version
Version of the Release you're targeting in your end product.
Possible values: alpha
or beta
or all
Adding new packages
At this point, you should have cloned the hamara-live-build repo and looked up the roles of different folders.
Structure
Look at the tree structure below. We're concerned with the package-lists
folder for this task.
. ├── config.d │ ├── hamara │ │ └── config │ │ └── package-lists │ └── hamara-sugam │ └── config │ ├── hooks │ ├── includes.chroot │ └── package-lists └── data ├── hamara │ ├── bootloaders │ │ ├── grub-pc │ │ ├── isolinux │ │ └── syslinux │ └── lb_scripts └── hamara-sugam ├── bootloaders │ ├── grub-pc │ ├── isolinux │ └── syslinux └── lb_scripts
Understanding multiple files in package-lists
package-lists
directory has mutiple files for different purposes.
. ├── desktop.list.chroot ├── live.list.chroot ├── live-packages.list.chroot_live ├── memtest.list.chroot ├── non-free.list.chroot ├── tools.list.chroot └── uefi.list.binary
Pay attention to the part after last .
. They define the stages when the packages in that file are to be installed. The first part of every file is used to segregate packages as per their role.
For example, desktop.list.chroot
should have packages relating to DE and Themes. memtest.list.chroot
should have packages for memory testing.
Things to check before adding a package to a list
- The package should not affect any existing package. Check for conficts.
- The right list to add it to.
- The right place to add it. Follow the existing pattern and add the package name in lexicographical order.
Building
Build the ISO while taking care of the parameters mentioned earlier with the command below.
./mkbuild iso amd64 in.devel.hamaralinux.org hamara-sugam final
Replace the architecture, mirror, release and version as per your need.
Testing
After adding the package, build an ISO for yourself and check it in live mode. It should have the package you added to the list.
Small exercise
If you're still unsure, try doing something simple. Follow the steps below to remove Firefox
from Hamara.
Step 1
Go to ./hamara-live-build/config.d/hamara-sugam/config/package-lists
and open tools.list.chroot
in your favorite editor.
Step 2
Look for firefox
and remove it. Save the file and exit.
Vim assistance: Press Esc. Then, type :wq
Step 3
Build the ISO using,
./mkbuild iso amd64 in.devel.hamaralinux.org hamara-sugam final
from the root of your project.
Step 4
Burn the ISO to any device using Etcher and live boot into any system.
Step 5
Click on Top left navigation button and search for Firefox
.
Voila! No results for Firefox.
Now, try adding it again and follow the same procedure.
Congratulations on adding your first package to Hamara ISO!
Things to take care of
- Do not add unnecessary whitespaces, newlines, comments.
- Add package names lexicographically in any list.
- Test the build before submitting a patch.
- Explain your changes very well in your commit message. Refer here for a stringent guide.
Possible obstructions
- If you haven't deleted the previous
build_area
, you might encounter unusual errors while building the ISO. - Build architecture, release mismatch than what you wished for i.e. typos.
- Package checksum does not match the anticipated correct value.
Getting out of obstructions
- Make sure you've removed previous
build_area
andoutput
. - You should be building a recent release, older releases might be unmaintained.
- If you think its a bug, consider submitting it here
Footnotes
Still unsure about things? Connect with developers for assistance here.