[[!meta title="Making git rootfs development iterations faster"]]
Webconverger relies on Debian Live to put the ISO together. Please create an
Unstable sid-chroot like so in
~/debian
:
cd ~/debian
sudo debootstrap sid sid-root http://cdn.debian.net/debian/
debootstrap is available in other Linux distros like Archlinux.
Then sudo chroot ~/debian/sid-root
, and apt-get install as follows:
apt-get install live-build git make sudo squashfs-tools syslinux genisoimage librsvg2-bin
Clone a copy of https://github.com/Webconverger/Debian-Live-config into root's home directory like so:
git clone git://github.com/Webconverger/Debian-Live-config.git /root
cd
make
The Makefile should clone the Webconverger chroot from a read only github URL set in the Makefile
Your remotes should look like:
origin git://github.com/Webconverger/webc.git (fetch)
origin [email protected]:Webconverger/webc.git (push)
So you can make an authenticated push outside the chroot from the host system.
If you are not yet a Trusted Contributor to the opensource project, please publish your work via a github fork of webc. Once forking you need to setup the pushurl, like so:
git remote set-url --push origin [email protected]:YOUR_USERNAME/webc.git
Please try contribute your changes back to webc by doing a Pull Request. All contributions become copyrighted Webconverger and MIT licensed and [[thanked|acknowledgements]]. :)
Next I've created a few aliases to help me navigate around that structure. These binds are of course personal preferences like Quake or Starcraft hotkeys.
To enter the chroot and add/remove packages for example. c; apt-get update && apt-get install something
alias c="sudo chroot ~/debian/sid-root/root/webconverger/chroot"
To build the ISO, I enter: b; make
alias b="sudo chroot ~/debian/sid-root"
i
gets me to the top level directory so I can do work from my host system.
alias i="cd ~/debian/sid-root/root/webconverger"
Whenever I drop out of the chroot, I run up
to push the change up to github.
up() {
cd ~/debian/sid-root/root/webconverger/chroot
git push
}
Update: With [[upgrade]] the flow is to push to a branch before merging to master, since master is automatically used by install users and it's extremely important that it remains stable.
x220:~$ grep GIT ~/.bashrc
export GIT_AUTHOR_NAME="Your Name"
export GIT_COMMITTER_NAME="Your Name"
export [email protected]
export [email protected]
Have a link like this in your /etc/sudoers
Defaults env_keep+=SSH_AUTH_SOCK,env_keep+=GIT_*
So when you run sudo chroot
, it should have your basic git settings.
If you can think of optimisations, please let me know! Lets assume for example I'm tweaking https://github.com/Webconverger/webc/blob/master/etc/webc/webc.conf.
First I go, c
which chroots me into webc
rootfs. I make an
edit. I add and commit than change, otherwise git-fs will not pick up that
change. Then I exit the terminal and drop back in the host system.
Then I go b
to get into the Debian sid-chroot with Debian Live build
script. I run make
and
builds the ISO.
Once the ISO is built I launch [[Virtualbox|testing]] and test
binary.hybrid.iso
.