langpack-o-matic operator's guide ================================= This document collects recipes for common language-pack/-support updating operations. All language-{pack,support}-* packages are automatically generated by the langpack-o-matic scripts (bzr get lp:langpack-o-matic). Never ever do a manual upload of these packages, changes will get overridden! Please see https://wiki.ubuntu.com/TranslationLifecycle for a general overview about language packs. Build place ----------- language pack operations are done on rookery.ubuntu.com, by members of the "langpack" group. For convenience, you should define this alias in your ~/.bash_profile: alias lpsh='cd /srv/language-packs.ubuntu.com/; HOME=/srv/language-packs.ubuntu.com/home/ sudo -u langpack -s; cd -' (to be read as "Language Pack SHell"). Since we cannot easily push changes from this branch to Launchpad, please do changes on your local box if possible, push them to the main branch on LP, and only do "bzr pull" in /srv/language-packs.ubuntu.com/langpack-o-matic (the master checkout). General rules ------------- * Before doing manual operations, verify that langpack-o-matic is not currently busy with an automatic build. The file "updated-packages" should be empty (or nonexistant). See "crontab -l" for the automatic updates. * Creating source packages can happen in the normal rookery environment. Calling dpkg-buildpackage and dput needs to be done in a chroot, since the normal rookery environment does not provide debhelper, dput, etc. language-support-* update ------------------------- Use case: for a particular language XX, you want to change the language-support-*-XX dependencies in the current Ubuntu development release. (Note that we don't usually change the dependencies in stables.) 1. Get the updates committed to LP and pulled to the rookery checkout. 2. cd langpack-o-matic 3. For each changed language XX, do ./update-support XX where is the Ubuntu release for the upload (the current development release, for example "hardy"). 4. updated-packages has the paths to all changed packages now. You might want to look into them and verify that debian/{control,changelog} look correct. 5. Build the packages and get them uploaded: dchroot -d /srv/language-packs.ubuntu.com/langpack-o-matic/packages upload Releasing PPA packages to -proposed ----------------------------------- On every first Monday of a month, the current PPA packages should be released to -proposed, so that they can go to -updates eventually. 1. Disable the automatic generation of PPA updates in crontab -e for all stable releases. Testing should focus on -proposed. 2. Ask an archive admin to copy the current PPA packages to -proposed for all applicable stable releases. The archive admin does the following on drescher for all applicable releases: cd /tmp/$SUDO_USER rm -f cmds ~/langpack-o-matic/copy-packages dapper ppa proposed >> cmds # repeat above command for all applicable releases # look at cmds for plausibility . ./cmds 3. Send a call for testing to the ubuntu-translators@ ML: https://lists.ubuntu.com/mailman/listinfo/ubuntu-translators Example: https://lists.ubuntu.com/archives/ubuntu-translators/2007-June/001156.html Releasing -proposed packages to -updates ---------------------------------------- After the -proposed packages have been sufficiently verified, they can be copied to -updates. 1. Ask an archive admin to copy over the packages for all applicable stable releases.The archive admin does the following on drescher: cd /tmp/$SUDO_USER rm -f cmds ~/langpack-o-matic/copy-packages dapper proposed updates >> cmds # repeat above command for all applicable releases # look at cmds for plausibility . ./cmds 2. Reenable automatic generation of PPA updates in crontab -e for all stable releases. Refreshing -base packages ------------------------- If the update packages of a particular distro release become too big, or the development release gets closer to the day of final release, the -base packages should be regenerated and thus the update packages become empty. This ensures that language packs do not waste CD space, and that further updates are small again. 1. Request a full language pack export at https://translations.launchpad.net/ubuntu/hardy/+language-packs (Replace "hardy" with the appropriate distro release name.) 2. Disable the automatic generation of update packages in crontab -e for the affected release. 3. Download the new tarball once it is available (check above URL): cd langpack-o-matic wget https://translations.launchpad.net/ubuntu/hardy/+latest-full-language-pack 4. Remove the current packages for that release: rm -rf ../hardy/sources-{base,update} 5. Build and upload them: ./import ubuntu-hardy-translations.tar.gz hardy dchroot -d /srv/language-packs.ubuntu.com/langpack-o-matic/packages upload 6. Re-enable the automatic generation of update packages in crontab -e for the affected release. 7. Tell the LP translations administrators to mark the tarball as 'used'. Various shell recipes --------------------- * Re-extract all support packages from current archive: cd ../hardy/sources-support find /srv/archive.ubuntu.com/ubuntu/pool/main/l/ -type d -name 'language-support-*' | while read d; do dpkg-source -x `ls $d/*.dsc | tail -n 1`; done * Rebuild all language-pack-support packages: for i in `ls support-depends/`; do ./update-support $i intrepid; done