~ubuntu-langpack/langpack-o-matic/main

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
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 <release>

   where <release> 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