Skip to content
This repository has been archived by the owner on Apr 2, 2023. It is now read-only.

Document a clear build process #48

Open
moeenio opened this issue Oct 25, 2021 · 18 comments
Open

Document a clear build process #48

moeenio opened this issue Oct 25, 2021 · 18 comments
Assignees
Labels
bug Something isn't working documentation Improvements or additions to documentation good first issue Good for newcomers help wanted Extra attention is needed
Milestone

Comments

@moeenio
Copy link
Contributor

moeenio commented Oct 25, 2021

Currently the README doesn't explain how one can build a perfect image of the OS, only vaguely explains modifications and says to use cubic.

Add clear build instructions, like :

  • Set up Cubic
  • Download a precised base ubuntu image
  • Clone the repository in the cubic virtual environement
  • Copy files from the cloned repo to their correct place
  • Run commands to install and remove packages/misc mods that are not files in the repo including release info
  • Run commands to generate grub config/update initramfs/etc.
  • Edit the grub.cfg in cubic
  • Build the image in Cubic

Began this work on this on branch beta7.
To work on this, get Cubic set up, try to follow the current "instructions" and document what is not documented. :p

@moeenio moeenio self-assigned this Oct 25, 2021
@moeenio moeenio added documentation Improvements or additions to documentation enhancement New feature or request good first issue Good for newcomers labels Oct 25, 2021
@moeenio moeenio added this to the CelOS 1-beta7 milestone Oct 25, 2021
@VojtechTM
Copy link

Ok, what do you need help with? Translating the build process?

@moeenio
Copy link
Contributor Author

moeenio commented Nov 14, 2021

Documenting it. The readme currently gives a vague idea of how to build an os image; the goal here is to provide a clear set of instructions. Look at what I've started doing on the branch beta7, and try building an image with that and anything you can find out/guess - and complete the documentation, following what I've wrote in the first comment here.
The translations are really not that important here.

@VojtechTM
Copy link

What about putting all of the removed packages away into another .md file, and just put a link there? It's just a waste of space

@moeenio
Copy link
Contributor Author

moeenio commented Nov 19, 2021

What about putting all of the removed packages away into another .md file, and just put a link there? It's just a waste of space

good idea.

@VojtechTM
Copy link

Well, could you do it? I can't do it

@moeenio
Copy link
Contributor Author

moeenio commented Nov 27, 2021

You're struggling with git it seems?

@VojtechTM
Copy link

You would be correct

@moeenio
Copy link
Contributor Author

moeenio commented Mar 11, 2022

This should be the current priority. Not being able to actually build a project without being on the lead dev's workstation and without the lead dev's experience and memory just makes the project not viable imo, and I'm myself a bit lost in trying to work with what was left by Adam to actually build the OS. This issue should be prioritised if any development is to happen on this project, and any help would be very much appreciated.

@moeenio moeenio added bug Something isn't working help wanted Extra attention is needed and removed enhancement New feature or request labels Mar 11, 2022
@moeenio moeenio pinned this issue Mar 11, 2022
@moeenio
Copy link
Contributor Author

moeenio commented Mar 11, 2022

Should also look into doing something based off of the instructions over at the Ubuntu Wiki's LiveCDCustomization and LiveCDCustomizationFromScratch pages, instead of relying on Cubic (which is a graphical program, exclusively available on ubuntu afaik), and automating this through a script or Makefile.

@TheOceanBreeze
Copy link
Member

Should also look into doing something based off of the instructions over at the Ubuntu Wiki's LiveCDCustomization and LiveCDCustomizationFromScratch pages, instead of relying on Cubic (which is a graphical program, exclusively available on ubuntu afaik), and automating this through a script or Makefile.

I think using something other than Cubic might confuse users because of the lack of a GUI (graphical user interface). It might be a better idea to just go with the original idea of documenting how to use Cubic to make a Celestial Installation/Live ISO

@moeenio
Copy link
Contributor Author

moeenio commented Apr 15, 2022

I think using something other than Cubic might confuse users because of the lack of a GUI (graphical user interface).

I believe people willing to work on a distro have a minimum knowledge of CLIs. And it's not like you could do it with just a gui anyways - as far as I recall, you have to use a terminal inside of Cubic to copy files and make most changes to the system.

Also, you might not have considered it, but using a fully CLI-based build process allows us to automate it, in a way that contributors could just git clone and make to build an image. Far easier and and quicker than installing cubic, clicking around in the gui then copying and running a bunch of commands manually, IMO. And also makes it somewhat reproducible and consistent - following a manual process is prone to error.

@TheOceanBreeze
Copy link
Member

What do you think about running a simple script in Cubic that installs everything correctly?

@moeenio
Copy link
Contributor Author

moeenio commented Apr 21, 2022

Could be an intermediate solution, but I'd try building the image through the script first.

@TheOceanBreeze
Copy link
Member

Here are some instructions as to how to build Celestial OS so far:

Special thanks to cat-master21 for giving us instructions to help with the build process.

Note: Please use https://wiki.ubuntu.com/Base/InstallationExample as a guide to install a working system. Also note that this is an unfinished instruction set and we are working to finish this documentation.

  1. Download rootfs from https://partner-images.canonical.com/oci/jammy/current/ubuntu-jammy-oci-amd64-root.tar.gz. This is same one used at GitHub Runners and Docker (https://hub.docker.com/_/ubuntu)

  2. Make sure you have proot command, Create a folder like mkdir -p ./rootfs, and extract files via sudo tar zxvf (archive) inside the ./rootfs folder

  3. Run sudo proot -S ./bash to enter into the chroot. Double check to make sure the repositories are correct with /etc/apt/sources.list. You may receive a warning about certificates which can be fixed by installing the ca-certificates package (apt install ca-certificates). Install any updates that may be available by running apt update && apt install.

  4. It is time to choose a kernel. uname -a will show your current kernel. There is a list of kernels to install at https://ubuntu.com/kernel/variants. We recommend using the generic one as we have not tested the other ones at this time. (apt install linux-generic)

  5. Check to see if Grub is installed on the system. If not, follow the instructions at https://help.ubuntu.com/community/Grub2/Installing to get it installed. (TODO: Make sure we are not overriding host system's grub files.) Then, use the unminimize command to ensure that man pages will be available on the distro. This command also allows you to have a complete system you can proot into, and even perhaps boot it on a system.

  6. Now it's time to install ubiquity. Do apt install ubiquity to install it. Keep in mind that Ubiquity requires 2.1 GB of room to your proot.

@VojtechTM
Copy link

This is independent of cubic, is it?

@moeenio
Copy link
Contributor Author

moeenio commented Apr 26, 2022

if you're referring to the previous comment, yes it is

but what about the wiki pages i linked previously?

@moeenio
Copy link
Contributor Author

moeenio commented Apr 26, 2022

also we should try to automate the stuff with a makefile

@TheOceanBreeze
Copy link
Member

While we work on automating the build process, I suggest we make a script that can be run in Cubic to generate everything needed to make Celestial run correctly. This way we don't have to worry too much about switching over to a script system yet.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working documentation Improvements or additions to documentation good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants