Ubiquity is a simple graphical live CD installer designed to integrate well with Debian- and Ubuntu-based systems, written largely in Python, using d-i as a backend for many of its functions for ease of maintenance. After initial development work by Guadalinex, ColinWatson did most of the development work on Ubiquity, with the aid of JonathanRiddell for the KDE frontend, and EvanDandrea later contributed work on migration-assistant and implemented much of its redesign. It is maintained by the [[http://launchpad.net/~ubuntu-installer|Ubuntu Installer Team]]. == Contributing == We always need help implementing features and fixing [[https://bugs.launchpad.net/ubuntu/+source/ubiquity|bugs]]. The installer is one of the first experiences in Ubuntu that new users have, and it's critical that we make it a compelling one. The installation should be rock-solid. Every person who fails to install Ubuntu is likely one less person who will use Ubuntu. There are a number of features being worked on at any given time. Do free to pick up anything that isn't actively being worked on by someone else. Please check the [[http://wiki.ubuntu.com/WorkItemsHowto|work items]] for the [[http://status.ubuntu.com/ubuntu-quantal/canonical-foundations.html|Foundations Team]] as well as the work items for the [[http://status.ubuntu.com/|individual members]] of the [[http://launchpad.net/~ubuntu-installer|Ubuntu Installer Team]]. If you're confused, please do not hesitate to come and chat in #ubuntu-installer on the Freenode IRC network. Just make sure you stick around long enough for your question to be answered. Many of the developers are spread across the US and European time zones. == Design == * [[http://goo.gl/Kokw5|Design Spec]] * [[Ubiquity/SlideDecks]] == Development == * [[Installer/Development]] * [[DebuggingUbiquity|Debugging]] * [[https://code.launchpad.net/~ubuntu-installer/ubiquity/trunk|Primary development bzr branch]] * [[DesktopCDOptions|Various options that can be passed on the kernel command line for the desktop and installer]] * [[Ubiquity/Testing]] how to test run ubiquity == For OEMs == * [[UbiquityAutomation|Automating installations with Ubiquity]] == Building the package == Binary: * `./debian/rules update` * `fakeroot ./debian/rules binary` or `debuild binary` To-rerun install phase: * `rm install-stamp` * `fakeroot ./debian/rules binary` or `debuild binary` To clean and prepare source package: * `fakeroot ./debian/rules clean` * `./debian/rules update` * `debuild -S` == Updating the translations == The main translation template is debian/real-po/templates.pot, to refresh it after adding new strings: * `debconf-updatepo` (it's also refresh the .po translations with changes like updated line numbers and new fuzzy strings which is usually fine to include in the commit) The .desktop and polkit files are translated in po/, to update that template: * `cd po; intltool-update -p` Updates * The templates are imported to launchpad when the source package is uploaded to Ubuntu https://translations.launchpad.net/ubuntu/focal/+source/ubiquity/+translations (change 'focal' by the wanted serie) * Translation work is done on launchpad * Ubiquity doesn't use gettext so doesn't get its translations updated with the language packs, the po file need to be imported back manually in the source and uploaded to Ubuntu * Request an export on https://translations.launchpad.net/ubuntu/focal/+source/ubiquity/+pots/ubiquity-debconf/+export (using the default options since we are only interested by the .po files) * Wait for the email with the exported tarball * `tar xvzf launchpad-export.tar.gz` * `rename -f 's#ubiquity-debconf-##' debian/real-po/*.po` * `cp debian/real-po/*.po ubiquity/debian/real-po/` * commit the update * upload the package == Testing unity greeter == * switch to tty * download any packages/replacements from 192.168.122.1 (virt-manager/kvm networking) * To restart ubiquity-dm mode: * `stop lightdm ; stop ubiquity ; pkill -9 X ; start ubiquity`