I would like to create my own Ubuntu derivative with my desktop environment of choice and my preferred set of prepackaged programs.
What base should I start with and what modifications should I start adding?
I know two possible starting points:
Ubuntu Core, an official set of bare necessities (which ones?) that seems suitable for creating appliance firmware or one's very own Linux distribution. Unlike JeOS that came before it, this is not a complete distribution, as it lacks a bootable image with an installer or a boot loader.
Ubuntu Mini Remix, a fully working Ubuntu livecd containing only the minimal set of software to make the system work; not an official Ubuntu project.
probably I could use Ubuntu Server or something else as a base.
Then, I need to customize my distribution. I know of the following tools:
that should allow for me to easily customize my installation media. But what if I need not just something to create a one-off remix of Ubuntu for my own enjoyment, but a maintainable project with all its trappings: I guess I need to have a set of scripts trackable by version control system, amenable for automated testing and building with some build infrastructure. That's how they build a halfway decent OS distribution, right?
How should I best start creating my own Ubuntu derivative in a way that could naturally transcend a one-off custom CD for myself, and be built in a more controlled, robust manner, like proper Ubuntu derivatives supposedly do?