Merge lp:~andrewsomething/ubuntu-packaging-guide/i18n into lp:ubuntu-packaging-guide

Proposed by Andrew Starr-Bochicchio
Status: Merged
Merged at revision: 84
Proposed branch: lp:~andrewsomething/ubuntu-packaging-guide/i18n
Merge into: lp:ubuntu-packaging-guide
Diff against target: 6926 lines (+6536/-77)
18 files modified
.bzrignore (+3/-0)
Makefile (+122/-46)
conf.py (+13/-11)
debian/control (+2/-1)
debian/copyright (+1/-1)
debian/rules (+14/-1)
debian/ubuntu-packaging-guide.doc-base.single (+1/-1)
debian/ubuntu-packaging-guide.docs (+1/-1)
po/de.po (+3182/-0)
po/ubuntu-packaging-guide.pot (+3182/-0)
ubuntu-packaging-guide/debian-dir-overview.rst (+1/-1)
ubuntu-packaging-guide/fixing-a-bug.rst (+2/-2)
ubuntu-packaging-guide/index.rst (+2/-2)
ubuntu-packaging-guide/introduction-to-ubuntu-development.rst (+3/-3)
ubuntu-packaging-guide/packaging-new-software.rst (+1/-1)
ubuntu-packaging-guide/patches-to-packages.rst (+1/-1)
ubuntu-packaging-guide/security-and-stable-release-updates.rst (+3/-3)
ubuntu-packaging-guide/udd-intro.rst (+2/-2)
To merge this branch: bzr merge lp:~andrewsomething/ubuntu-packaging-guide/i18n
Reviewer Review Type Date Requested Status
Daniel Holbach (community) Approve
Review via email: mp+97903@code.launchpad.net
To post a comment you must log in.
98. By Andrew Starr-Bochicchio

Fix typo in latexpdf target.

99. By Andrew Starr-Bochicchio

Process html with sed to move them out of the redundant ubuntu-packaging-guide dir.

100. By Andrew Starr-Bochicchio

Also move single html out of redundant dir.

101. By Andrew Starr-Bochicchio

Adjust docbase files for new layout.

Revision history for this message
Daniel Holbach (dholbach) wrote :

Thanks a lot for your work on this. This is a great start.

We seem to have a new directory structure like

  /usr/share/doc/ubuntu-packaging-guide/html/en/packaging-new-software.html

now. It looks like we will just have to live with it (Updated bookmarks, etc.)

Also did I notice
  /usr/share/doc/ubuntu-packaging-guide/html/en/_static/minus.png
which looks like we'll have lots of duplicate files. I can't quite remember which technology we used to replace it with symlinks.

What are your thoughts on the above?

review: Needs Information
Revision history for this message
Andrew Starr-Bochicchio (andrewsomething) wrote :

On Fri, Mar 16, 2012 at 12:39 PM, Daniel Holbach
<email address hidden> wrote:
> Review: Needs Information
>
> Thanks a lot for your work on this. This is a great start.
>
> We seem to have a new directory structure like
>
>  /usr/share/doc/ubuntu-packaging-guide/html/en/packaging-new-software.html
>
> now. It looks like we will just have to live with it (Updated bookmarks, etc.)

I like keeping the orderly structure of:

 /usr/share/doc/ubuntu-packaging-guide/html/$lang/

But I guess there's no reason we can't put the English version
directly in html/ and just use html/$lang/ for other languages. I'll
push a new revision.

> Also did I notice
>  /usr/share/doc/ubuntu-packaging-guide/html/en/_static/minus.png
> which looks like we'll have lots of duplicate files. I can't quite remember which technology we used to replace it with symlinks.

There's probably a few ways we can do this. Since we're already
processing stuff with sed, maybe we could just make the links in the
html to html/$lang/_static/ all point to html/_static and share the
folder rather than symlinking?

-- Andrew Starr-Bochicchio

   Ubuntu Developer <https://launchpad.net/~andrewsomething>
   Debian Maintainer
<http://qa.debian.org/developer.php?login=a.starr.b%40gmail.com>
   PGP/GPG Key ID: D53FDCB1

102. By Andrew Starr-Bochicchio

Keep en version directly in html/ so we don't break links.

Revision history for this message
Daniel Holbach (dholbach) wrote :

Maybe it'd make sense to use something like fdupes for detecting duplicates? If we dig a little bit in debian/rules snippets I'm sure we ca find it somewhere? :)

103. By Andrew Starr-Bochicchio

Use fdupes to find and link identical resources.

Revision history for this message
Andrew Starr-Bochicchio (andrewsomething) wrote :

I think I've got it...

Revision history for this message
Daniel Holbach (dholbach) wrote :

I just pushed some changes to lp:~dholbach/ubuntu-packaging-guide/i18n which I think would be nice to have.

Personally I feel all versions of the /en/ flavour should live in ./ so we don't break links.

I also added a stub for the German translation, so we can mess around with it and test things.

The doc team had bits in their package build system at some stage which only made them include translations above a certain percentage of completion. Adding something along those lines might be interesting at some stage. We can file a separate bug about that.

Thanks a lot for your tireless work - I think with the changes above we're ready to go.

104. By Andrew Starr-Bochicchio

Merge lp:~dholbach/ubuntu-packaging-guide/i18n

Revision history for this message
Andrew Starr-Bochicchio (andrewsomething) wrote :

On Tue, Mar 20, 2012 at 12:26 PM, Daniel Holbach
<email address hidden> wrote:
> I just pushed some changes to lp:~dholbach/ubuntu-packaging-guide/i18n which I think would be nice to have.
>
> Personally I feel all versions of the /en/ flavour should live in ./ so we don't break links.
>
> I also added a stub for the German translation, so we can mess around with it and test things.

That makes sense. Merged

>
> The doc team had bits in their package build system at some stage which only made them include translations above a certain percentage of completion. Adding something along those lines might be interesting at some stage. We can file a separate bug about that.

Sounds like something we'd want. I'll look into that.

> Thanks a lot for your tireless work - I think with the changes above we're ready to go.

No problem at all. If you want, I can set up things on the Rosetta
end, but I'll need to be a project admin.

Revision history for this message
Daniel Holbach (dholbach) wrote :

Thanks again for your hard work on this!

review: Approve
Revision history for this message
Daniel Holbach (dholbach) wrote :

Hum, I'm not quite sure how I can make you a project admin.

Revision history for this message
Andrew Starr-Bochicchio (andrewsomething) wrote :

On Tue, Mar 20, 2012 at 6:02 PM, Daniel Holbach
<email address hidden> wrote:
> Hum, I'm not quite sure how I can make you a project admin.

Never mind that. I forgot that ~ubuntu-dev members are already
~ubuntu-packaging-guide-team members, so I already have the
permissions I need to do it.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore'
2--- .bzrignore 2010-11-17 14:39:13 +0000
3+++ .bzrignore 2012-03-20 20:48:20 +0000
4@@ -1,1 +1,4 @@
5 _build
6+po/*
7+!po/*.pot
8+!po/*.po
9
10=== modified file 'Makefile'
11--- Makefile 2010-11-17 14:00:59 +0000
12+++ Makefile 2012-03-20 20:48:20 +0000
13@@ -11,8 +11,12 @@
14 PAPEROPT_a4 = -D latex_paper_size=a4
15 PAPEROPT_letter = -D latex_paper_size=letter
16 ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
17+# the i18n builder cannot share the environment and doctrees with the others
18+PODIR = po
19+I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
20+LANGS = $(basename $(notdir $(wildcard $(PODIR)/*.po)))
21
22-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
23+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext locale
24
25 help:
26 @echo "Please use \`make <target>' where <target> is one of"
27@@ -31,28 +35,57 @@
28 @echo " man to make manual pages"
29 @echo " texinfo to make Texinfo files"
30 @echo " info to make Texinfo files and run them through makeinfo"
31- @echo " gettext to make PO message catalogs"
32+ @echo " gettext to (re)generate the .pot file using sphinx gettext"
33+ @echo " locale to compile .mo files from the .po files."
34 @echo " changes to make an overview of all changed/added/deprecated items"
35 @echo " linkcheck to check all external links for integrity"
36 @echo " doctest to run all doctests embedded in the documentation (if enabled)"
37
38 clean:
39- -rm -rf $(BUILDDIR)/*
40+ -rm -rf $(BUILDDIR)/* $(PODIR)/.doctrees \
41+ $(foreach lang,$(LANGS),$(PODIR)/$(lang)/)
42
43-html:
44+html: $(foreach lang,$(LANGS),html-$(lang))
45+ # Always build an English version, even if there are no .po files.
46 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
47- @echo
48- @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
49-
50-dirhtml:
51- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
52- @echo
53- @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
54-
55-singlehtml:
56+ mv $(BUILDDIR)/html/ubuntu-packaging-guide/*html $(BUILDDIR)/html/
57+ sed -i 's/href="..\//href=".\//g' $(BUILDDIR)/html/*html
58+ sed -i 's/..\/_images/.\/_images/g' $(BUILDDIR)/html/*html
59+ @echo
60+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html/en"
61+html-%: locale
62+ $(SPHINXBUILD) -Dlanguage=$* -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html/$*
63+ mv $(BUILDDIR)/html/$*/ubuntu-packaging-guide/*html $(BUILDDIR)/html/$*
64+ sed -i 's/href="..\//href=".\//g' $(BUILDDIR)/html/$*/*html
65+ sed -i 's/..\/_images/.\/_images/g' $(BUILDDIR)/html/$*/*html
66+ @echo
67+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html/$*."
68+
69+dirhtml: $(foreach lang,$(LANGS),dirhtml-$(lang))
70+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml/en
71+ @echo
72+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml/en"
73+dirhtml-%: locale
74+ $(SPHINXBUILD) -Dlanguage=$* -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml/$*
75+ @echo
76+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml/$*."
77+
78+singlehtml: $(foreach lang,$(LANGS),singlehtml-$(lang))
79 $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
80- @echo
81- @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
82+ sed -i 's/..\/..\//.\//g' _build/singlehtml/ubuntu-packaging-guide/index.html
83+ sed -i 's/ubuntu-packaging-guide\/index/index/g' _build/singlehtml/ubuntu-packaging-guide/index.html
84+ mv $(BUILDDIR)/singlehtml/ubuntu-packaging-guide/*html $(BUILDDIR)/singlehtml
85+ @echo
86+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml/en"
87+singlehtml-%: locale
88+ $(SPHINXBUILD) -Dlanguage=$* -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml/$*
89+ # Work around upstream bug in singlehtml generation:
90+ # https://bitbucket.org/birkenfeld/sphinx/issue/892/broken-singlehtml-when-files-are-in
91+ sed -i 's/..\/..\//.\//g' _build/singlehtml/$*/ubuntu-packaging-guide/index.html
92+ sed -i 's/ubuntu-packaging-guide\/index/index/g' _build/singlehtml/$*/ubuntu-packaging-guide/index.html
93+ mv $(BUILDDIR)/singlehtml/$*/ubuntu-packaging-guide/*html $(BUILDDIR)/singlehtml/$*
94+ @echo
95+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml/$*."
96
97 pickle:
98 $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
99@@ -88,51 +121,87 @@
100 @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/ubuntu-packaging-guide"
101 @echo "# devhelp"
102
103-epub:
104+epub: $(foreach lang,$(LANGS),epub-$(lang))
105 $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
106 @echo
107- @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
108+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub"
109+epub-%: locale
110+ $(SPHINXBUILD) -Dlanguage=$* -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub/$*
111+ @echo
112+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub/$*."
113
114-latex:
115+latex: $(foreach lang,$(LANGS),latex-$(lang))
116 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
117 @echo
118- @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
119+ @echo "Build finished; the LaTeX files are in is in $(BUILDDIR)/epub/en"
120+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
121+ "(use \`make latexpdf' here to do that automatically)."
122+latex-%: locale
123+ $(SPHINXBUILD) -Dlanguage=$* -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex/$*
124+ @echo
125+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex/$*."
126 @echo "Run \`make' in that directory to run these through (pdf)latex" \
127 "(use \`make latexpdf' here to do that automatically)."
128
129-latexpdf:
130+latexpdf: $(foreach lang,$(LANGS),latexpdf-$(lang))
131 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
132 @echo "Running LaTeX files through pdflatex..."
133 make -C $(BUILDDIR)/latex all-pdf
134- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
135-
136-text:
137- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
138- @echo
139- @echo "Build finished. The text files are in $(BUILDDIR)/text."
140-
141-man:
142- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
143- @echo
144- @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
145-
146-texinfo:
147- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
148- @echo
149- @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
150- @echo "Run \`make' in that directory to run these through makeinfo" \
151- "(use \`make info' here to do that automatically)."
152-
153-info:
154- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
155- @echo "Running Texinfo files through makeinfo..."
156- make -C $(BUILDDIR)/texinfo info
157- @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
158+ mkdir -p $(BUILDDIR)/pdf; cp $(BUILDDIR)/latex/*pdf $(BUILDDIR)/pdf
159+ @echo "Build finished; the PDF files are in $(BUILDDIR)/pdf"
160+latexpdf-%: locale
161+ $(SPHINXBUILD) -Dlanguage=$* -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex/$*
162+ @echo "Running LaTeX files through pdflatex..."
163+ make -C $(BUILDDIR)/latex/$* all-pdf
164+ mkdir -p $(BUILDDIR)/pdf/$*; cp $(BUILDDIR)/latex/$*/*pdf $(BUILDDIR)/pdf/$*
165+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/pdf/$*."
166+
167+text: $(foreach lang,$(LANGS),text-$(lang))
168+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text/en
169+ @echo
170+ @echo "Build finished. The text pages are in $(BUILDDIR)/text/en"
171+text-%: locale
172+ $(SPHINXBUILD) -Dlanguage=$* -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text/$*
173+ @echo
174+ @echo "Build finished. The text files are in $(BUILDDIR)/text/$*."
175+
176+man: $(foreach lang,$(LANGS),man-$(lang))
177+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man/en
178+ @echo
179+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man/en"
180+man-%: locale
181+ $(SPHINXBUILD) -Dlanguage=$* -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man/$*
182+ @echo
183+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man/$*."
184+
185+texinfo: $(foreach lang,$(LANGS),texinfo-$(lang))
186+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo/en
187+ @echo
188+ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo/en."
189+ @echo "Run \`make' in that directory to run these through makeinfo" \
190+ "(use \`make info' here to do that automatically)."
191+texinfo-%: locale
192+ $(SPHINXBUILD) -Dlanguage=$* -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo/$*
193+ @echo
194+ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo/$*."
195+ @echo "Run \`make' in that directory to run these through makeinfo" \
196+ "(use \`make info' here to do that automatically)."
197+
198+info: $(foreach lang,$(LANGS),info-$(lang))
199+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo/en
200+ @echo "Running Texinfo files through makeinfo..."
201+ make -C $(BUILDDIR)/texinfo/en info
202+ @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo/en."
203+info-%: locale
204+ $(SPHINXBUILD) -Dlanguage=$* -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo/$*
205+ @echo "Running Texinfo files through makeinfo..."
206+ make -C $(BUILDDIR)/texinfo/$* info
207+ @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo/$*."
208
209 gettext:
210- $(SPHINXBUILD) -b gettext $(ALLSPHINXOPTS) $(BUILDDIR)/locale
211+ $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(PODIR)/
212 @echo
213- @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
214+ @echo "Build finished. The message catalogs are in $(PODIR)/."
215
216 changes:
217 $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
218@@ -149,3 +218,10 @@
219 $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
220 @echo "Testing of doctests in the sources finished, look at the " \
221 "results in $(BUILDDIR)/doctest/output.txt."
222+
223+locale: $(foreach lang,$(LANGS),locale-$(lang))
224+locale-%:
225+ @echo "Compiling .mo files in $(PODIR)/$*/LC_MESSAGES"
226+ mkdir -p $(PODIR)/$*/LC_MESSAGES
227+ msgfmt po/$*.po -o po/$*/LC_MESSAGES/ubuntu-packaging-guide.mo
228+
229
230=== modified file 'conf.py'
231--- conf.py 2012-02-27 18:07:17 +0000
232+++ conf.py 2012-03-20 20:48:20 +0000
233@@ -21,7 +21,7 @@
234 # -- General configuration -----------------------------------------------------
235
236 # If your documentation needs a minimal Sphinx version, state it here.
237-#needs_sphinx = '1.0'
238+needs_sphinx = '1.1'
239
240 # Add any Sphinx extension module names here, as strings. They can be extensions
241 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
242@@ -37,11 +37,12 @@
243 #source_encoding = 'utf-8-sig'
244
245 # The master toctree document.
246-master_doc = 'index'
247+master_doc = 'ubuntu-packaging-guide/index'
248
249 # General information about the project.
250 project = u'ubuntu-packaging-guide'
251-copyright = u'2010, Ubuntu Developers'
252+authors = 'Ubuntu Developers'
253+copyright = u'2010-2012, '+authors
254
255
256 changelog = "debian/changelog"
257@@ -74,7 +75,8 @@
258 # directories to ignore when looking for source files.
259 exclude_patterns = ['_build']
260
261-locale_dirs = ["translated/"]
262+locale_dirs = ["po/"]
263+gettext_compact = True
264
265 # The reST default role (used for this markup: `text`) to use for all documents.
266 #default_role = None
267@@ -188,7 +190,7 @@
268 # Grouping the document tree into LaTeX files. List of tuples
269 # (source start file, target name, title, author, documentclass [howto/manual]).
270 latex_documents = [
271- ('index', 'ubuntu-packaging-guide.tex', u'ubuntu-packaging-guide Documentation',
272+ ('ubuntu-packaging-guide/index', 'ubuntu-packaging-guide.tex', u'ubuntu-packaging-guide Documentation',
273 u'Ubuntu Developers', 'manual'),
274 ]
275
276@@ -221,7 +223,7 @@
277 # One entry per manual page. List of tuples
278 # (source start file, name, description, authors, manual section).
279 man_pages = [
280- ('index', 'ubuntu-packaging-guide', u'ubuntu-packaging-guide Documentation',
281+ ('ubuntu-packaging-guide/index', 'ubuntu-packaging-guide', u'ubuntu-packaging-guide Documentation',
282 [u'Ubuntu Developers'], 1)
283 ]
284
285@@ -231,7 +233,7 @@
286 # (source start file, target name, title, author,
287 # dir menu entry, description, category)
288 texinfo_documents = [
289- ('index', 'ubuntu-packaging-guide', u'ubuntu-packaging-guide Documentation', u'Ubuntu Developers',
290+ ('ubuntu-packaging-guide/index', 'ubuntu-packaging-guide', u'ubuntu-packaging-guide Documentation', u'Ubuntu Developers',
291 'ubuntu-packaging-guide', 'One line description of project.', 'Miscellaneous'),
292 ]
293
294@@ -242,10 +244,10 @@
295 # -- Options for Epub output ---------------------------------------------------
296
297 # Bibliographic Dublin Core info.
298-epub_title = u'ubuntu-packaging-guide'
299-epub_author = u'Ubuntu Developers'
300-epub_publisher = u'Ubuntu Developers'
301-epub_copyright = u'2010, Ubuntu Developers'
302+epub_title = project
303+epub_author = authors
304+epub_publisher = authors
305+epub_copyright = copyright
306
307 # The language of the text. It defaults to the language option
308 # or en if the language is not set.
309
310=== modified file 'debian/control'
311--- debian/control 2011-04-19 09:08:45 +0000
312+++ debian/control 2012-03-20 20:48:20 +0000
313@@ -3,7 +3,8 @@
314 Section: doc
315 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
316 Build-Depends: debhelper (>= 7.0.50~), python-sphinx (>= 1.0~), doc-base,
317- texlive-latex-base, texlive-latex-recommended, texlive-latex-extra, texlive-fonts-recommended
318+ texlive-latex-base, texlive-latex-recommended, texlive-latex-extra,
319+ texlive-fonts-recommended, fdupes
320 Standards-Version: 3.9.1
321
322 Package: ubuntu-packaging-guide
323
324=== modified file 'debian/copyright'
325--- debian/copyright 2012-02-24 10:46:44 +0000
326+++ debian/copyright 2012-03-20 20:48:20 +0000
327@@ -4,7 +4,7 @@
328 Source: http://launchpad.net/ubuntu-packaging-guide
329
330 Files: *
331-Copyright: 2010-2011, Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
332+Copyright: 2010-2012, Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
333 License: CC-BY-SA-3.0
334 Attribution-ShareAlike 3.0 Unported
335 .
336
337=== modified file 'debian/rules'
338--- debian/rules 2012-01-18 20:21:22 +0000
339+++ debian/rules 2012-03-20 20:48:20 +0000
340@@ -9,4 +9,17 @@
341 make epub
342
343 override_dh_compress:
344- dh_compress -X usr/share/doc/ubuntu-packaging-guide/html/_sources/
345+ dh_compress -X usr/share/doc/ubuntu-packaging-guide/html/
346+
347+override_dh_link:
348+ # symlink identical resources.
349+ cd debian/ubuntu-packaging-guide && LC_ALL=C fdupes -r1nq \
350+ usr/share/doc/ubuntu-packaging-guide/html | while read s; do \
351+ set -- $$(echo $$s | tr ' ' '\n' | sort); \
352+ f=$$1; shift; \
353+ for d; do \
354+ echo "symlinking identical file $$f to $$d"; \
355+ rm $$f; ln -s /$$d $$f; \
356+ done; \
357+ done;
358+ dh_link
359
360=== modified file 'debian/ubuntu-packaging-guide.doc-base.single'
361--- debian/ubuntu-packaging-guide.doc-base.single 2010-11-19 12:02:45 +0000
362+++ debian/ubuntu-packaging-guide.doc-base.single 2012-03-20 20:48:20 +0000
363@@ -7,7 +7,7 @@
364 Section: Text
365
366 Format: PDF
367-Files: /usr/share/doc/ubuntu-packaging-guide/ubuntu-packaging-guide.pdf.gz
368+Files: /usr/share/doc/ubuntu-packaging-guide/pdf/ubuntu-packaging-guide.pdf.gz
369
370 Format: HTML
371 Index: /usr/share/doc/ubuntu-packaging-guide/singlehtml/index.html
372
373=== modified file 'debian/ubuntu-packaging-guide.docs'
374--- debian/ubuntu-packaging-guide.docs 2010-11-19 12:02:45 +0000
375+++ debian/ubuntu-packaging-guide.docs 2012-03-20 20:48:20 +0000
376@@ -1,4 +1,4 @@
377-_build/latex/*.pdf
378+_build/pdf
379 _build/html
380 _build/epub
381 _build/singlehtml
382
383=== added directory 'po'
384=== added file 'po/de.po'
385--- po/de.po 1970-01-01 00:00:00 +0000
386+++ po/de.po 2012-03-20 20:48:20 +0000
387@@ -0,0 +1,3182 @@
388+# SOME DESCRIPTIVE TITLE.
389+# Copyright (C) 2010-2012, Ubuntu Developers
390+# This file is distributed under the same license as the ubuntu-packaging-guide package.
391+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
392+#
393+#, fuzzy
394+msgid ""
395+msgstr ""
396+"Project-Id-Version: ubuntu-packaging-guide 0.1\n"
397+"Report-Msgid-Bugs-To: \n"
398+"POT-Creation-Date: 2012-02-29 17:52\n"
399+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
400+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
401+"Language-Team: LANGUAGE <LL@li.org>\n"
402+"MIME-Version: 1.0\n"
403+"Content-Type: text/plain; charset=UTF-8\n"
404+"Content-Transfer-Encoding: 8bit\n"
405+
406+#: ../ubuntu-packaging-guide/chroots.rst:3
407+# d6c7ecbd606c4b9282b23708db85f9b5
408+msgid "Using Chroots"
409+msgstr "Chroots benutzen"
410+
411+#: ../ubuntu-packaging-guide/chroots.rst:5
412+# c2a9180a73924eb0b652907be2585c5d
413+msgid "If you are running one version of Ubuntu but working on packages for another versions you can create the environment of the other version with a ``chroot``."
414+msgstr ""
415+
416+#: ../ubuntu-packaging-guide/chroots.rst:9
417+# 6634399d63e843f4b72b0f770fafd076
418+msgid "A ``chroot`` allows you to have a full filesystem from another distribution which you can work in quite normally. It avoids the overhead of running a full virtual machine."
419+msgstr ""
420+
421+#: ../ubuntu-packaging-guide/chroots.rst:14
422+# feb922fa269d4d50913b3692dea2800f
423+msgid "Creating a Chroot"
424+msgstr ""
425+
426+#: ../ubuntu-packaging-guide/chroots.rst:16
427+# 84f92237b55541a2b463749f2521ca05
428+msgid "Use the command ``debootstrap`` to create a new chroot::"
429+msgstr ""
430+
431+#: ../ubuntu-packaging-guide/chroots.rst:20
432+# 9208c7dbf8d84b5eb0fd24fab308ff5c
433+msgid "This will create a directory ``oneiric`` and install a minimal oneiric system into it."
434+msgstr ""
435+
436+#: ../ubuntu-packaging-guide/chroots.rst:23
437+# 2f24711099184a0ba8f80c20edc1adc2
438+msgid "If your version of ``debootstrap`` does not know about oneiric you can try upgrading to the version in ``backports``."
439+msgstr ""
440+
441+#: ../ubuntu-packaging-guide/chroots.rst:26
442+# 0575a501ac4448359c69b30b55550435
443+msgid "You can then work inside the chroot::"
444+msgstr ""
445+
446+#: ../ubuntu-packaging-guide/chroots.rst:30
447+# 6b1f042f6de1476db33347866860441c
448+msgid "Where you can install or remove any package you wish without affecting your main system."
449+msgstr ""
450+
451+#: ../ubuntu-packaging-guide/chroots.rst:33
452+# 9536d8f2c01e43648648496a446eeb6e
453+msgid "You might want to copy your GPG/ssh keys and Bazaar configuration into the chroot so you can access and sign packages directly."
454+msgstr ""
455+
456+#: ../ubuntu-packaging-guide/chroots.rst:36
457+# e6d516f40fee4cc2972525ec9b13615e
458+msgid "$ sudo mkdir oneiric/home/<username> $ sudo cp -r ~/.gnupg ~/.ssh ~/.bazaar oneiric/home/<username>"
459+msgstr ""
460+
461+#: ../ubuntu-packaging-guide/chroots.rst:39
462+# ed82e18debb24933ad3b49492b196442
463+msgid "To stop apt and other programs complaining about missing locales you can install your relevant language pack::"
464+msgstr ""
465+
466+#: ../ubuntu-packaging-guide/chroots.rst:44
467+# 7d9703bd6d9148daa5980a104d8d13ef
468+msgid "If you want to run X programs you will need to bind the /tmp directory into the chroot, from outside the chroot run::"
469+msgstr ""
470+
471+#: ../ubuntu-packaging-guide/chroots.rst:50
472+# 3c056ca4d3b54c53bca74c2cc2025835
473+msgid "Some programs may need you to bind /dev or /proc."
474+msgstr ""
475+
476+#: ../ubuntu-packaging-guide/chroots.rst:52
477+# 7164d56709d64a9e83edc09bf710fce7
478+msgid "For more information on chroots see our `Debootstrap Chroot wiki page`_."
479+msgstr ""
480+
481+#: ../ubuntu-packaging-guide/chroots.rst:55
482+# 26aacfbeebe4473f9e1244c3c974b6ff
483+msgid "Alternatives"
484+msgstr "Alternativen"
485+
486+#: ../ubuntu-packaging-guide/chroots.rst:57
487+# f085504840904fcb995131456d3036d7
488+msgid "SBuild is a system similar to PBuilder for creating an environment to run test package builds in. It closer matches that used by Launchpad for building packages but takes some more setup compared to PBuilder. See `the Security Team Build Environment wiki page`_ for a full explanation."
489+msgstr ""
490+
491+#: ../ubuntu-packaging-guide/chroots.rst:59
492+# 9fa7e581df034a33a4503a7a41b37017
493+msgid "Full virtual machines can be useful for packaging and testing programmes. TestDrive is a program to automate syncing and running daily ISO images, see `the TestDrive wiki page`_ for more information."
494+msgstr ""
495+
496+#: ../ubuntu-packaging-guide/chroots.rst:63
497+# 112cec755e0d4ac5a0e1e20df59807f8
498+msgid "You can also set up pbuilder to pause when it comes across a build failure. Copy C10shell from /usr/share/doc/pbuilder/examples into a directory and use the --hookdir= argument to point to it."
499+msgstr ""
500+
501+#: ../ubuntu-packaging-guide/chroots.rst:67
502+# 1367b95423434ae9b8d2687c8c100771
503+msgid "Amazon's `EC2 cloud computers`_ allow you to hire a computer paying a few US cents per hour, you can set up Ubuntu machines of any supported version and package on those. This is useful when you want to compile many packages at the same time or to overcome bandwidth restraints."
504+msgstr ""
505+
506+#: ../ubuntu-packaging-guide/communication.rst:3
507+# 607298b09c134c8497b9dd820a18456f
508+msgid "Communication in Ubuntu Development"
509+msgstr ""
510+
511+#: ../ubuntu-packaging-guide/communication.rst:5
512+# 02e7427cdd1a4e48b9f0dfa256715944
513+msgid "In a project where thousands of lines of code are changed, lots of decisions are made and hundreds of people interact every day, it is important to communicate effectively."
514+msgstr ""
515+
516+#: ../ubuntu-packaging-guide/communication.rst:10
517+# 8dff4e5170734f698bbb51c6807b7dcf
518+msgid "Mailing lists"
519+msgstr "Mailinglisten"
520+
521+#: ../ubuntu-packaging-guide/communication.rst:12
522+# 7bdd3f8f13b34307a06a05656c94760b
523+msgid "Mailing lists are a very important tool if you want to communicate ideas to a broader team and make sure that you reach everybody, even across timezones."
524+msgstr ""
525+
526+#: ../ubuntu-packaging-guide/communication.rst:16
527+# ec54a70a969342e58399443508c91e33
528+msgid "In terms of development, these are the most important ones:"
529+msgstr ""
530+
531+#: ../ubuntu-packaging-guide/communication.rst:18
532+# c583284d21a5478e973448d96344c720
533+msgid "https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-announce (announce-only, the most important development announcements go here)"
534+msgstr ""
535+
536+#: ../ubuntu-packaging-guide/communication.rst:20
537+# 187731122f5045a09748d70e00456b4c
538+msgid "https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel (general Ubuntu development discussion)"
539+msgstr ""
540+
541+#: ../ubuntu-packaging-guide/communication.rst:22
542+# 38f45dd72cfd4f64bc0e64af440c45c2
543+msgid "https://lists.ubuntu.com/mailman/listinfo/ubuntu-motu (MOTU Team discussion, get help with packaging)"
544+msgstr ""
545+
546+#: ../ubuntu-packaging-guide/communication.rst:27
547+# bcf8bf4cfd7d44e79964fc504e3dcbcf
548+msgid "IRC Channels"
549+msgstr "IRC-Kanäle"
550+
551+#: ../ubuntu-packaging-guide/communication.rst:29
552+# 1640a1e73721469dbb00fb44535008f2
553+msgid "For real-time discussions, please connect to irc.freenode.net and join one or any of these channels:"
554+msgstr ""
555+
556+#: ../ubuntu-packaging-guide/communication.rst:32
557+# 54b7cb96eed649698da71070bdcec51b
558+msgid "#ubuntu-devel (for general development discussion)"
559+msgstr ""
560+
561+#: ../ubuntu-packaging-guide/communication.rst:33
562+# 9d87672ae32043ec8c0a9f2bca0b7dd4
563+msgid "#ubuntu-motu (for MOTU team discussion and generally getting help)"
564+msgstr ""
565+
566+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:2
567+# 89800d29a2d548768207920d6fb6d7b3
568+msgid "Basic Overview of the ``debian/`` Directory"
569+msgstr ""
570+
571+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:4
572+# 7d1e060c05644770b508535c347508a1
573+msgid "This article will briefly explain the different files important to the packaging of Ubuntu packages which are contained in the ``debian/`` directory. The most important of them are ``changelog``, ``control``, ``copyright``, and ``rules``. These are required for all packages. A number of additional files in the ``debian/`` may be used in order to customize and configure the behavior of the package. Some of these files are discussed in this article, but this is not meant to be a complete list."
574+msgstr ""
575+
576+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:13
577+# 3021836f0c23449690b60757ce61172a
578+msgid "The changelog"
579+msgstr ""
580+
581+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:15
582+# 31bd62153b0d408bb34738128c941836
583+msgid "This file is, as its name implies, a listing of the changes made in each version. It has a specific format that gives the package name, version, distribution, changes, and who made the changes at a given time. If you have a GPG key (see: :doc:`Getting set up<./getting-set-up/>`), make sure to use the same name and email address in ``changelog`` as you have in your key. The following is a template ``changelog``::"
584+msgstr ""
585+
586+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:31
587+# 615d3cedb82c4d399c625d3986b6c75e
588+msgid "The format (especially of the date) is important. The date should be in :rfc:`5322` format, which can be obtained by using the command ``date -R``. For convenience, the command ``dch`` may be used to edit changelog. It will update the date automatically."
589+msgstr ""
590+
591+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:36
592+# 3d1b93961c0a46a4b77382e11822dd08
593+msgid "Minor bullet points are indicated by a dash \"-\", while major points use an asterisk \"*\"."
594+msgstr ""
595+
596+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:39
597+# 3c8e29b2b199417083f23153de4c94c4
598+msgid "If you are packaging from scratch, ``dch --create`` (``dch`` is in the ``devscripts`` package) will create a standard ``debian/changelog`` for you."
599+msgstr ""
600+
601+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:43
602+# 0f6505553bb0491d9f0247c37f87cf9a
603+msgid "Here is a sample ``changelog`` file for hello::"
604+msgstr ""
605+
606+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:52
607+# 3f1fd2f3b89a4e36aff77a170ba8c656
608+msgid "Notice that the version has a ``-0ubuntu1`` appended to it, this is the distro revision, used so that the packaging can be updated (to fix bugs for example) with new uploads within the same source release version."
609+msgstr ""
610+
611+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:56
612+# 8500e33e8dae496d9bab351d1f1f0a0d
613+msgid "Ubuntu and Debian have slightly different package versioning schemes to avoid conflicting packages with the same source version. If a Debian package has been changed in Ubuntu, it has ``ubuntuX`` (where ``X`` is the Ubuntu revision number) appended to the end of the Debian version. So if the Debian hello ``2.6-1`` package was changed by Ubuntu, the version string would be ``2.6-1ubuntu1``. If a package for the application does not exist in Debian, then the Debian revision is ``0`` (e.g. ``2.6-0ubuntu1``)."
614+msgstr ""
615+
616+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:64
617+# 8a1028b5e61244339a21d8fdf991cd73
618+msgid "For further information, see the `changelog section (Section 4.4) <http://www.debian.org/doc/debian-policy/ch-source.html#s-dpkgchangelog>`_ of the Debian Policy Manual."
619+msgstr ""
620+
621+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:70
622+# 552ad1faf3814524bd838abbb1c6dfde
623+msgid "The control file"
624+msgstr ""
625+
626+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:72
627+# 0a7a9cd926a5482090b334ae4eb5fa76
628+msgid "The ``control`` file contains the information that the package manager (such as ``apt-get``, ``synaptic``, and ``adept``) uses, build-time dependencies, maintainer information, and much more."
629+msgstr ""
630+
631+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:76
632+# 2c2caa9a9fef495dad29ffa07ab52d4a
633+msgid "For the Ubuntu ``hello`` package, the ``control`` file looks something like::"
634+msgstr ""
635+
636+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:99
637+# bd3ddeb9c3fd445ba6df546d419ec391
638+msgid "The first paragraph describes the source package including the list of packages required to build the package from source in the ``Build-Depends`` field. It also contains some meta-information such as the maintainer's name, the version of Debian Policy that the package complies with, the location of the packaging version control repository, and the upstream home page."
639+msgstr ""
640+
641+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:106
642+# 93b0eec4843d4f819ba16118070fbbdf
643+msgid "Note that in Ubuntu, we set the ``Maintainer`` field to a general address because anyone can change any package (this differs from Debian where changing packages is usually restricted to an individual or a team). Packages in Ubuntu should generally have the ``Maintainer`` field set to ``Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>``. If the Maintainer field is modified, the old value should be saved in the ``XSBC-Original-Maintainer`` field. This can be done automatically with the ``update-maintainer`` script available in the ``ubuntu-dev-tools`` package. For further information, see the `Debian Maintainer Field spec <https://wiki.ubuntu.com/DebianMaintainerField>`_ on the Ubuntu wiki."
644+msgstr ""
645+
646+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:118
647+# 00ca42e43f314557af47bf373ae50fe6
648+msgid "Each additional paragraph describes a binary package to be built."
649+msgstr ""
650+
651+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:120
652+# a48f51f0912a4312a904ab5f40ced13d
653+msgid "For further information, see the `control file section (Chapter 5) <http://www.debian.org/doc/debian-policy/ch-controlfields.html>`_ of the Debian Policy Manual."
654+msgstr ""
655+
656+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:126
657+# 870ce0ac216c4fd8a10aa642d5a8ee12
658+msgid "The copyright file"
659+msgstr "Die Copyright-Datei"
660+
661+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:128
662+# a8f880bcb0174968b217b52dfc303a34
663+msgid "This file gives the copyright information for both the upstream source and the packaging. Ubuntu and `Debian Policy (Section 12.5) <http://www.debian.org/doc/debian-policy/ch-docs.html#s-copyrightfile>`_ require that each package installs a verbatim copy of its copyright and license information to ``/usr/share/doc/$(package_name)/copyright``."
664+msgstr ""
665+
666+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:134
667+# 73c9109a50ce4e2c8d6ce22c64df57dd
668+msgid "Generally, copyright information is found in the ``COPYING`` file in the program's source directory. This file should include such information as the names of the author and the packager, the URL from which the source came, a Copyright line with the year and copyright holder, and the text of the copyright itself. An example template would be::"
669+msgstr ""
670+
671+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:176
672+# 7a2e84d5a9304d2fb327fc2d39a75a45
673+msgid "This example follows the `Machine-readable debian/copyright <http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/>`_ format. You are encouraged to use this format as well."
674+msgstr ""
675+
676+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:182
677+# 7c0fe27bc8fa4cb192be460e57dde489
678+msgid "The rules file"
679+msgstr ""
680+
681+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:184
682+# 7c9e2edb563c4fe894feeae0b17007c7
683+msgid "The last file we need to look at is ``rules``. This does all the work for creating our package. It is a Makefile with targets to compile and install the application, then create the ``.deb`` file from the installed files. It also has a target to clean up all the build files so you end up with just a source package again."
684+msgstr ""
685+
686+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:192
687+# 299ff74602f94f758774713d29895440
688+msgid "Here is a simplified version of the rules file created by ``dh_make`` (which can be found in the ``dh-make`` package)::"
689+msgstr ""
690+
691+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:204
692+# 94a7b044a9824b13b733ffe6b5ee57b5
693+msgid "Let us go through this file in some detail. What this does is pass every build target that ``debian/rules`` is called with as an argument to ``/usr/bin/dh``, which itself will call all the necessary ``dh_*`` commands."
694+msgstr ""
695+
696+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:208
697+# de59039f8bd245d7971edf916d93a839
698+msgid "``dh`` runs a sequence of debhelper commands. The supported sequences correspond to the targets of a ``debian/rules`` file: \"build\", \"clean\", \"install\", \"binary-arch\", \"binary-indep\", and \"binary\". In order to see what commands are run in each target, run::"
699+msgstr ""
700+
701+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:217
702+# 7d39368e13994bedac97c6e43018bbb2
703+msgid "Commands in the binary-indep sequence are passed the \"-i\" option to ensure they only work on binary independent packages, and commands in the binary-arch sequences are passed the \"-a\" option to ensure they only work on architecture dependent packages."
704+msgstr ""
705+
706+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:222
707+# 9aeaa267814c4f199174eb45833f25c2
708+msgid "Each debhelper command will record when it's successfully run in ``debian/package.debhelper.log``. (Which dh_clean deletes.) So dh can tell which commands have already been run, for which packages, and skip running those commands again."
709+msgstr ""
710+
711+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:227
712+# efa044d38ff14eebb1b18fab6a0d594d
713+msgid "Each time ``dh`` is run, it examines the log, and finds the last logged command that is in the specified sequence. It then continues with the next command in the sequence. The ``--until``, ``--before``, ``--after``, and ``--remaining`` options can override this behavior."
714+msgstr ""
715+
716+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:232
717+# d01ecd38632646f4b2bbaf1c8a08477d
718+msgid "If ``debian/rules`` contains a target with a name like ``override_dh_command``, then when it gets to that command in the sequence, ``dh`` will run that target from the rules file, rather than running the actual command. The override target can then run the command with additional options, or run entirely different commands instead. (Note that to use this feature, you should Build-Depend on debhelper 7.0.50 or above.)"
719+msgstr ""
720+
721+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:241
722+# 3f4e235a68754876866310c506863f75
723+msgid "Have a look at ``/usr/share/doc/debhelper/examples/`` and ``man dh`` for more examples. Also see `the rules section (Section 4.9) <http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules>`_ of the Debian Policy Manual."
724+msgstr ""
725+
726+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:247
727+# 909152843c7c41ffa14664f13cb0e23f
728+msgid "Additional Files"
729+msgstr "Zusätzliche Dateien"
730+
731+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:250
732+# f6ef0e8b2e5149f59850c2425711b97f
733+msgid "The install file"
734+msgstr ""
735+
736+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:252
737+# 526e3303d4d44e27a3ceefc4764a54c9
738+msgid "The ``install`` file is used by ``dh_install`` to install files into the binary package. It has two standard use cases:"
739+msgstr ""
740+
741+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:255
742+# 8f1de6bb1994494b807ec69b3af9e2ff
743+msgid "To install files into your package that are not handled by the upstream build system."
744+msgstr ""
745+
746+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:256
747+# ecb71f5a256c4c0ab18dd78194054e68
748+msgid "Splitting a single large source package into multiple binary packages."
749+msgstr ""
750+
751+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:258
752+# b540bec3330242b48b8b6c6f34cfacf6
753+msgid "In the first case, the ``install`` file should have one line per file installed, specifying both the the file and the installation directory. For example, the following ``install`` file would install the script ``foo`` in the source package's root directory to ``usr/bin`` and a desktop file in the ``debian`` directory to ``usr/share/applications``::"
754+msgstr ""
755+
756+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:269
757+# cdd19fc100104c8ea9f0588252dfa8cb
758+msgid "When a source package is producing multiple binary packages ``dh`` will install the files into ``debian/tmp`` rather than directly into ``debian/<package>``. Files installed into ``debian/tmp`` can then be moved into separate binary packages using multiple ``$package_name.install`` files. This is often done to split large amounts of architecture independent data out of architecture dependent packages and into ``Architecture: all`` packages. In this case, only the name of the files (or directories) to be installed are needed without the installation directory. For example, ``foo.install`` containing only the architecture dependent files might look like::"
759+msgstr ""
760+
761+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:282
762+# 490646dff688435088bd93ff30de6a8a
763+msgid "While ``foo-common.install`` containing only the architecture independent file might look like::"
764+msgstr ""
765+
766+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:290
767+# ad5ae2bd9270403fb9916024351646c9
768+msgid "This would create two binary packages, ``foo`` and ``foo-common``. Both would require their own paragraph in ``debian/control``."
769+msgstr ""
770+
771+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:293
772+# ed10a77119a6408b8a5f7bfebc53500e
773+msgid "See ``man dh_install`` and the `install file section (Section 5.11) <http://www.debian.org/doc/manuals/maint-guide/dother.en.html#install>`_ of the Debian New Maintainers' Guide for additional details."
774+msgstr ""
775+
776+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:298
777+# 2bce7b3f508c457eb566c77de679acd7
778+msgid "The watch file"
779+msgstr ""
780+
781+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:300
782+# d22412241e7349bfa19c0ca46d59fa93
783+msgid "The ``debian/watch`` file allows us to check automatically for new upstream versions using the tool ``uscan`` found in the ``devscripts`` package. The first line of the watch file must be the format version (3, at the time of this writing), while the following lines contain any URLs to parse. For example::"
784+msgstr ""
785+
786+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:309
787+# 3fd98ffeb19c4a2290a8fec31eed399c
788+msgid "Running ``uscan`` in the root source directory will now compare the upstream version number in ``debian/changelog`` with the latest available upstream version. If a new upstream version is found, it will be automatically downloaded. For example::"
789+msgstr ""
790+
791+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:322
792+# a4a1f7731ea6433ca39eecbd57af3120
793+msgid "For further information, see ``man uscan`` and the `watch file section (Section 4.11) <http://www.debian.org/doc/debian-policy/ch-source.html#s-debianwatch>`_ of the Debian Policy Manual."
794+msgstr ""
795+
796+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:326
797+# 703b5d062b5c41e5a60cf8801b69b893
798+msgid "For a list of packages where the ``watch`` file reports they are not in sync with upstream see `Ubuntu External Health Status <http://qa.ubuntuwire.org/uehs/no_updated.html>`_."
799+msgstr ""
800+
801+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:331
802+# faa634aa8992448d86ad70c8669ceee1
803+msgid "The source/format file"
804+msgstr "Die Datei source/format"
805+
806+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:333
807+# a348a6a009424e0fa49a866e129573a2
808+msgid "This file indicates the format of the source package. It should contain a single line indicating the desired format:"
809+msgstr ""
810+
811+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:336
812+# 3d75a73a1fcd4342ab1fe865edf49644
813+msgid "``3.0 (native)`` for Debian native packages (no upstream version)"
814+msgstr ""
815+
816+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:338
817+# fd11f4ebad4d45bcbac715f3d8d4cc92
818+msgid "``3.0 (quilt)`` for packages with a separate upstream tarball"
819+msgstr ""
820+
821+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:340
822+# 1293ceef3ce04d30b640542aec2b476c
823+msgid "``1.0`` for packages wishing to explicitly declare the default format"
824+msgstr ""
825+
826+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:342
827+# 4e5d823b97ab4704aba10fb129ed0106
828+msgid "Currently, the package source format will default to 1.0 if this file does not exist. You can make this explicit in the source/format file. If you choose not to use this file to define the source format, Lintian will warn about the missing file. This warning is informational only and may be safely ignored."
829+msgstr ""
830+
831+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:347
832+# d7047d3e7c22489baedfec02eea21f25
833+msgid "You are encouraged to use the newer 3.0 source format. It provides a number of new features:"
834+msgstr ""
835+
836+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:350
837+# bc4e7971f98848ae9f1fb3fd8ee97ace
838+msgid "Support for additional compression formats: bzip2, lzma and xz"
839+msgstr ""
840+
841+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:352
842+# ddca8f575fac40e09adebd6d128ff676
843+msgid "Support for multiple upstream tarballs"
844+msgstr ""
845+
846+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:354
847+# aded08ffbdb7449d88dd6010fd97766f
848+msgid "Not necessary to repack the upstream tarball to strip the debian directory"
849+msgstr ""
850+
851+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:356
852+# b0f4d5d0c68e47de9ed8836f20a0e8be
853+msgid "Debian-specific changes are no longer stored in a single .diff.gz but in multiple patches compatible with quilt under ``debian/patches/``"
854+msgstr ""
855+
856+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:358
857+# 39b0c8ccca7e48b7af1af09d580e9f58
858+msgid "http://wiki.debian.org/Projects/DebSrc3.0 summarizes additional information concerning the switch to the 3.0 source package formats."
859+msgstr ""
860+
861+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:361
862+# 9d2f31ea080c47109ce2cdae3e87f14b
863+msgid "See ``man dpkg-source`` and the `source/format section (Section 5.21) <http://www.debian.org/doc/manuals/maint-guide/dother.en.html#sourcef>`_ of the Debian New Maintainers' Guide for additional details."
864+msgstr ""
865+
866+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:366
867+# 62fbf7d7bdcb49e782e64f2623b6f273
868+msgid "Additional Resources"
869+msgstr ""
870+
871+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:368
872+# 039aa564015a48bda02c00b97d1ae2f3
873+msgid "In addition to the links to the Debian Policy Manual in each section above, the Debian New Maintainers' Guide has more detailed descriptions of each file. `Chapter 4, \"Required files under the debian directory\" <http://www.debian.org/doc/maint-guide/dreq.en.html>`_ further discusses the control, changelog, copyright and rules files. `Chapter 5, \"Other files under the debian directory\" <http://www.debian.org/doc/maint-guide/dother.en.html>`_ discusses additional files that may be used."
874+msgstr ""
875+
876+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:3
877+# 4be28eeaaecb4fffa9bcfb62c8828b58
878+msgid "Fixing a bug in Ubuntu"
879+msgstr ""
880+
881+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:6
882+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:9
883+# 5973d64df73b4f8593c75fcac478a00e
884+# e0956744ffbc47c08a5bb87b139bb113
885+msgid "Introduction"
886+msgstr ""
887+
888+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:8
889+# d4425948fa1e4b4fa3552113dc4dd00d
890+msgid "If you followed the instructions to :doc:`get set up with Ubuntu Development<./getting-set-up>`, you should be all set and ready to go."
891+msgstr ""
892+
893+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:11
894+# 02b036432f59412c82aed419f79fdb8c
895+msgid "..image:: |IMG|fixing-a-bug.png"
896+msgstr ""
897+
898+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:13
899+# 565e30b78a5c41b8990814dc8aaf9193
900+msgid "As you can see in the image above, there is no surprises in the process of fixing bugs in Ubuntu: you found a problem, you get the code, work on the fix, test it, push your changes to Launchpad and ask for it to be reviewed and merged. In this guide we will go through all the necessary steps one by one."
901+msgstr ""
902+
903+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:20
904+# 65a1fad6a3d04bbf8fc8932a8dbf6061
905+msgid "Finding the problem"
906+msgstr ""
907+
908+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:22
909+# e8e70d62917543ed8b9b8f081ba09518
910+msgid "There are a lot of different ways to find things to work on. It might be a bug report you are encountering yourself (which gives you a good opportunity to test the fix), or a problem you noted elsewhere, maybe in a bug report."
911+msgstr ""
912+
913+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:26
914+# 1c114b6ed4044179acbfa298d17e8687
915+msgid "`Harvest <http://harvest.ubuntu.com/>`_ is where we keep track of various TODO lists regarding Ubuntu development. It lists bugs that were fixed upstream or in Debian already, lists small bugs (we call them 'bitesize'), and so on. Check it out and find your first bug to work on."
916+msgstr ""
917+
918+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:35
919+# b454c63458594749aa09f9e587ed24a7
920+msgid "Figuring out what to fix"
921+msgstr ""
922+
923+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:37
924+# e80c8c6721fe41ddb9d3976bea810f18
925+msgid "If you don't know the source package containing the code that has the problem, but you do know the path to the affected program on your system, you can discover the source package that you'll need to work on."
926+msgstr ""
927+
928+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:41
929+# 4726f96b219c4bfeb111d18b723e771e
930+msgid "Let's say you've found a bug in Tomboy, a note taking desktop application. The Tomboy application can be started by running ``/usr/bin/tomboy`` on the command line. To find the binary package containing this application, use this command::"
931+msgstr ""
932+
933+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:48
934+# dbf4f211a56f4f79b15bf42c6a835050
935+msgid "This would print out::"
936+msgstr ""
937+
938+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:52
939+# 682b18dbdfe142d2affc3e04e843783f
940+msgid "Note that the part preceding the colon is the binary package name. It's often the case that the source package and binary package will have different names. This is most common when a single source package is used to build multiple different binary packages. To find the source package for a particular binary package, type::"
941+msgstr ""
942+
943+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:64
944+# b7321dfe18ed434689e1617b5ad1b575
945+msgid "Getting the code"
946+msgstr ""
947+
948+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:66
949+# a88040229e1343e3a881389f2388861f
950+msgid "Once you know the source package to work on, you will want to get a copy of the code on your system, so that you can debug it. In Ubuntu Distributed Development this is done by :ref:`*branching* the source package <branching>` branch corresponding to the source package. Launchpad maintains source package branches for all the packages in Ubuntu."
951+msgstr ""
952+
953+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:72
954+# 92bb0cef4a5a4924afaff6a5bd97394f
955+msgid "Once you've got a local branch of the source package, you can investigate the bug, create a fix, and upload your proposed fix to Launchpad, in the form of a Bazaar branch. When you are happy with your fix, you can :ref:`submit a *merge proposal* <merge-proposal>`, which asks other Ubuntu developers to review and approve your change. If they agree with your changes, an Ubuntu developer will upload the new version of the package to Ubuntu so that everyone gets the benefit of your excellent fix - and you get a little bit of credit. You're now on your way to becoming an Ubuntu developer!"
956+msgstr ""
957+
958+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:81
959+# 18ebcba0d9804cdcbd3d7b679124afba
960+msgid "We'll describe specifics on how to branch the code, push your fix, and request a review in the following sections."
961+msgstr ""
962+
963+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:86
964+# e8950446f9d643f9a88454cb13406165
965+msgid "Work on a fix"
966+msgstr ""
967+
968+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:88
969+# 0b597e2df21d4ffb9082682062b35f5b
970+msgid "There are entire books written about finding bugs, fixing them, testing them, etc. If you are completely new to programming, try to fix easy bugs such as obvious typos first. Try to keep changes as minimal as possible and document your change and assumptions clearly."
971+msgstr ""
972+
973+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:93
974+# 1cad1f33d073486abd5bbd7950da19e1
975+msgid "Before working on a fix yourself, make sure to investigate if nobody else has fixed it already or is currently working on a fix. Good sources to check are:"
976+msgstr ""
977+
978+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:96
979+# 9cd02b0b46194cb0a6e1c024c73d67bb
980+msgid "Upstream (and Debian) bug tracker (open and closed bugs),"
981+msgstr ""
982+
983+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:97
984+# fe3658bb50d6453d839bae201ab3e0d3
985+msgid "Upstream revision history (or newer release) might have fixed the problem,"
986+msgstr ""
987+
988+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:98
989+# dc982aac83c44804b15e226836d039fd
990+msgid "bugs or package uploads of Debian or other distributions."
991+msgstr ""
992+
993+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:103
994+# 3d5234f7f891414eac096bc475484247
995+msgid "You now want to create a patch which includes the fix. The command ``edit-patch`` is a simple way to add a patch to a package. Run::"
996+msgstr ""
997+
998+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:108
999+# e09e4812312c4fdc854bd3814b092ebb
1000+msgid "This will copy the packaging to a temporary directory. You can now edit files with a text editor or apply patches from upstream, for example::"
1001+msgstr ""
1002+
1003+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:113
1004+# 8e00895b4bf64119869e26ce978cb55b
1005+msgid "After editing the file type ``exit`` or press ``control-d`` to quit the temporary shell. The new patch will have been added into ``debian/patches``."
1006+msgstr ""
1007+
1008+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:118
1009+# a5e56006a7db42a2b5b976f351e1a93a
1010+msgid "Testing the fix"
1011+msgstr ""
1012+
1013+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:120
1014+# 29f45bb94cae448f9ff6bd53897237ab
1015+msgid "To build a test package with your changes, run these commands::"
1016+msgstr ""
1017+
1018+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:125
1019+# 6fd80448fb9b40668a73b68d9aa82ee9
1020+msgid "This will create a source package from the branch contents (``-us -uc`` will just omit the step to sign the source package) and ``pbuilder-dist`` will build the package from source for whatever ``release`` you choose."
1021+msgstr ""
1022+
1023+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:129
1024+# 7064dcf9f1ae4f49bacc8b5ebb79a4fb
1025+msgid "Once the build succeeds, install the package from ``~/pbuilder/<release>_result/`` (using ``sudo dpkg -i <package>_<version>.deb``). Then test to see if the bug is fixed."
1026+msgstr ""
1027+
1028+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:136
1029+# a498c34018d44bc083c421d3836bc292
1030+msgid "Documenting the fix"
1031+msgstr ""
1032+
1033+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:138
1034+# 284aad9da256489bb9541ef9c9ed8050
1035+msgid "It is very important to document your change sufficiently so developers who look at the code in the future won't have to guess what your reasoning was and what your assumptions were. Every Debian and Ubuntu package source includes ``debian/changelog``, where changes of each uploaded package are tracked."
1036+msgstr ""
1037+
1038+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:143
1039+# c560a925fc79452f85c60a462422febd
1040+msgid "The easiest way to update this is to run::"
1041+msgstr ""
1042+
1043+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:147
1044+# fc6305e6f22b4bbe8f7ae46d9d2d36fe
1045+msgid "This will add a boilerplate changelog entry for you and launch an editor where you can fill in the blanks. An example of this could be::"
1046+msgstr ""
1047+
1048+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:156
1049+# b4fcf5a54df94852b901b81d99177166
1050+msgid "``dch`` should fill out the first and last line of such a changelog entry for you already. Line 1 consists of the source package name, the version number, which Ubuntu release it is uploaded to, the urgency (which almost always is 'low'). The last line always contains the name, email address and timestamp (in :rfc:`5322` format) of the change."
1051+msgstr ""
1052+
1053+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:162
1054+# 245b3f4735b2450db24ddca21be8e504
1055+msgid "With that out of the way, let's focus on the actual changelog entry itself: it is very important to document:"
1056+msgstr ""
1057+
1058+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:165
1059+# 43f30ecd000741b2849656bfa9c6ae55
1060+msgid "where the change was done"
1061+msgstr ""
1062+
1063+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:166
1064+# 6aa10c8f84ff4278888e5edc11cfdf66
1065+msgid "what was changed"
1066+msgstr ""
1067+
1068+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:167
1069+# a48a34986f8248b891f819d4abcff85c
1070+msgid "where the discussion of the change happened"
1071+msgstr ""
1072+
1073+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:169
1074+# b5105651513148e58182645ef1350d2b
1075+msgid "In our (very sparse) example the last point is covered by ``(LP: #123456)`` which refers to Launchpad bug 123456. Bug reports or mailing list threads or specifications are usually good information to provide as a rationale for a change. As a bonus, if you use the ``LP: #<number>`` notation for Launchpad bugs, the bug will be automatically closed when the package is uploaded to Ubuntu."
1076+msgstr ""
1077+
1078+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:178
1079+# 7e3ca41954e44f68bcbe1755d6a53f74
1080+msgid "Committing the fix"
1081+msgstr ""
1082+
1083+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:180
1084+# 8931133984c348d5991fb0d11db638e0
1085+msgid "With the changelog entry written and saved, you can just run::"
1086+msgstr ""
1087+
1088+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:184
1089+# 694988e85f33437b9af1ab2c8a9192af
1090+msgid "and the change will be committed (locally) with your changelog entry as a commit message."
1091+msgstr ""
1092+
1093+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:187
1094+# c7c33ddc56cd406cb79afea806a24ab7
1095+msgid "To push it to Launchpad, as the remote branch name, you need to stick to the following nomenclature::"
1096+msgstr ""
1097+
1098+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:192
1099+# d43eb74f6725404a8e0c12ee36207d3d
1100+msgid "This could for example be::"
1101+msgstr ""
1102+
1103+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:196
1104+# 9c95cd25baca4246bf40816093dc7f7a
1105+msgid "So if you just run::"
1106+msgstr ""
1107+
1108+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:201
1109+# 5aa8ae3e79484b43bf7f43d93010513b
1110+msgid "you should be all set. The push command should push it to Launchpad and the second command will open the Launchpad page of the remote branch in your browser. There find the \"(+) Propose for merging\" link, click it to get the change reviewed by somebody and included in Ubuntu."
1111+msgstr ""
1112+
1113+#: ../ubuntu-packaging-guide/getting-set-up.rst:3
1114+# 83f85e65560046f4b62f45e17b49a17a
1115+msgid "Getting Set Up"
1116+msgstr ""
1117+
1118+#: ../ubuntu-packaging-guide/getting-set-up.rst:5
1119+# a66b7a19ac434a5a909505514b2926ca
1120+msgid "There are a number of things you need to do to get started developing for Ubuntu. This article is designed to get your computer set up so that you can start working with packages, and upload your packages to Ubuntu's hosting platform, Launchpad. Here's what we'll cover:"
1121+msgstr ""
1122+
1123+#: ../ubuntu-packaging-guide/getting-set-up.rst:10
1124+# 086a9c5ecf2d449b82843d303d58a164
1125+msgid "Installing packaging-related software. This includes:"
1126+msgstr ""
1127+
1128+#: ../ubuntu-packaging-guide/getting-set-up.rst:12
1129+# 400b8ae2a4554bb484ea4554b8fdd56d
1130+msgid "Ubuntu-specific packaging utilities"
1131+msgstr ""
1132+
1133+#: ../ubuntu-packaging-guide/getting-set-up.rst:13
1134+# e062bc0cc3ed4294b33616a98d4a5a4d
1135+msgid "Encryption software so your work can be verified as being done by you"
1136+msgstr ""
1137+
1138+#: ../ubuntu-packaging-guide/getting-set-up.rst:14
1139+# 925d91caef104cb7afa6001f05680be9
1140+msgid "Additional encryption software so you can securely transfer files"
1141+msgstr ""
1142+
1143+#: ../ubuntu-packaging-guide/getting-set-up.rst:16
1144+# b0e396c2d5f4463c96d854f06c659d6a
1145+msgid "Creating and configuring your account on Launchpad"
1146+msgstr ""
1147+
1148+#: ../ubuntu-packaging-guide/getting-set-up.rst:17
1149+# 4d333df7195b41f6b125d660b2a1c300
1150+msgid "Setting up your development environment to help you do local builds of packages, interact with other developers, and propose your changes on Launchpad."
1151+msgstr ""
1152+
1153+#: ../ubuntu-packaging-guide/getting-set-up.rst:22
1154+# 9c69c6eea045429a8a34b6fe96139751
1155+msgid "It is advisable to do packaging work using the current development version of Ubuntu. Doing so will allow you to test changes in the same environment where those changes will actually be applied and used."
1156+msgstr ""
1157+
1158+#: ../ubuntu-packaging-guide/getting-set-up.rst:26
1159+# 7c484a283dd34e39a18323d9beac87f9
1160+msgid "Don't worry though, the `Ubuntu development release wiki page <https://wiki.ubuntu.com/UsingDevelopmentReleases>`_ shows a variety of ways to safely use the development release."
1161+msgstr ""
1162+
1163+#: ../ubuntu-packaging-guide/getting-set-up.rst:32
1164+# b98ebc64ff574a5dbf0bdbd1df7a6c8f
1165+msgid "Install basic packaging software"
1166+msgstr ""
1167+
1168+#: ../ubuntu-packaging-guide/getting-set-up.rst:34
1169+# 808a29c5f38f448eb25ca66e04792f0f
1170+msgid "There are a number of tools that will make your life as an Ubuntu developer much easier. You will encounter these tools later in this guide. To install most of the tools you will need run this command::"
1171+msgstr ""
1172+
1173+#: ../ubuntu-packaging-guide/getting-set-up.rst:41
1174+# fac16697cacf4355a80e8f5b88f324a0
1175+msgid "Note: Since Ubuntu 11.10 \"Oneiric Ocelot\" (or if you have Backports enabled on a currently supported release), the following command will install the above and other tools which are quite common in Ubuntu development::"
1176+msgstr ""
1177+
1178+#: ../ubuntu-packaging-guide/getting-set-up.rst:49
1179+# 49e40cea430146ec8c2692a2a6bcd425
1180+msgid "This command will install the following software:"
1181+msgstr ""
1182+
1183+#: ../ubuntu-packaging-guide/getting-set-up.rst:51
1184+# 4e959df03bee4ba6a973d4f2cbffec9d
1185+msgid "``gnupg`` -- `GNU Privacy Guard`_ contains tools you will need to create a cryptographic key with which you will sign files you want to upload to Launchpad."
1186+msgstr ""
1187+
1188+#: ../ubuntu-packaging-guide/getting-set-up.rst:54
1189+# 1c457996b9ff49cfb8720509a4314a6d
1190+msgid "``pbuilder`` -- a tool to do a reproducible builds of a package in a clean and isolated environment."
1191+msgstr ""
1192+
1193+#: ../ubuntu-packaging-guide/getting-set-up.rst:56
1194+# e9c0f3fd07be45c2928f88eb383771ed
1195+msgid "``ubuntu-dev-tools`` (and ``devscripts``, a direct dependency) -- a collection of tools that make many packaging tasks easier."
1196+msgstr ""
1197+
1198+#: ../ubuntu-packaging-guide/getting-set-up.rst:58
1199+# 29db292e4464422eb0e4e6222af33ef5
1200+msgid "``bzr-builddeb`` (and ``bzr``, a dependency) -- distributed version control with Bazaar, a new way of working with packages for Ubuntu that will make it easy for many developers to collaborate and work on the same code while keeping it trivial to merge each others work."
1201+msgstr ""
1202+
1203+#: ../ubuntu-packaging-guide/getting-set-up.rst:62
1204+# 9f5925a4d2014953af7c6070b31a157c
1205+msgid "``apt-file`` provides an easy way to find the binary package that contains a given file."
1206+msgstr ""
1207+
1208+#: ../ubuntu-packaging-guide/getting-set-up.rst:64
1209+# 2110c86d771140b7bc69c2958b28464d
1210+msgid "``apt-cache`` (part of the ``apt`` package) provides even more information about packages on Ubuntu."
1211+msgstr ""
1212+
1213+#: ../ubuntu-packaging-guide/getting-set-up.rst:69
1214+# 0a14b46fec014f97bd7557e4d9258941
1215+msgid "Create your GPG key"
1216+msgstr ""
1217+
1218+#: ../ubuntu-packaging-guide/getting-set-up.rst:71
1219+# 16d8e0261d5a48dfb0ff6aeede808b34
1220+msgid "GPG stands for `GNU Privacy Guard`_ and it implements the OpenPGP standard which allows you to sign and encrypt messages and files. This is useful for a number of purposes. In our case it is important that you can sign files with your key so they can be identified as something that you worked on. If you upload a source package to Launchpad, it will only accept the package if it can absolutely determine who uploaded the package."
1221+msgstr ""
1222+
1223+#: ../ubuntu-packaging-guide/getting-set-up.rst:78
1224+# c25b4a7c3abd47c4adab9c0d4a8f88e4
1225+msgid "To generate a new GPG key, run::"
1226+msgstr ""
1227+
1228+#: ../ubuntu-packaging-guide/getting-set-up.rst:82
1229+# 854929b1b9b74e56a91d8cdac1b6ccbf
1230+msgid "GPG will first ask you which kind of key you want to generate. Choosing the default (RSA and DSA) is fine. Next it will ask you about the keysize. The default (currently 2048) is fine, but 4096 is more secure. Afterward, it will ask you if you want it to expire the key at some stage. It is safe to say \"0\", which means the key will never expire. The last questions will be about your name and email address. Just pick the ones you are going to use for Ubuntu development here, you can add additional email addresses later on. Adding a comment is not necessary. Then you will have to set a passphrase, choose a safe one (a passphrase is just a password which is allowed to include spaces)."
1231+msgstr ""
1232+
1233+#: ../ubuntu-packaging-guide/getting-set-up.rst:92
1234+# c9411759e55c44f7b4ff04ab876850e9
1235+msgid "Now GPG will create a key for you, which can take a little bit of time; it needs random bytes, so if you give the system some work to do it will be just fine. Move the cursor around, type some paragraphs of random text, load some web page."
1236+msgstr ""
1237+
1238+#: ../ubuntu-packaging-guide/getting-set-up.rst:97
1239+# 671e66dd26de4cc19167919c4cacf056
1240+msgid "Once this is done, you will get a message similar to this one::"
1241+msgstr ""
1242+
1243+#: ../ubuntu-packaging-guide/getting-set-up.rst:104
1244+# fbcfbe47756f426092c3860dad3c1fec
1245+msgid "In this case ``43CDE61D`` is the *key ID*."
1246+msgstr ""
1247+
1248+#: ../ubuntu-packaging-guide/getting-set-up.rst:106
1249+# 5bcf72402a81478a8210db244d7a62f9
1250+msgid "Next, you need to upload the public part of your key to a keyserver so the world can identify messages and files as yours. To do so, enter::"
1251+msgstr ""
1252+
1253+#: ../ubuntu-packaging-guide/getting-set-up.rst:111
1254+# 457a5844d06c44969821537e48cdf762
1255+msgid "This will send your key to one keyserver, but a network of keyservers will automatically sync the key between themselves. Once this syncing is complete, your signed public key will be ready to verify your contributions around the world."
1256+msgstr ""
1257+
1258+#: ../ubuntu-packaging-guide/getting-set-up.rst:118
1259+# bbd6cfc0f36241b9afc8304a4955b10f
1260+msgid "Create your SSH key"
1261+msgstr ""
1262+
1263+#: ../ubuntu-packaging-guide/getting-set-up.rst:120
1264+# cbe44e54369c43ccbaf972bb10995704
1265+msgid "SSH_ stands for *Secure Shell*, and it is a protocol that allows you to exchange data in a secure way over a network. It is common to use SSH to access and open a shell on another computer, and to use it to securely transfer files. For our purposes, we will mainly be using SSH to securely upload source packages to Launchpad."
1266+msgstr ""
1267+
1268+#: ../ubuntu-packaging-guide/getting-set-up.rst:126
1269+# 15220156465043d89c0f0a526b3ae31d
1270+msgid "To generate an SSH key, enter::"
1271+msgstr ""
1272+
1273+#: ../ubuntu-packaging-guide/getting-set-up.rst:130
1274+# 4369607909e54d2eb28b701b18832582
1275+msgid "The default file name usually makes sense, so you can just leave it as it is. For security purposes, it is highly recommended that you use a passphrase."
1276+msgstr ""
1277+
1278+#: ../ubuntu-packaging-guide/getting-set-up.rst:135
1279+# 4709c05c499e4a29bd71f5f1aef90b23
1280+msgid "Set up pbuilder"
1281+msgstr ""
1282+
1283+#: ../ubuntu-packaging-guide/getting-set-up.rst:137
1284+# 74362386ed8340f2b5c45b2bdb9a08da
1285+msgid "``pbuilder`` allows you to build packages locally on your machine. It serves a couple of purposes:"
1286+msgstr ""
1287+
1288+#: ../ubuntu-packaging-guide/getting-set-up.rst:140
1289+# 93aa3aaf40b44beb8662c330374e4e50
1290+msgid "The build will be done in a minimal and clean environment. This helps you make sure your builds succeed in a reproducible way, but without modifying your local system"
1291+msgstr ""
1292+
1293+#: ../ubuntu-packaging-guide/getting-set-up.rst:143
1294+# 5169282689aa4be29c874e27633030f0
1295+msgid "There is no need to install all necessary *build dependencies* locally"
1296+msgstr ""
1297+
1298+#: ../ubuntu-packaging-guide/getting-set-up.rst:144
1299+# c97e8554b32d4e71965f1ff6479f13b6
1300+msgid "You can set up multiple instances for various Ubuntu and Debian releases"
1301+msgstr ""
1302+
1303+#: ../ubuntu-packaging-guide/getting-set-up.rst:146
1304+# 6a4d016f67b64cf3bbe9148306cbb3b8
1305+msgid "Setting ``pbuilder`` up is very easy, run::"
1306+msgstr ""
1307+
1308+#: ../ubuntu-packaging-guide/getting-set-up.rst:150
1309+# fa64536c0c324d27983772c20599b26c
1310+msgid "where <release> is for example `natty`, `maverick`, `lucid` or in the case of Debian maybe `sid`. This will take a while as it will download all the necessary packages for a \"minimal installation\". These will be cached though."
1311+msgstr ""
1312+
1313+#: ../ubuntu-packaging-guide/getting-set-up.rst:156
1314+# 5dc23eff94724361a73a59dea44289e7
1315+msgid "Get set up to work with Launchpad"
1316+msgstr ""
1317+
1318+#: ../ubuntu-packaging-guide/getting-set-up.rst:158
1319+# 95fadc8adf9f4a0e91bac3115a3d0cf1
1320+msgid "With a basic local configuration in place, your next step will be to configure your system to work with Launchpad. This section will focus on the following topics:"
1321+msgstr ""
1322+
1323+#: ../ubuntu-packaging-guide/getting-set-up.rst:162
1324+# b79f07693785483782ed6821e0a0b9ef
1325+msgid "What Launchpad is and creating a Launchpad account"
1326+msgstr ""
1327+
1328+#: ../ubuntu-packaging-guide/getting-set-up.rst:163
1329+# e32ac038b50b4d829f13044673ba85bc
1330+msgid "Uploading your GPG and SSH keys to Launchpad"
1331+msgstr ""
1332+
1333+#: ../ubuntu-packaging-guide/getting-set-up.rst:164
1334+# 50d201d98b2747bf9b900ebd2033d4b6
1335+msgid "Configuring Bazaar to work with Launchpad"
1336+msgstr ""
1337+
1338+#: ../ubuntu-packaging-guide/getting-set-up.rst:165
1339+# 2fcbff75feec47c890b29ae9a0accc58
1340+msgid "Configuring Bash to work with Bazaar"
1341+msgstr ""
1342+
1343+#: ../ubuntu-packaging-guide/getting-set-up.rst:169
1344+# 7d3092a6e1a142afa5c22a094e2be344
1345+msgid "About Launchpad"
1346+msgstr ""
1347+
1348+#: ../ubuntu-packaging-guide/getting-set-up.rst:171
1349+# c032fdb17ad44f8a9972c7b1160387dd
1350+msgid "Launchpad is the central piece of infrastructure we use in Ubuntu. It not only stores our packages and our code, but also things like translations, bug reports, and information about the people who work on Ubuntu and their team memberships. You will also use Launchpad to publish your proposed fixes, and get other Ubuntu developers to review and sponsor them."
1351+msgstr ""
1352+
1353+#: ../ubuntu-packaging-guide/getting-set-up.rst:177
1354+# ad9d175d99654dad8e2c830c4beecab0
1355+msgid "You will need to register with Launchpad and provide a minimal amount of information. This will allow you to download and upload code, submit bug reports, and more."
1356+msgstr ""
1357+
1358+#: ../ubuntu-packaging-guide/getting-set-up.rst:181
1359+# 0c25cf1d67e14ebc9621decebd78ef5c
1360+msgid "Besides hosting Ubuntu, Launchpad can host any Free Software project. For more information see the `Launchpad Help wiki <https://help.launchpad.net/>`_."
1361+msgstr ""
1362+
1363+#: ../ubuntu-packaging-guide/getting-set-up.rst:186
1364+# 1060bd4edaa345a9a90d8c2e34628202
1365+msgid "Get a Launchpad account"
1366+msgstr ""
1367+
1368+#: ../ubuntu-packaging-guide/getting-set-up.rst:188
1369+# 308e70601909430d842502f21e1589ad
1370+msgid "If you don't already have a Launchpad account, you can easily `create one`_. If you have a Launchpad account but cannot remember your Launchpad id, you can find this out by going to https://launchpad.net/~ and looking for the part after the `~` in the URL."
1371+msgstr ""
1372+
1373+#: ../ubuntu-packaging-guide/getting-set-up.rst:193
1374+# a0e1270b66884075a0074a83105aded1
1375+msgid "Launchpad's registration process will ask you to choose a display name. It is encouraged for you to use your real name here so that your Ubuntu developer colleagues will be able to get to know you better."
1376+msgstr ""
1377+
1378+#: ../ubuntu-packaging-guide/getting-set-up.rst:197
1379+# 7f4a08d3ce224e59b0d23ba2f4bc4b15
1380+msgid "When you register a new account, Launchpad will send you an email with a link you need to open in your browser in order to verify your email address. If you don't receive it, check in your spam folder."
1381+msgstr ""
1382+
1383+#: ../ubuntu-packaging-guide/getting-set-up.rst:201
1384+# ff7522539ab64385b5e3460fec3e6c7f
1385+msgid "`The new account help page <https://help.launchpad.net/YourAccount/NewAccount>`_ on Launchpad has more information about the process and additional settings you can change."
1386+msgstr ""
1387+
1388+#: ../ubuntu-packaging-guide/getting-set-up.rst:207
1389+# 8a4be4c66e1e4e4bbd19c1d319bb28bc
1390+msgid "Upload your GPG key to Launchpad"
1391+msgstr ""
1392+
1393+#: ../ubuntu-packaging-guide/getting-set-up.rst:209
1394+# 506b5b99e7ac4c87ae989c190b86e41a
1395+msgid "To find about your GPG fingerprint, run::"
1396+msgstr ""
1397+
1398+#: ../ubuntu-packaging-guide/getting-set-up.rst:213
1399+# 472d7ced0c4c4d6da22703585fa46fe7
1400+msgid "and it will print out something like::"
1401+msgstr ""
1402+
1403+#: ../ubuntu-packaging-guide/getting-set-up.rst:221
1404+# 0c821916735d4f45a78d52e91ef3239e
1405+msgid "Head to https://launchpad.net/~/+editpgpkeys and copy the \"Key fingerprint\" into the text box. In the case above this would be ``5C28 0144 FB08 91C0 2CF3 37AC 6F0B F90F 43CD E61D``. Now click on \"Import Key\"."
1406+msgstr ""
1407+
1408+#: ../ubuntu-packaging-guide/getting-set-up.rst:226
1409+# ec669b136a8c42269d9abfeb85d34c09
1410+msgid "Launchpad will use the fingerprint to check the Ubuntu key server for your key and, if successful, send you an encrypted email asking you to confirm the key import. Check your email account and read the email that Launchpad sent you. `If your email client supports OpenPGP encryption, it will prompt you for the password you chose for the key when GPG generated it. Enter the password, then click the link to confirm that the key is yours.`"
1411+msgstr ""
1412+
1413+#: ../ubuntu-packaging-guide/getting-set-up.rst:233
1414+# f08b21d4e43b485194ec184975a04f7f
1415+msgid "Launchpad encrypts the email, using your public key, so that it can be sure that the key is yours. If your email software does not support OpenPGP encryption, copy the encrypted email's contents, type ``gpg`` in your terminal, then paste the email contents into your terminal window."
1416+msgstr ""
1417+
1418+#: ../ubuntu-packaging-guide/getting-set-up.rst:238
1419+# b7455eb7f4da4959b24ef5339b994d19
1420+msgid "Back on the Launchpad website, use the Confirm button and Launchpad will complete the import of your OpenPGP key."
1421+msgstr ""
1422+
1423+#: ../ubuntu-packaging-guide/getting-set-up.rst:241
1424+# 8b0f15062c314bd5bc0578ab0db7233b
1425+msgid "Find more information at https://help.launchpad.net/YourAccount/ImportingYourPGPKey"
1426+msgstr ""
1427+
1428+#: ../ubuntu-packaging-guide/getting-set-up.rst:245
1429+# c7408c90022943d2b2adb9e67b8c079d
1430+msgid "Upload your SSH key to Launchpad"
1431+msgstr ""
1432+
1433+#: ../ubuntu-packaging-guide/getting-set-up.rst:247
1434+# d55a8885d648402ebc1c8bfa9de5b62a
1435+msgid "Open https://launchpad.net/~/+editsshkeys in a web browser, also open ``~/.ssh/id_rsa.pub`` in a text editor. This is the public part of your SSH key, so it is safe to share it with Launchpad. Copy the contents of the file and paste them into the text box on the web page that says \"Add an SSH key\". Now click \"Import Public Key\"."
1436+msgstr ""
1437+
1438+#: ../ubuntu-packaging-guide/getting-set-up.rst:253
1439+# d94df3105f334f17a6b8b4493abb7237
1440+msgid "For more information on this process, visit the `<creating an SSH keypair <https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair>`_ page on Launchpad."
1441+msgstr ""
1442+
1443+#: ../ubuntu-packaging-guide/getting-set-up.rst:259
1444+# 8452a24ce68f4df6ac5e44518ef879ad
1445+msgid "Configure Bazaar"
1446+msgstr ""
1447+
1448+#: ../ubuntu-packaging-guide/getting-set-up.rst:261
1449+# 2200087023b540598f73cba55e6d1e43
1450+msgid "Bazaar is the tool we use to store code changes in a logical way, to exchange proposed changes and merge them, even if development is done concurrently. It is used for the new Ubuntu Distributed Development method of working with Ubuntu packages."
1451+msgstr ""
1452+
1453+#: ../ubuntu-packaging-guide/getting-set-up.rst:266
1454+# 6809b71125db4a1c9a7039c20642d0c5
1455+msgid "To tell Bazaar who you are, simply run::"
1456+msgstr ""
1457+
1458+#: ../ubuntu-packaging-guide/getting-set-up.rst:271
1459+# a7bbc2cbc2104be08887d3f357de5253
1460+msgid "`whoami` will tell Bazaar which name and email address it should use for your commit messages. With `launchpad-login` you set your Launchpad ID. This way code that you publish in Launchpad will be associated with you."
1461+msgstr ""
1462+
1463+#: ../ubuntu-packaging-guide/getting-set-up.rst:275
1464+# b91245d32a2440a583e602e2b0c85ac3
1465+msgid "Note: If you can not remember the ID, go to https://launchpad.net/~ and see where it redirects you. The part after the \"~\" in the URL is your Launchpad ID.)"
1466+msgstr ""
1467+
1468+#: ../ubuntu-packaging-guide/getting-set-up.rst:281
1469+# e267401effd84ebe9fad680ad51c3cd9
1470+msgid "Configure your shell"
1471+msgstr ""
1472+
1473+#: ../ubuntu-packaging-guide/getting-set-up.rst:282
1474+# c497e7fe9aed473fac7283134a606445
1475+msgid "Similar to Bazaar, the Debian/Ubuntu packaging tools need to learn about you as well. Simply open your `~/.bashrc` in a text editor and add something like this to the bottom of it::"
1476+msgstr ""
1477+
1478+#: ../ubuntu-packaging-guide/getting-set-up.rst:289
1479+# f1400dd33613411caa2495b24cb8901b
1480+msgid "Now save the file and either restart your terminal or run::"
1481+msgstr ""
1482+
1483+#: ../ubuntu-packaging-guide/getting-set-up.rst:293
1484+# 71fcef52c0ce4c6a9f9e098c4f35cd1a
1485+msgid "(If you do not use the default shell, which is `bash`, please edit the configuration file for that shell accordingly.)"
1486+msgstr ""
1487+
1488+#: ../ubuntu-packaging-guide/index.rst:7
1489+# 2b2c79c0f4744aa6ac31ab4d14510523
1490+msgid "Ubuntu Packaging Guide"
1491+msgstr ""
1492+
1493+#: ../ubuntu-packaging-guide/index.rst:9
1494+# 2804b34604314864a75fcd88568b92f0
1495+msgid "Ubuntu is not only a free and open source operating system, its platform is also open and developed in a transparent fashion. The source code for every single component can be obtained easily and every single change to the Ubuntu platform can be reviewed."
1496+msgstr ""
1497+
1498+#: ../ubuntu-packaging-guide/index.rst:14
1499+# e4717243c36b4fbaa8a4ab4731b7c6a2
1500+msgid "This means you can actively get involved in improving it and the community of Ubuntu platform developers is always interested in helping peers getting started."
1501+msgstr ""
1502+
1503+#: ../ubuntu-packaging-guide/index.rst:18
1504+# a8931d21f1314e2abf31996f75be3676
1505+msgid "The guide is split up into two sections:"
1506+msgstr ""
1507+
1508+#: ../ubuntu-packaging-guide/index.rst:20
1509+# 4432017dc60141218901d1062a4db48d
1510+msgid "A list of articles based on tasks, things you want to get done."
1511+msgstr ""
1512+
1513+#: ../ubuntu-packaging-guide/index.rst:21
1514+# 0d65327272d34bd094988cd9f7ec6044
1515+msgid "A set of knowledge-base articles that dig deeper into specific bits of our tools and workflows."
1516+msgstr ""
1517+
1518+#: ../ubuntu-packaging-guide/index.rst:24
1519+# e9691f9962684fa2983959309c708dc6
1520+msgid "This guide focuses on the Ubuntu Distributed Development packaging method. This is a new way of packaging which uses Distributed Revision Control branches. It currently has some limitations which mean many teams in Ubuntu use :doc:`traditional packaging<./traditional-packaging>` methods. See the :doc:`UDD Introduction<./udd-intro>` page for an introduction to the differences."
1521+msgstr ""
1522+
1523+#: ../ubuntu-packaging-guide/index.rst:31
1524+# 35611cc67071493d95b0fd914f093f18
1525+msgid "Articles"
1526+msgstr ""
1527+
1528+#: ../ubuntu-packaging-guide/index.rst:46
1529+# 341532acc9554b0d9d4a83f5a043fdf9
1530+msgid "Knowledge Base"
1531+msgstr ""
1532+
1533+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:3
1534+# 795cb22fada7442f821a6d3640677ae7
1535+msgid "Introduction to Ubuntu Development"
1536+msgstr ""
1537+
1538+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:5
1539+# d1e2a2fc83084defb2029936d7af82db
1540+msgid "Ubuntu is made up of thousands of different components, written in many different programming languages. Every component - be it a software library, a tool or a graphical application - is available as a source package. Source packages in most cases consist of two parts: the actual source code and metadata. Metadata includes the dependencies of the package, copyright and licensing information, and instructions on how to build the package. Once this source package is compiled, the build process provides binary packages, which are the .deb files users can install."
1541+msgstr ""
1542+
1543+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:14
1544+# d092727879c148148df7ae3a396ba4c1
1545+msgid "Every time a new version of an application is released, or when someone makes a change to the source code that goes into Ubuntu, the source package must be uploaded to Launchpad's build machines to be compiled. The resulting binary packages then are distributed to the archive and its mirrors in different countries. The URLs in ``/etc/apt/sources.list`` point to an archive or mirror. Every day CD images are built for a selection of different Ubuntu flavours. Ubuntu Desktop, Ubuntu Server, Kubuntu and others specify a list of required packages that get on the CD. These CD images are then used for installation tests and provide the feedback for further release planning."
1546+msgstr ""
1547+
1548+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:24
1549+# 6e37b4d95d8541b7aa3011844140dfd8
1550+msgid "Ubuntu's development is very much dependent on the current stage of the release cycle. We release a new version of Ubuntu every six months, which is only possible because we have established strict freeze dates. With every freeze date that is reached developers are expected to make fewer, less intrusive changes. Feature Freeze is the first big freeze date after the first half of the cycle has passed. At this stage features must be largely implemented. The rest of the cycle is supposed to be focused on fixing bugs. After that the user interface, then the documentation, the kernel, etc. are frozen, then the beta release is put out which receives a lot of testing. From the beta release onwards, only critical bugs get fixed and a release candidate release is made and if it does not contain any serious problems, it becomes the final release."
1551+msgstr ""
1552+
1553+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:39
1554+# 3095f0dc21b845bd9adafbc230310de6
1555+msgid "Thousands of source packages, billions of lines of code, hundreds of contributors require a lot of communication and planning to maintain high standards of quality. At the beginning of each release cycle we have the Ubuntu Developer Summit where developers and contributors come together to plan the features of the next releases. Every feature is discussed by its stakeholders and a specification is written that contains detailed information about its assumptions, implementation, the necessary changes in other places, how to test it and so on. This is all done in an open and transparent fashion, so even if you can not attend the event in person, you can participate remotely and listen to a streamcast, chat with attendants and subscribe to changes of specifications, so you are always up to date."
1556+msgstr ""
1557+
1558+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:51
1559+# c2c9a07df8734bcd84811b0d08005493
1560+msgid "Not every single change can be discussed in a meeting though, particularly because Ubuntu relies on changes that are done in other projects. That is why contributors to Ubuntu constantly stay in touch. Most teams or projects use dedicated mailing lists to avoid too much unrelated noise. For more immediate coordination, developers and contributors use Internet Relay Chat (IRC). All discussions are open and public."
1561+msgstr ""
1562+
1563+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:58
1564+# 89290a1fefbc4e5a87353e069aeb79ac
1565+msgid "Another important tool regarding communication is bug reports. Whenever a defect is found in a package or piece of infrastructure, a bug report is filed in Launchpad. All information is collected in that report and its importance, status and assignee updated when necessary. This makes it an effective tool to stay on top of bugs in a package or project and organise the workload."
1566+msgstr ""
1567+
1568+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:65
1569+# 224c0402acf54540b6e21eb5498d8bf9
1570+msgid "Most of the software available through Ubuntu is not written by Ubuntu developers themselves. Most of it is written by developers of other Open Source projects and then integrated into Ubuntu. These projects are called \"Upstreams\", because their source code flows into Ubuntu, where we \"just\" integrate it. The relationship to Upstreams is critically important to Ubuntu. It is not just code that Ubuntu gets from Upstreams, but it is also that Upstreams get users, bug reports and patches from Ubuntu (and other distributions)."
1571+msgstr ""
1572+
1573+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:74
1574+# 7b06da07d99842fd9738c38140dd2a16
1575+msgid "The most important Upstream for Ubuntu is Debian. Debian is the distribution that Ubuntu is based on and many of the design decisions regarding the packaging infrastructure are made there. Traditionally, Debian has always had dedicated maintainers for every single package or dedicated maintenance teams. In Ubuntu there are teams that have an interest in a subset of packages too, and naturally every developer has a special area of expertise, but participation (and upload rights) generally is open to everyone who demonstrates ability and willingness."
1576+msgstr ""
1577+
1578+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:83
1579+# c04e0435ba0d4bb38160660e3cda4ca0
1580+msgid "Getting a change into Ubuntu as a new contributor is not as daunting as it seems and can be a very rewarding experience. It is not only about learning something new and exciting, but also about sharing the solution and solving a problem for millions of users out there."
1581+msgstr ""
1582+
1583+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:88
1584+# 72ea8fca34b04f5eb28aae4b06eaa638
1585+msgid "Open Source Development happens in a distributed world with different goals and different areas of focus. For example there might be the case that a particular Upstream might be interested in working on a new big feature while Ubuntu, because of the tight release schedule, might be interested in shipping a solid version with just an additional bug fix. That is why we make use of \"Distributed Development\", where code is being worked on in various branches that are merged with each other after code reviews and sufficient discussion."
1586+msgstr ""
1587+
1588+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:98
1589+# 38a1680f15f04e2785f959f32e8b7311
1590+msgid "In the example mentioned above it would make sense to ship Ubuntu with the existing version of the project, add the bugfix, get it into Upstream for their next release and ship that (if suitable) in the next Ubuntu release. It would be the best possible compromise and a situation where everybody wins."
1591+msgstr ""
1592+
1593+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:103
1594+# b1e0446cdaa9426cb9aa082ca826788c
1595+msgid "To fix a bug in Ubuntu, you would first get the source code for the package, then work on the fix, document it so it is easy to understand for other developers and users, then build the package to test it. After you have tested it, you can easily propose the change to be included in the current Ubuntu development release. A developer with upload rights will review it for you and then get it integrated into Ubuntu."
1596+msgstr ""
1597+
1598+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:112
1599+# fa9b32a2c49847f7b576db0fbf94036c
1600+msgid "When trying to find a solution it is usually a good idea to check with Upstream and see if the problem (or a possible solution) is known already and, if not, do your best to make the solution a concerted effort."
1601+msgstr ""
1602+
1603+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:116
1604+# 471fe59800924fc88bb010d19ea956f0
1605+msgid "Additional steps might involve getting the change backported to an older, still supported version of Ubuntu and forwarding it to Upstream."
1606+msgstr ""
1607+
1608+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:119
1609+# f36cfc93f9314451b2f5756d1652f425
1610+msgid "The most important requirements for success in Ubuntu development are: having a knack for \"making things work again,\" not being afraid to read documentation and ask questions, being a team player and enjoying some detective work."
1611+msgstr ""
1612+
1613+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:123
1614+# 7d209126020141168c019c68053e2abd
1615+msgid "Good places to ask your questions are ``ubuntu-motu@lists.ubuntu.com`` and ``#ubuntu-motu`` on ``irc.freenode.net``. You will easily find a lot of new friends and people with the same passion that you have: making the world a better place by making better Open Source software."
1616+msgstr ""
1617+
1618+#: ../ubuntu-packaging-guide/kde.rst:3
1619+# 993a9c1aa71f4aadadde6a86b5ef2ed3
1620+msgid "KDE Packaging"
1621+msgstr ""
1622+
1623+#: ../ubuntu-packaging-guide/kde.rst:5
1624+# f8f58e55f37f4abcaa7264f5fdc83903
1625+msgid "Packaging of KDE programmes in Ubuntu is managed by the Kubuntu and MOTU teams. You can contact the Kubuntu team on the `Kubuntu mailing list`_ and ``#kubuntu-devel`` Freenode IRC channl. More information about Kubuntu development is on the `Kubuntu wiki page`_."
1626+msgstr ""
1627+
1628+#: ../ubuntu-packaging-guide/kde.rst:10
1629+# dc2e9c6e5402441f85737795e60858fc
1630+msgid "Our packaging follows the practices of the ``Debian Qt/KDE Team`` and Debian KDE Extras Team. Most of our packages are derived from the packaging of these Debian teams."
1631+msgstr ""
1632+
1633+#: ../ubuntu-packaging-guide/kde.rst:15
1634+# a38db20adbbe4a7da13b3d8559127a47
1635+msgid "Patching Policy"
1636+msgstr ""
1637+
1638+#: ../ubuntu-packaging-guide/kde.rst:17
1639+# ac62cb4c0e664dd4b78c074e72f87171
1640+msgid "Kubuntu does not add patches to KDE programmes unless they come from the upstream authors or submitted upstream with the expectation they will be merged soon or we have consulted the issue with the upstream authors."
1641+msgstr ""
1642+
1643+#: ../ubuntu-packaging-guide/kde.rst:22
1644+# cb2134c6ba4346458b922470c90a372f
1645+msgid "Kubuntu does not change the branding of packages except where upstream expects this (such as the top left logo of the Kickoff menu) or to simplify (such as removing splash screens)."
1646+msgstr ""
1647+
1648+#: ../ubuntu-packaging-guide/kde.rst:27
1649+# d51900d276b44514b5d0c25d00914f01
1650+msgid "debian/rules"
1651+msgstr ""
1652+
1653+#: ../ubuntu-packaging-guide/kde.rst:29
1654+# 1311b27e75554f01874d2417d4a5b9bf
1655+msgid "Debian packages include some additions to the basic Debhelper usage. These are kept in the ``pkg-kde-tools`` package."
1656+msgstr ""
1657+
1658+#: ../ubuntu-packaging-guide/kde.rst:32
1659+# 4bb8cca6f7f940dc84f4ea1798287277
1660+msgid "Packages which use Debhelper 7 should add the ``--with=kde`` option. This will ensure the correct build flags are used and add options such as handling kdeinit stubs and translations::"
1661+msgstr ""
1662+
1663+#: ../ubuntu-packaging-guide/kde.rst:39
1664+# 4a5e3298265c4fd4a8df97acde2c69f0
1665+msgid "Some newer KDE packages use the ``dhmk`` system, an alternative to ``dh`` made by the Debian Qt/KDE team. You can read about it in /usr/share/pkg-kde-tools/qt-kde-team/2/README. Packages using this will ``include /usr/share/pkg-kde-tools/qt-kde-team/2/debian-qt-kde.mk`` instead of running ``dh``."
1666+msgstr ""
1667+
1668+#: ../ubuntu-packaging-guide/kde.rst:47
1669+# 15bc35a1eefa4bee8ed9330f9a044380
1670+msgid "Translations"
1671+msgstr ""
1672+
1673+#: ../ubuntu-packaging-guide/kde.rst:49
1674+# ffae416394ec437c93e62703e46d4c93
1675+msgid "Packages in main have their translations imported into Launchpad and exported from Launchpad into Ubuntu's language-packs."
1676+msgstr ""
1677+
1678+#: ../ubuntu-packaging-guide/kde.rst:52
1679+# e2265cab7d764b4b83529d3b24129102
1680+msgid "So any KDE package in main must generate translation templates, include or make available upstream translations and handle ``.desktop`` file translations."
1681+msgstr ""
1682+
1683+#: ../ubuntu-packaging-guide/kde.rst:56
1684+# 98fc332176d84794aafa13b935d98523
1685+msgid "To generate translation templates the package must include a ``Messages.sh`` file; complain to the upstream if it does not. You can check it works by running ``extract-messages.sh`` which should produce one or more ``.pot`` files in ``po/``. This will be done automatically during build if you use the ``--with=kde`` option to ``dh``."
1686+msgstr ""
1687+
1688+#: ../ubuntu-packaging-guide/kde.rst:63
1689+# 931ea74ab2164fe8a5a982500456cbb2
1690+msgid "Upstream will usually have also put the translation ``.po`` files into the ``po/`` directory. If they do not, check if they are in separate upstream language packs such as the KDE SC language packs. If they are in separate language packs Launchpad will need to associate these together manually, contact `dpm`_ to do this."
1691+msgstr ""
1692+
1693+#: ../ubuntu-packaging-guide/kde.rst:69
1694+# 52573e8867ac4ed2840f572b9facbcb9
1695+msgid "If a package is moved from universe to main it will need to be reuploaded before the translations get imported into Launchpad."
1696+msgstr ""
1697+
1698+#: ../ubuntu-packaging-guide/kde.rst:72
1699+# 198ae177145b49b285220a56326dd9ce
1700+msgid "``.desktop`` files also need translations. We patch KDELibs to read translations out of ``.po`` files which are pointed to by a line ``X-Ubuntu-Gettext-Domain=`` added to ``.desktop`` files at package build time. A .pot file for each package is be generated at build time and .po files need to be downloaded from upstream and included in the package or in our language packs. The list of .po files to be downloaded from KDE's repositories is in ``/usr/lib/kubuntu-desktop-i18n/desktop-template-list``."
1701+msgstr ""
1702+
1703+#: ../ubuntu-packaging-guide/kde.rst:82
1704+# b49c7bc8627b48a7b4931ebd99bb725d
1705+msgid "Library Symbols"
1706+msgstr ""
1707+
1708+#: ../ubuntu-packaging-guide/kde.rst:84
1709+# a20fa5bcd911465789f7e4c2dfd61207
1710+msgid "Library symbols are tracked in ``.symbols`` files to ensure none go missing for new releases. KDE uses C++ libraries which act a little differently compared to C libraries. Debian's Qt/KDE Team have scripts to handle this. See `Working with symbols files`_ for how to create and keep these files up to date."
1711+msgstr ""
1712+
1713+#: ../ubuntu-packaging-guide/libraries.rst:3
1714+# 1161adad2b574c3dae7242a0e177d3cb
1715+msgid "Shared Libraries"
1716+msgstr ""
1717+
1718+#: ../ubuntu-packaging-guide/libraries.rst:5
1719+# e5417138b06748e7b459aee1467052f7
1720+msgid "Shared libraries are compiled code which is intended to be shared among several different programmes. They are distributed as ``.so`` files in ``/usr/lib/``."
1721+msgstr ""
1722+
1723+#: ../ubuntu-packaging-guide/libraries.rst:9
1724+# 3ea2eb4efb504f41812aad3d3a3630c0
1725+msgid "A library exports symbols which are the compiled versions of functions, classes and variables. A library has a name called an SONAME which includes a version number. This SONAME version does not necessarily match the public release version number. A programme gets compiled against a given SONAME version of the library. If any of the symbols is removed or changes then the version number needs to be changed which forces any packages using that library to be recompiled against the new version. Version numbers are usually set by upstream and we follow them in our binary package names called an ABI number, but sometimes upstreams do not use sensible version numbers and packagers have to keep separate version numbers."
1726+msgstr ""
1727+
1728+#: ../ubuntu-packaging-guide/libraries.rst:21
1729+# 07915fe981c94c4db90837dba30d3cc0
1730+msgid "Libraries are usually distributed by upstream as standalone releases. Sometimes they are distributed as part of a programme. In this case they can be included in the binary package along with the programme (this is called bundling) if you do not expect any other programmes to use the library, more often they should be split out into separate binary packages."
1731+msgstr ""
1732+
1733+#: ../ubuntu-packaging-guide/libraries.rst:27
1734+# 4c5c66ef19a44914bee41dc0539099fa
1735+msgid "The libraries themselves are put into a binary package named ``libfoo1`` where ``foo`` is the name of the library and ``1`` is the version from the SONAME. Development files from the package, such as header files, needed to compile programmes against the library are put into a package called ``libfoo-dev``."
1736+msgstr ""
1737+
1738+#: ../ubuntu-packaging-guide/libraries.rst:34
1739+# 06a1e94fcbba4e9eadba9eb114a9c642
1740+msgid "An Example"
1741+msgstr ""
1742+
1743+#: ../ubuntu-packaging-guide/libraries.rst:36
1744+# a1ec3bc9d692403ab82b43da77562aae
1745+msgid "We will use libnova as an example::"
1746+msgstr ""
1747+
1748+#: ../ubuntu-packaging-guide/libraries.rst:41
1749+# cd3c9fa86411468aaf013cfabc0fdb33
1750+msgid "To find the SONAME of the library run"
1751+msgstr ""
1752+
1753+#: ../ubuntu-packaging-guide/libraries.rst:43
1754+# 0af012c44f39480b8014cfa20b67b08f
1755+msgid "$ readelf -a /usr/lib/libnova-0.12.so.2 | grep SONAME"
1756+msgstr ""
1757+
1758+#: ../ubuntu-packaging-guide/libraries.rst:45
1759+# 379239ed35f840b1b788703c94ef817f
1760+msgid "The SONAME is ``libnova-0.12.so.2``, which matches the file name (usually the case but not always). Here upstream has put the upstream version number as part of the SONAME and given it an ABI version of ``2``. Library package names should follow the SONAME of the library they contain. The library binary package is called ``libnova-0.12-2`` where ``libnova-0.12`` is the name of the library and ``2`` is our ABI number."
1761+msgstr ""
1762+
1763+#: ../ubuntu-packaging-guide/libraries.rst:52
1764+# 122c0516404646858c5e64bbaf93311e
1765+msgid "If upstream makes incompatible changes to their library they will have to reversion their SONAME and we will have to rename our library. Any other packages using our library package will need to recompiled against the new version, this is called a transition and can take some effort. Hopefully our ABI number will continue to match upstream's SONAME but sometimes they introduce incompatibilities without changing their version number and we will need to change ours."
1766+msgstr ""
1767+
1768+#: ../ubuntu-packaging-guide/libraries.rst:60
1769+# 5bb0db11faef4045a6ffa4ff6a360ada
1770+msgid "Looking in debian/libnova-0.12-2.install we see it includes two files::"
1771+msgstr ""
1772+
1773+#: ../ubuntu-packaging-guide/libraries.rst:65
1774+# e694ef09fee449688473a2417d7e4de3
1775+msgid "The last one is the actual library, complete with minor and point version number. The first one is a symlink which points to the actual library. The symlink is what programmes using the library will look for, the running programmes do not care about the minor version number."
1776+msgstr ""
1777+
1778+#: ../ubuntu-packaging-guide/libraries.rst:70
1779+# 4806076bc944430598072095813eaf39
1780+msgid "``libnova-dev.install`` includes all the files needed to compile a programme with this library. Header files, a config binary, the ``.la`` libtool file and ``libnova.so`` which is another symlink pointing at the library, programmes compiling against the library do not care about the major version number (although the binary they compile into will)."
1781+msgstr ""
1782+
1783+#: ../ubuntu-packaging-guide/libraries.rst:76
1784+# 4d4773c47d50413e9e4c9f1163445e3c
1785+msgid "``.la`` libtool files are needed on some non-Linux systems with poor library support but usually cause more problems than they solve on Debian systems. It is a current `Debian goal to remove .la files`_ and we should help with this."
1786+msgstr ""
1787+
1788+#: ../ubuntu-packaging-guide/libraries.rst:82
1789+# 4cffd2fb14c64c8abca846161203f289
1790+msgid "Static Libraries"
1791+msgstr ""
1792+
1793+#: ../ubuntu-packaging-guide/libraries.rst:84
1794+# 6ccaf98902504122aa73d033cac53220
1795+msgid "The -dev package also ships ``usr/lib/libnova.a``. This is a static library, an alternative to the shared library. Any programme compiled against the static library will include the code directory into itself. This gets round worrying about binary compatibility of the library. However it also means that any bugs, including security issues, will not be updated along with the libary until the programme is recompiled. For this reason programmes using static libraries are discouraged."
1796+msgstr ""
1797+
1798+#: ../ubuntu-packaging-guide/libraries.rst:94
1799+# 398bf230fe85495fb24337ec903082d5
1800+msgid "Symbol Files"
1801+msgstr ""
1802+
1803+#: ../ubuntu-packaging-guide/libraries.rst:96
1804+# 870880e5a31c40b2a6c33ca619012e39
1805+msgid "When a package builds against a library the ``shlibs`` mechanism will add a package dependency on that library. This is why most programmes will have ``Depends: ${shlibs:Depends}`` in ``debian/control``. That gets replaced with the library dependencies at build time. However shlibs can only make it depend on the major ABI version number, ``2`` in our libnova example, so if new symbols get added in libnova 2.1 a programme using these symbols could still be installed against libnova ABI 2.0 which would then crash."
1806+msgstr ""
1807+
1808+#: ../ubuntu-packaging-guide/libraries.rst:104
1809+# e6474afb8a8841ea8e5f50f6d3c97cdb
1810+msgid "To make the library dependencies more precise we keep ``.symbols`` files that list all the symbols in a library and the version they appeared in."
1811+msgstr ""
1812+
1813+#: ../ubuntu-packaging-guide/libraries.rst:107
1814+# 959ea7b001924fc0a6686b13140ea5c9
1815+msgid "libnova has no symbols file so we can create one. Start by compiling the package::"
1816+msgstr ""
1817+
1818+#: ../ubuntu-packaging-guide/libraries.rst:112
1819+# e06fccd8d4ab438a95bedf83eea74599
1820+msgid "The ``-nc`` will cause it to finish at the end of the compile without removing the build. Change to the build and run ``dpkg-gensymbols`` for the library package::"
1821+msgstr ""
1822+
1823+#: ../ubuntu-packaging-guide/libraries.rst:119
1824+# 05828480fd53405699d8ad8a89aee466
1825+msgid "This makes a diff file which you can self apply::"
1826+msgstr ""
1827+
1828+#: ../ubuntu-packaging-guide/libraries.rst:123
1829+# 247935b3befb47f78155de9bf6b4a97e
1830+msgid "Which will create a file named similar to ``dpkg-gensymbolsnY_WWI`` that lists all the symbols. It also lists the current package version. We can remove the packaging version from that listed in the symbols file because new symbols are not generally added by new packaging versions::"
1831+msgstr ""
1832+
1833+#: ../ubuntu-packaging-guide/libraries.rst:130
1834+# e6a01960a5b94448a8463cfbac6b2dd4
1835+msgid "Now move the file into its location, commit and do a test build::"
1836+msgstr ""
1837+
1838+#: ../ubuntu-packaging-guide/libraries.rst:138
1839+# f14902b00f9541f3a5065bc0dac139c1
1840+msgid "If it successfully compiles the symbols file is correct. With the next upstream version of libnova you would run dpkg-gensymbols again and it will give a diff to update the symbols file."
1841+msgstr ""
1842+
1843+#: ../ubuntu-packaging-guide/libraries.rst:143
1844+# 98b9e46b70e8436cb84a7901e53db11a
1845+msgid "C++ Library Symbols Files"
1846+msgstr ""
1847+
1848+#: ../ubuntu-packaging-guide/libraries.rst:145
1849+# 77dfecd2e3ca4500a800a0637fef9f7a
1850+msgid "C++ has even more exacting standards of binary compatibility than C. The Debian Qt/KDE Team maintain some scripts to handle this, see their `Working with symbols files`_ page for how to use them."
1851+msgstr ""
1852+
1853+#: ../ubuntu-packaging-guide/libraries.rst:150
1854+# b21519bcb125410b9494569ca65edef2
1855+msgid "Further Reading"
1856+msgstr ""
1857+
1858+#: ../ubuntu-packaging-guide/libraries.rst:152
1859+# cacbb05f8e934e378c081170f0d24d74
1860+msgid "Junichi Uekawa's `Debian Library Packaging Guide`_ goes into this topic in more detail."
1861+msgstr ""
1862+
1863+#: ../ubuntu-packaging-guide/packaging-new-software.rst:3
1864+# 9d2486bdfc7e487e9b8af112c9316924
1865+msgid "Packaging New Software"
1866+msgstr ""
1867+
1868+#: ../ubuntu-packaging-guide/packaging-new-software.rst:5
1869+# 59fba311ff094ebcb043d86060dd02b4
1870+msgid "While there are thousands of packages in the Ubuntu archive, there are still a lot nobody has gotten to yet. If there is an exciting new piece of software that you feel needs wider exposure, maybe you want to try your hand at creating a package for Ubuntu or a PPA. This guide will take you through the steps of packaging new software."
1871+msgstr ""
1872+
1873+#: ../ubuntu-packaging-guide/packaging-new-software.rst:12
1874+# 0aa343b58400430ea898e6d0bfd9de8d
1875+msgid "Checking the Programme"
1876+msgstr ""
1877+
1878+#: ../ubuntu-packaging-guide/packaging-new-software.rst:14
1879+# 4c0b9a06c0504ea38a1e32b0ae28ffd4
1880+msgid "The first stage in packaging is to get the released tar from upstream (we call the authors of applications \"upstream\") and check that it compiles and runs."
1881+msgstr ""
1882+
1883+#: ../ubuntu-packaging-guide/packaging-new-software.rst:17
1884+# 6c13fecc7fee401fbbdf0ec8ab90982f
1885+msgid "This guide will take you through packaging a simple application called KQRCode which has been `posted on KDE-apps.org`_. Download `version 0.4 from Sourceforge`_ and put it in a new directory."
1886+msgstr ""
1887+
1888+#: ../ubuntu-packaging-guide/packaging-new-software.rst:21
1889+# 400f126b6d35496698950fa9a7b804a4
1890+msgid "Now uncompress it::"
1891+msgstr ""
1892+
1893+#: ../ubuntu-packaging-guide/packaging-new-software.rst:26
1894+# 92f40d14bcdc4f5cafad97c347d58e0c
1895+msgid "This application uses the CMake build system so we want to run cmake to prepare for compilation::"
1896+msgstr ""
1897+
1898+#: ../ubuntu-packaging-guide/packaging-new-software.rst:33
1899+# 08f8ef0e76a44a4f88c2a4d60ab6bb1f
1900+msgid "CMake will check for the required dependencies, in this case it tells us we need Qt and KDE libraries. We also need GCC, packagers can install ``build-essential`` which brings this in and is assumed to be installed for all packages. If you do not have the development files for these libraries installed it will fail, you can install them and run CMake again::"
1901+msgstr ""
1902+
1903+#: ../ubuntu-packaging-guide/packaging-new-software.rst:42
1904+# c788bb971799420e940f9317d82e574a
1905+msgid "Now you can compile the source::"
1906+msgstr ""
1907+
1908+#: ../ubuntu-packaging-guide/packaging-new-software.rst:46
1909+# 9f9b99040e684a8ca7b157fa2539133b
1910+msgid "Running this gives some errors about missing headers. This means there are other libraries missing which were not checked by CMake. Make a note to inform upstream of this problem. `packages.ubuntu.com`_ can be used to find which packages these headers come from, install these packages and continue the compile::"
1911+msgstr ""
1912+
1913+#: ../ubuntu-packaging-guide/packaging-new-software.rst:55
1914+# d78b9316c1ee4c77852e7d26ec46b8c5
1915+msgid "If the compile completes successfully you can install and run the programme::"
1916+msgstr ""
1917+
1918+#: ../ubuntu-packaging-guide/packaging-new-software.rst:61
1919+# ac725bc6291b415c8b6b6de3d9290eed
1920+msgid "Starting a Package"
1921+msgstr ""
1922+
1923+#: ../ubuntu-packaging-guide/packaging-new-software.rst:63
1924+# aedb86fe4f8241a8843892eb97599ff0
1925+msgid "``bzr-builddeb`` includes a plugin to create a new package from a template, the plugin is a wrapper around the ``dh_make`` command::"
1926+msgstr ""
1927+
1928+#: ../ubuntu-packaging-guide/packaging-new-software.rst:69
1929+# 187e6290a2f94d9ebff13d1b65a2fa99
1930+msgid "When it asks what type of package type ``s`` for single binary."
1931+msgstr ""
1932+
1933+#: ../ubuntu-packaging-guide/packaging-new-software.rst:71
1934+# 03268a6b1a54434abb8de4bccd4391f6
1935+msgid "This will import the code into a branch and add the ``debian/`` packaging directory. Have a look at the contents. Most of the files it adds are only needed for specialist packages (such as Emacs modules) so you can start by removing the optional example files::"
1936+msgstr ""
1937+
1938+#: ../ubuntu-packaging-guide/packaging-new-software.rst:79
1939+# 48e36e15ca254116907f8a77750fdd09
1940+msgid "You should now customise each of the files."
1941+msgstr ""
1942+
1943+#: ../ubuntu-packaging-guide/packaging-new-software.rst:81
1944+# f9ab5fc134fb4cee8e32e556a07fe586
1945+msgid "In ``debian/changelog`` change the version number to an Ubuntu version: ``0.4-0ubuntu1`` (upstream version 0.4, Debian version 0, Ubuntu version 1). Also change ``unstable`` to the current development Ubuntu release such as ``oneiric``."
1946+msgstr ""
1947+
1948+#: ../ubuntu-packaging-guide/packaging-new-software.rst:86
1949+# 68fb6f78c08c49c7aacf1a866b5c1480
1950+msgid "Much of the package building work is done by a series of scripts called ``debhelper``. The exact behaviour of ``debhelper`` changes with new major versions, the compat file instructs ``debhelper`` which version to act as. You will generally want to set this to the most recent version which is ``8``."
1951+msgstr ""
1952+
1953+#: ../ubuntu-packaging-guide/packaging-new-software.rst:92
1954+# bf0f078ee9fe47c7a49fcc96065db39d
1955+msgid "``control`` contains all the metadata of the package. The first paragraph describes the source package. The second and and following paragraphs describe the binary packages to be built. We will need to add the packages needed to compile the application to ``Build-Depends:`` so set that to::"
1956+msgstr ""
1957+
1958+#: ../ubuntu-packaging-guide/packaging-new-software.rst:100
1959+# 6b883941eafb476589f23774b2b01bfc
1960+msgid "You will also need to fill in a description of the programme in the ``Description:`` field."
1961+msgstr ""
1962+
1963+#: ../ubuntu-packaging-guide/packaging-new-software.rst:103
1964+# 208710fb26b4452184d399e77c4cb867
1965+msgid "``copyright`` needs to be filled in to follow the licence of the upstream source. According to the kqrcode/COPYING file this is GNU GPL 3 or later."
1966+msgstr ""
1967+
1968+#: ../ubuntu-packaging-guide/packaging-new-software.rst:106
1969+# 0012e8d84be04d68b3038b628e5ccbc2
1970+msgid "``docs`` contains any upstream documentation files you think should be included in the final package."
1971+msgstr ""
1972+
1973+#: ../ubuntu-packaging-guide/packaging-new-software.rst:109
1974+# 756545d85bcc40c1a333e2b35f275b7b
1975+msgid "``README.source`` and ``README.Debian`` are only needed if your package has any non-standard features, we don't so you can delete them."
1976+msgstr ""
1977+
1978+#: ../ubuntu-packaging-guide/packaging-new-software.rst:112
1979+# 312f3c37d8b14073a30458410e26a220
1980+msgid "``source/format`` can be left as is, this describes the version format of the source package and should be ``3.0 (quilt)``."
1981+msgstr ""
1982+
1983+#: ../ubuntu-packaging-guide/packaging-new-software.rst:115
1984+# 7a915cabe45d47e996bb9a6b61cabc91
1985+msgid "``rules`` is the most complex file. This is a Makefile which compiles the code and turns it into a binary package. Fortunately most of the work is automatically done these days by ``debhelper 7`` so the universal ``%`` Makefile target just runs the ``dh`` script which will run everything needed."
1986+msgstr ""
1987+
1988+#: ../ubuntu-packaging-guide/packaging-new-software.rst:120
1989+# a8fb1e2bc95642288d7a16a784fc733c
1990+msgid "Finally commit the code to your packaging branch::"
1991+msgstr ""
1992+
1993+#: ../ubuntu-packaging-guide/packaging-new-software.rst:125
1994+#: ../ubuntu-packaging-guide/udd-working.rst:69
1995+# d2c0b4d8d90b48b19f2c373ed55eab75
1996+# ecfe8d82e2114f7fb824b8b17e491ce6
1997+msgid "Building the package"
1998+msgstr ""
1999+
2000+#: ../ubuntu-packaging-guide/packaging-new-software.rst:127
2001+# 0d02d6cbb00c4afd912ded7a8cbd2ae1
2002+msgid "Now we need to check that our packaging successfully compiles the package and builds the .deb binary package::"
2003+msgstr ""
2004+
2005+#: ../ubuntu-packaging-guide/packaging-new-software.rst:132
2006+# 37b8625fff6b4efcba2587de14621e20
2007+msgid "``debuild`` is a command to build the package in its current location. The ``-us -uc`` tell it there is not need to GPG sign the compile. The result will be placed in ``..``."
2008+msgstr ""
2009+
2010+#: ../ubuntu-packaging-guide/packaging-new-software.rst:136
2011+# d4b4cf3877124f738e8501904b60a80c
2012+msgid "You can view the contents of the package with::"
2013+msgstr ""
2014+
2015+#: ../ubuntu-packaging-guide/packaging-new-software.rst:140
2016+# 6fc445d27f0149098cf9e27f81b0bfaa
2017+msgid "Install the package and check it works::"
2018+msgstr ""
2019+
2020+#: ../ubuntu-packaging-guide/packaging-new-software.rst:145
2021+# 0b7a2d16133847e9aacff428d788ceaa
2022+msgid "Next Steps"
2023+msgstr ""
2024+
2025+#: ../ubuntu-packaging-guide/packaging-new-software.rst:147
2026+# b5d75f5868754b4596d239d6f5556d92
2027+msgid "Even if it builds the .deb binary package, your packaging may have bugs. Many errors can be automatically detected by our tool ``lintian`` which can be run on both the source .dsc metadata file and the .deb binary package::"
2028+msgstr ""
2029+
2030+#: ../ubuntu-packaging-guide/packaging-new-software.rst:155
2031+# 662bd4ddf12449c49cab0687ed1bfed7
2032+msgid "A description of each of the problems it reports can be found on the `lintian website`_."
2033+msgstr ""
2034+
2035+#: ../ubuntu-packaging-guide/packaging-new-software.rst:158
2036+# f20bba2b62e14567b1fbb57eb23214b4
2037+msgid "After making a fix to the packaging you can rebuild using ``-nc`` \"no clean\" without having to build from scratch::"
2038+msgstr ""
2039+
2040+#: ../ubuntu-packaging-guide/packaging-new-software.rst:163
2041+# 1a81beef68d64e798a6d81cccb660f4e
2042+msgid "Having checked that the package builds locally you should ensure it builds on a clean system using ``pbuilder``::"
2043+msgstr ""
2044+
2045+#: ../ubuntu-packaging-guide/packaging-new-software.rst:170
2046+# 17ae18ca6a564c998abd447254e188f7
2047+msgid "When you are happy with your package you will want others to review it. You can upload the branch to Launchpad for review::"
2048+msgstr ""
2049+
2050+#: ../ubuntu-packaging-guide/packaging-new-software.rst:175
2051+# 17392b1fff004e2493366c5fcadcb1c0
2052+msgid "Uploading it to a PPA (Personal Package Archive) will ensure it builds and give an easy way for you and others to test the binary packages. You will need to set up a PPA in Launchad then upload with ``dput``::"
2053+msgstr ""
2054+
2055+#: ../ubuntu-packaging-guide/packaging-new-software.rst:181
2056+# c8c0618209c2424d9beac381d3b024f6
2057+msgid "See :doc:`uploading<./udd-uploading>` for more information."
2058+msgstr ""
2059+
2060+#: ../ubuntu-packaging-guide/packaging-new-software.rst:183
2061+# 8ab83f0bc099482593d87bec8daf50ce
2062+msgid "You can ask for reviews in ``#ubuntu-motu`` IRC channel, or on the `MOTU mailing list`_. There might also be a more specific team you could ask such as the Kubuntu team for KDE packages."
2063+msgstr ""
2064+
2065+#: ../ubuntu-packaging-guide/packaging-new-software.rst:188
2066+# 9529cb8f705547dc95d7d25c82e857f7
2067+msgid "Submitting for inclusion"
2068+msgstr ""
2069+
2070+#: ../ubuntu-packaging-guide/packaging-new-software.rst:190
2071+# 87fc979533c04e45992453914d17a982
2072+msgid "There are a number of paths that a package can take to enter Ubuntu. In most cases, going through Debian first can be the best path. This way ensures that your package will reach the largest number of users as it will be available in not just Debian and Ubuntu but all of their derivatives as well. Here are some useful links for submitting new packages to Debian:"
2073+msgstr ""
2074+
2075+#: ../ubuntu-packaging-guide/packaging-new-software.rst:197
2076+# 03d85c092776496ab0969fd84fd973c7
2077+msgid "`Debian Mentors FAQ`_ - debian-mentors is for the mentoring of new and prospective Debian Developers. It is where you can find a sponsor to upload your package to the archive."
2078+msgstr ""
2079+
2080+#: ../ubuntu-packaging-guide/packaging-new-software.rst:201
2081+# be95ee15b6f840a8be29c9a24eee784c
2082+msgid "`Work-Needing and Prospective Packages`_ - Information on how to file \"Intent to Package\" and \"Request for Package\" bugs as well as list of open ITPs and RFPs."
2083+msgstr ""
2084+
2085+#: ../ubuntu-packaging-guide/packaging-new-software.rst:205
2086+# 7bfbf158bcc445d6afbdc51a8bbce4e0
2087+msgid "`Debian Developer's Reference, 5.1. New packages`_ - The entire document is invaluable for both Ubuntu and Debian packagers. This section documents processes for sumbitting new packages."
2088+msgstr ""
2089+
2090+#: ../ubuntu-packaging-guide/packaging-new-software.rst:209
2091+# 04f7ce3e6a144369bd5a0de44748fc8f
2092+msgid "In some cases, it might make sense to go directly into Ubuntu first. For instance, Debian might be in a freeze making it unlikely that you're package will make it into Ubuntu in time for the next release. This process is documented on the `\"New Packages\" section of the Ubuntu wiki`_."
2093+msgstr ""
2094+
2095+#: ../ubuntu-packaging-guide/patches-to-packages.rst:3
2096+# 2241baf03ca34a08b7d7e3fdda30ced7
2097+msgid "Patches to Packages"
2098+msgstr ""
2099+
2100+#: ../ubuntu-packaging-guide/patches-to-packages.rst:5
2101+# 5c3751ca50de4e1387fa501b03bf1eb5
2102+msgid "Sometimes, Ubuntu package maintainers have to change the upstream source code in order to make it work properly on Ubuntu. Examples include, patches to upstream that haven't yet made it into a released version, or changes to the upstream's build system needed only for building it on Ubuntu. We could change the upstream source code directly, but doing this makes it more difficult to remove the patches later when upstream has incorporated them, or extract the change to submit to the upstream project. Instead, we keep these changes as separate patches, in the form of diff files."
2103+msgstr ""
2104+
2105+#: ../ubuntu-packaging-guide/patches-to-packages.rst:14
2106+# 1a8dc2ea6df045c791f0924de1eba7a3
2107+msgid "There are a number of different ways of handling patches in Debian packages, fortunately we are standardising on one system, `Quilt`_, which is now used by most packages."
2108+msgstr ""
2109+
2110+#: ../ubuntu-packaging-guide/patches-to-packages.rst:18
2111+# 36be977d3c7b4b27ac83f787d1c20ba6
2112+msgid "Let's look at an example package, ``kamoso`` in Natty::"
2113+msgstr ""
2114+
2115+#: ../ubuntu-packaging-guide/patches-to-packages.rst:22
2116+# 5529f33d3d0b478fac7ea68ab8405610
2117+msgid "The patches are kept in ``debian/patches``. This package has one patch ``kubuntu_01_fix_qmax_on_armel.diff`` to fix a compile failure on ARM. The patch has been given a name to describe what it does, a number to keep the patches in order (two patches can overlap if they change the same file) and in this case the Kubuntu team adds their own prefix to show the patch comes from them rather than from Debian."
2118+msgstr ""
2119+
2120+#: ../ubuntu-packaging-guide/patches-to-packages.rst:29
2121+# e635b7e963bb4caeac48400b23c7811f
2122+msgid "The order of patches to apply is kept in ``debian/patches/series``."
2123+msgstr ""
2124+
2125+#: ../ubuntu-packaging-guide/patches-to-packages.rst:32
2126+# b694697d5a60411bb2c7dc37ed4675f0
2127+msgid "Patches with Quilt"
2128+msgstr ""
2129+
2130+#: ../ubuntu-packaging-guide/patches-to-packages.rst:34
2131+# 6bb7b69eac2346bf980295dbddc298c4
2132+msgid "Before working with Quilt you need to tell it where to find the patches. Add this to your ``~/.bashrc``::"
2133+msgstr ""
2134+
2135+#: ../ubuntu-packaging-guide/patches-to-packages.rst:39
2136+# cbac6263b89f4e62bcfae1a183202ab1
2137+msgid "And source the file to apply the new export::"
2138+msgstr ""
2139+
2140+#: ../ubuntu-packaging-guide/patches-to-packages.rst:43
2141+# 90e75b21038b415cb7124b81a3119dd0
2142+msgid "By default all patches are applied already to UDD checkouts or downloaded packages. You can check this with::"
2143+msgstr ""
2144+
2145+#: ../ubuntu-packaging-guide/patches-to-packages.rst:49
2146+# d4faacee0f964e4a9beebcae8a1def6f
2147+msgid "If you wanted to remove the patch you would run ``pop``::"
2148+msgstr ""
2149+
2150+#: ../ubuntu-packaging-guide/patches-to-packages.rst:57
2151+# 7d2578ea2fb3424ba9f76dfb56642311
2152+msgid "And to apply a patch you use ``push``::"
2153+msgstr ""
2154+
2155+#: ../ubuntu-packaging-guide/patches-to-packages.rst:67
2156+# 3920a9d86b834234be836b63f21ab810
2157+msgid "Adding a New Patch"
2158+msgstr ""
2159+
2160+#: ../ubuntu-packaging-guide/patches-to-packages.rst:69
2161+# fb390d3c3be349cdb600350811c9671d
2162+msgid "To add a new patch you need to tell Quilt to create a new patch, tell it which files that patch should change, edit the files then refresh the patch::"
2163+msgstr ""
2164+
2165+#: ../ubuntu-packaging-guide/patches-to-packages.rst:81
2166+# 9041df0abe5140678fe386d7d4b9b92c
2167+msgid "The ``quilt add`` step is important, if you forget it the files will not end up in the patch."
2168+msgstr ""
2169+
2170+#: ../ubuntu-packaging-guide/patches-to-packages.rst:84
2171+# 9e80030f1eb6438a9bc24959f9cfac5d
2172+msgid "The change will now be in ``debian/patches/kubuntu_02_programme_description.diff`` and the ``series`` file will have had the new patch added to it. You should add the new file to the packaging::"
2173+msgstr ""
2174+
2175+#: ../ubuntu-packaging-guide/patches-to-packages.rst:94
2176+# 6f36a309febe4b4b83ff777007dc4901
2177+msgid "Quilt keeps its metadata in the ``.pc/`` directory, so currently you need to add that to the packaging too. This should be improved in future."
2178+msgstr ""
2179+
2180+#: ../ubuntu-packaging-guide/patches-to-packages.rst:97
2181+# c25ed33cbb694bb5ab2fd2719f11adef
2182+msgid "As a general rule you should be careful adding patches to programmes unless they come from upstream, there is often a good reason why that change has not already been made. The above example changes a user interface string for example, so it would break all translations. If in doubt, do ask the upstream author before adding a patch."
2183+msgstr ""
2184+
2185+#: ../ubuntu-packaging-guide/patches-to-packages.rst:104
2186+# a9bcd232fe19471a8dd3bc40ac48ec2a
2187+msgid "Upgrading to New Upstream Versions"
2188+msgstr ""
2189+
2190+#: ../ubuntu-packaging-guide/patches-to-packages.rst:106
2191+# df088161eeb042c1a7a74ac49eaa923b
2192+msgid "When you upgrade to a new upstream version, patches will often become out of date. They might need to be refreshed to match the new upstream source or they might need to be removed altogether."
2193+msgstr ""
2194+
2195+#: ../ubuntu-packaging-guide/patches-to-packages.rst:110
2196+# 870e3c1c96724cc1a4f9ca814cddf71b
2197+msgid "You should start by ensuring no patches are applied. Unfortunately a commit is needed before you can merge in the new upstream (this is `bug 815854`_::"
2198+msgstr ""
2199+
2200+#: ../ubuntu-packaging-guide/patches-to-packages.rst:116
2201+# 01d84a0499414f2a8f7e73acf0c14f58
2202+msgid "Then upgrade to the new version"
2203+msgstr ""
2204+
2205+#: ../ubuntu-packaging-guide/patches-to-packages.rst:118
2206+# 060a7d5c6b1e42a2bdfe566bd96e126d
2207+msgid "$ bzr merge-upstream --version 2.0.2 https://launchpad.net/ubuntu/+archive/primary/+files/kamoso_2.0.2.orig.tar.bz2"
2208+msgstr ""
2209+
2210+#: ../ubuntu-packaging-guide/patches-to-packages.rst:120
2211+# 61de3ecb174b44daa1ef323e29f1b9da
2212+msgid "Then apply the patches one at a time to check for problems::"
2213+msgstr ""
2214+
2215+#: ../ubuntu-packaging-guide/patches-to-packages.rst:129
2216+# 5d35e1273bbd4487a49ec82a1dd0607b
2217+msgid "If it can be reverse-applied this means the patch has been applied already by upstream, so we can delete the patch::"
2218+msgstr ""
2219+
2220+#: ../ubuntu-packaging-guide/patches-to-packages.rst:135
2221+# b0bfdc2a871f47538cdc0d72eaab11d4
2222+msgid "Then carry on::"
2223+msgstr ""
2224+
2225+#: ../ubuntu-packaging-guide/patches-to-packages.rst:140
2226+# eb92e1c67e134b738c41bec49059cc7c
2227+msgid "It is a good idea to run refresh, this will update the patch relative to the changed upstream source::"
2228+msgstr ""
2229+
2230+#: ../ubuntu-packaging-guide/patches-to-packages.rst:146
2231+# 8ad4cf528b9d4543b6a610c13ffdd227
2232+msgid "Then commit as usual::"
2233+msgstr ""
2234+
2235+#: ../ubuntu-packaging-guide/patches-to-packages.rst:152
2236+# 6f2cbc44cb544b2ebdfe54bda2edb7fc
2237+msgid "Making A Package Use Quilt"
2238+msgstr ""
2239+
2240+#: ../ubuntu-packaging-guide/patches-to-packages.rst:154
2241+# 6ca7a58987bb496face3eacc1bfb6f78
2242+msgid "Modern packages use Quilt by default, it is built into the packaging format. Check in ``debian/source/format`` to ensure it says ``3.0 (quilt)``."
2243+msgstr ""
2244+
2245+#: ../ubuntu-packaging-guide/patches-to-packages.rst:158
2246+# e49e867c8e604b53a561bf92af15f40e
2247+msgid "Older packages using source format 1.0 will need to explicitly use Quilt, usually by including a makefile into ``debian/rules``."
2248+msgstr ""
2249+
2250+#: ../ubuntu-packaging-guide/patches-to-packages.rst:163
2251+# d91974b6f93a4ebc83b3ebdff6a5d578
2252+msgid "Other Patch Systems"
2253+msgstr ""
2254+
2255+#: ../ubuntu-packaging-guide/patches-to-packages.rst:165
2256+# 95e9287c4e5b4d8eb3aebe3f6f3342e3
2257+msgid "Other patch systems used by packages include ``dpatch`` and ``cdbs simple-patchsys``, these work similarly to Quilt by keeping patches in debian/patches but have different commands to apply, unapply or create patches. You can use ``edit-patch``, shown in previous chapters, as a reliable way to work with all systems."
2258+msgstr ""
2259+
2260+#: ../ubuntu-packaging-guide/patches-to-packages.rst:171
2261+# f38c643c88ec478f8dffd3c0b3b6107b
2262+msgid "Even older packages will include changes directly to sources and kept in the ``diff.gz`` source file. This makes it hard to upgrade to new upstream versions or differentiate between patches and is best avoided."
2263+msgstr ""
2264+
2265+#: ../ubuntu-packaging-guide/patches-to-packages.rst:175
2266+# 9520c1dcd3714fcbb7cd1a4123db0488
2267+msgid "Bazaar Loom is a way to keep patches as part of bzr trees, see :doc:`Working with Patches via Loom<./udd-patchsys>` for more information."
2268+msgstr ""
2269+
2270+#: ../ubuntu-packaging-guide/patches-to-packages.rst:178
2271+# 44bb230bde8243e88d02160fafeb25e1
2272+msgid "Do not change a package's patch system without discussing it with the Debian maintainer or relevant Ubuntu team. If there is no existing patch system then feel free to add Quilt."
2273+msgstr ""
2274+
2275+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:3
2276+# fcaa66fc4d6e4c70a68f6edce85a973f
2277+msgid "Security and Stable Release Updates"
2278+msgstr ""
2279+
2280+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:6
2281+# 44937136520b417ab88d6f9dca66a583
2282+msgid "Fixing a Security Bug in Ubuntu"
2283+msgstr ""
2284+
2285+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:11
2286+# 6ea8baeb570c49fe81e30b93b0106a86
2287+msgid "Fixing security bugs in Ubuntu is not really any different than :doc:`fixing a regular bug in Ubuntu<./fixing-a-bug>`, and it is assumed that you are familiar with patching normal bugs. To demonstrate where things are different, we will be updating the dbus package in Ubuntu 10.04 LTS (Lucid Lynx) for a security update."
2288+msgstr ""
2289+
2290+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:19
2291+# b2012d850e594307ab0fc8ff75da7070
2292+msgid "Obtaining the source"
2293+msgstr ""
2294+
2295+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:21
2296+# 50cca424f3334607971cf3b684408134
2297+msgid "In this example, we already know we want to fix the dbus package in Ubuntu 10.04 LTS (Lucid Lynx). So first you need to determine the version of the package you want to download. We can use the ``rmadison`` to help with this::"
2298+msgstr ""
2299+
2300+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:30
2301+# 160e2724f58a49d29b12dc794073fce9
2302+msgid "Typically you will want to choose the highest version for the release you want to patch that is not in -proposed or -backports. Since we are updating Lucid's dbus, you'll download 1.2.16-2ubuntu4.2 from lucid-updates::"
2303+msgstr ""
2304+
2305+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:38
2306+# f1c7e672c4d04f32bf8fd5455422f789
2307+msgid "Patching the source"
2308+msgstr ""
2309+
2310+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:39
2311+# 69bcfabad54d4339bef655df9d2b1001
2312+msgid "Now that we have the source package, we need to patch it to fix the vulnerability. You may use whatever patch method that is appropriate for the package, including :doc:`UDD techniques<./udd-intro>`, but this example will use ``edit-patch`` (from the ubuntu-dev-tools package). ``edit-patch`` is the easiest way to patch packages and it is basically a wrapper around every other patch system you can imagine."
2313+msgstr ""
2314+
2315+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:46
2316+# e3377b23d7a547cdaabdf4606ad86234
2317+msgid "To create your patch using ``edit-patch``::"
2318+msgstr ""
2319+
2320+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:51
2321+# ea53b2134aae47fb9c41c935c1c14647
2322+msgid "This will apply the existing patches and put the packaging in a temporary directory. Now edit the files needed to fix the vulnerability. Often upstream will have provided a patch so you can apply that patch::"
2323+msgstr ""
2324+
2325+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:57
2326+# c8f4bfe3fbd94f54b2efdee70bd8ecdd
2327+msgid "Aftering making the necessary changes, you just hit Ctrl-D or type exit to leave the temporary shell."
2328+msgstr ""
2329+
2330+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:61
2331+# 3ab2cb5e96cf425c8bb62d682dfb5bef
2332+msgid "Formatting the changelog and patches"
2333+msgstr ""
2334+
2335+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:63
2336+# 32cf2e90495e499a88a886c1bbecc26e
2337+msgid "After applying your patches you will want to update the changelog. The ``dch`` command is used to edit the ``debian/changelog`` file and ``edit-patch`` will launch ``dch`` automatically after unapplying all the patches. If you are not using ``edit-patch``, you can launch ``dch -i`` manually. Unlike with regular patches, you should use the following format (note the distribution name uses lucid-security since this is a security update for Lucid) for security updates::"
2338+msgstr ""
2339+
2340+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:80
2341+# ed919cc67ea9442dac459f1cc3d64aeb
2342+msgid "Update your patch to use the appropriate patch tags. Your patch should have at a minimum the Origin, Description and Bug-Ubuntu tags. For example, edit debian/patches/99-fix-a-vulnerability.patch to have something like::"
2343+msgstr ""
2344+
2345+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:91
2346+# 8e0fc3aa272a4b3baf5f4d3c43643d02
2347+msgid "Multiple vulnerabilities can be fixed in the same security upload; just be sure to use different patches for different vulnerabilities."
2348+msgstr ""
2349+
2350+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:95
2351+# 814ea189399a4700901458d9e274c17a
2352+msgid "Test and Submit your work"
2353+msgstr ""
2354+
2355+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:97
2356+# f8623540f61643408dee80d6a8d176ab
2357+msgid "At this point the process is the same as for :doc:`fixing a regular bug in Ubuntu<./fixing-a-bug>`. Specifically, you will want to:"
2358+msgstr ""
2359+
2360+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:100
2361+# a594d5cc105044b79b691029f7176bb4
2362+msgid "Build your package and verify that it compiles without error and without any added compiler warnings"
2363+msgstr ""
2364+
2365+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:102
2366+# 8a246f8802e2464693909bfa93b85323
2367+msgid "Upgrade to the new version of the package from the previous version"
2368+msgstr ""
2369+
2370+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:103
2371+# 98467e4df61c444a90c17dada9ab0428
2372+msgid "Test that the new package fixes the vulnerability and does not introduce any regressions"
2373+msgstr ""
2374+
2375+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:105
2376+# fd79f702d89e41cd8a66e6c26cfd3cf9
2377+msgid "Submit your work via a Launchpad merge proposal and file a Launchpad bug being sure to mark the bug as a security bug and to subscribe ``ubuntu-security-sponsors``"
2378+msgstr ""
2379+
2380+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:109
2381+# 3aee8769d59e4288b13ee8d4f9279cd4
2382+msgid "If the security vulnerability is not yet public then do not file a merge proposal and ensure you mark the bug as private."
2383+msgstr ""
2384+
2385+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:112
2386+# 4454e4ec4d504a989350286c1dc011a3
2387+msgid "The filed bug should include a Test Case, i.e. a comment which clearly shows how to recreate the bug by running the old version then how to ensure the bug no longer exists in the new version."
2388+msgstr ""
2389+
2390+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:116
2391+# 0ed66335fe214b25b3a214779fa79b47
2392+msgid "The bug report should also confirm that the issue is fixed in Ubuntu versions newer than the one with the proposed fix (in the above example newer than Lucid). If the issue is not fixed in newer Ubuntu versions you should prepare updates for those versions too."
2393+msgstr ""
2394+
2395+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:123
2396+# 9d58c76584ab422aad579dc066f350e9
2397+msgid "Stable Release Updates"
2398+msgstr ""
2399+
2400+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:125
2401+# b8c8cef56aa84c5683332a6a4ca34e9d
2402+msgid "We also allow updates to releases where a package has a high impact bug such as a severe regression from a previous release or a bug which could cause data loss. Due to the potential for such updates to themselves introduce bugs we only allow this where the change can be easily understood and verified."
2403+msgstr ""
2404+
2405+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:130
2406+# 17790d066b284657a6f8573eb0a33a12
2407+msgid "The process for Stable Release Updates is just the same as the proccess for security bugs except you should subscribe ``ubuntu-sru`` to the bug."
2408+msgstr ""
2409+
2410+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:133
2411+# 81a7322879ab43249b9d1cd8a24b8616
2412+msgid "The update will go into the ``proposed`` archive (for example ``lucid-proposed``) where it will need to be checked that it fixes the problem and does not introduce new problems. After a week without reported problems it can be moved to ``updates``."
2413+msgstr ""
2414+
2415+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:138
2416+# f654430d35904327bb2a7b6ce0a9d903
2417+msgid "See the `Stable Release Updates wiki page`_ for more information."
2418+msgstr ""
2419+
2420+#: ../ubuntu-packaging-guide/traditional-packaging.rst:3
2421+# 01e146ed20574b0491518a5fa96a7814
2422+msgid "Traditional Packaging"
2423+msgstr ""
2424+
2425+#: ../ubuntu-packaging-guide/traditional-packaging.rst:5
2426+# bfc81f2a439f41328fa57d85524df487
2427+msgid "FIXME describe traditional packaging here"
2428+msgstr ""
2429+
2430+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:3
2431+# de45b250ee434651b8ba2943337e2d9e
2432+msgid "Getting the Source"
2433+msgstr ""
2434+
2435+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:6
2436+# 708a4d932f37463e9fe6c0a5064dada9
2437+msgid "Source package URLs"
2438+msgstr ""
2439+
2440+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:8
2441+# 1377317bd9494ced9d4a0891bee7a957
2442+msgid "Bazaar provides some very nice shortcuts for accessing Launchpad's source branches of packages in both Ubuntu and Debian."
2443+msgstr ""
2444+
2445+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:11
2446+# 170a9600a8f44caeae10765baaf7c21f
2447+msgid "To refer to source branches use::"
2448+msgstr ""
2449+
2450+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:15
2451+# 1d24fcdc74354dd7bff584230dfea113
2452+msgid "where *package* refers to the package name you're interested in. This URL refers to the package in the current development version of Ubuntu. To refer to the branch of Tomboy in the development version, you would use::"
2453+msgstr ""
2454+
2455+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:21
2456+# 7d357984ada0447ba0431181a58b5075
2457+msgid "To refer to the version of a source package in an older release of Ubuntu, just prefix the package name with the release's code name. E.g. to refer to Tomboy's source package in Maverick_ use::"
2458+msgstr ""
2459+
2460+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:27
2461+# 403064151cb24c388caca162735fa0bb
2462+msgid "Since they are unique, you can also abbreviate the distro-series name::"
2463+msgstr ""
2464+
2465+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:31
2466+# 262e6ccf32c64d649061db02ab0e5f12
2467+msgid "You can use a similar scheme to access the source branches in Debian, although there are no shortcuts for the Debian distro-series names. To access the Tomboy branch in the current development series for Debian use::"
2468+msgstr ""
2469+
2470+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:37
2471+# 0ceef9271de640e28199e83e7a349385
2472+msgid "and to access Tomboy in Debian Lenny_ use::"
2473+msgstr ""
2474+
2475+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:48
2476+# e728f15a7ae54e96b3c8999fb3940624
2477+msgid "Getting the source"
2478+msgstr ""
2479+
2480+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:50
2481+# a67d179daf624f7dbbaf3eedfcbcaf6b
2482+msgid "Every source package in Ubuntu has an associated source branch on Launchpad. These source branches are updated automatically by Launchpad, although the process is not currently foolproof."
2483+msgstr ""
2484+
2485+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:54
2486+# 50f77ec3e33946019d79cf8f8e68c980
2487+msgid "There are a couple of things that we do first in order to make the workflow more efficient later. Once you are used to the process you will learn when it makes sense to skip these steps."
2488+msgstr ""
2489+
2490+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:62
2491+# 811a02ac0bb74e139dcc5e7d10dc3de2
2492+msgid "Creating a shared repository"
2493+msgstr ""
2494+
2495+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:64
2496+# ea541ef4f3bc44c7808d29301195de53
2497+msgid "You want to work on the Tomboy package in Natty, and you've verified that the source package is named ``tomboy``. Before actually branching the code for Tomboy, create a shared repository to hold the branches for this package. The shared repository will make future work much more efficient."
2498+msgstr ""
2499+
2500+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:70
2501+# a93654da2b2842c3883bd62ee844cf65
2502+msgid "Do this using the `bzr init-repo` command, passing it the directory name we would like to use::"
2503+msgstr ""
2504+
2505+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:75
2506+# 6ac6ea4044af40e69f14be43ecd8e313
2507+msgid "You will see that a `tomboy` directory is created in your current working area. Change to this new directory for the rest of your work::"
2508+msgstr ""
2509+
2510+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:82
2511+# e26beb7d28ab4c29ab4f6f4e4c609347
2512+msgid "Getting the trunk branch"
2513+msgstr ""
2514+
2515+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:84
2516+# 9c8b09e39fa544619be271049b65feb3
2517+msgid "We use the `bzr branch` command to create a local branch of the package. We'll name the target directory `tomboy.dev` just to keep things easy to remember::"
2518+msgstr ""
2519+
2520+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:90
2521+# 1c098b0aedf040e9896f809d48da7baf
2522+msgid "The tomboy.dev directory represents the version of Tomboy in the development version of Ubuntu, and you can always ``cd`` into this directory and do a `bzr pull` to get any future updates."
2523+msgstr ""
2524+
2525+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:97
2526+# 478330b59866411d9ac4d2b636845be3
2527+msgid "Ensuring the version is up to date"
2528+msgstr ""
2529+
2530+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:99
2531+# d3d9360875864092acc72d83fec79552
2532+msgid "When you do your ``bzr branch`` you will get a message telling you if the packaging branch is up to date. For example::"
2533+msgstr ""
2534+
2535+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:107
2536+# 46fe13c7e5414876b713f54610679084
2537+msgid "Occasionally the importer fails and packaging branches do not match what is in the archive. A message saying::"
2538+msgstr ""
2539+
2540+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:112
2541+# 61d9a5892a464d35bd5b53cd3475ced0
2542+msgid "means the importer has failed. You can find out why on http://package-import.ubuntu.com/status/ and `file a bug on the UDD project`_ to get the issue resolved."
2543+msgstr ""
2544+
2545+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:118
2546+# e29e16998b494544859ca798910a447a
2547+msgid "Upstream Tar"
2548+msgstr ""
2549+
2550+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:120
2551+# 20386da53a3741a4a7b84b07b6f0415b
2552+msgid "You can get the upstream tar by running::"
2553+msgstr ""
2554+
2555+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:124
2556+# a8dd0f34885b4a9a87be2aa44d7d1c6a
2557+msgid "This will try a number of methods to get the upstream tar, firstly by recreating it from the ``upstream-x.y`` tag in the bzr archive, then by downloading from the Ubuntu archive, lastly by running ``debian/rules get-orig-source``. The upstream tar will also be recreated when using bzr to build the package::"
2558+msgstr ""
2559+
2560+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:132
2561+# f92e4efcc80749d4a2d194c830a44e04
2562+msgid "The `builddeb` plugin has several `configuration options`_."
2563+msgstr ""
2564+
2565+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:136
2566+# 1549cda4ab0f4671921760913c600e9d
2567+msgid "Getting a branch for a particular release"
2568+msgstr ""
2569+
2570+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:138
2571+# 5e1d5d3463784729b51804337afd0f15
2572+msgid "When you want to do something like a `stable release update`_ (SRU), or you just want to examine the code in an old release, you'll want to grab the branch corresponding to a particular Ubuntu release. For example, to get the Tomboy package for Maverick do::"
2573+msgstr ""
2574+
2575+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:147
2576+# 89b049dc5a4e4ab4a5d79fba7de14a97
2577+msgid "Importing a Debian source package"
2578+msgstr ""
2579+
2580+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:149
2581+# 948574e1256b401c845dbde95388ad7a
2582+msgid "If the package you want to work on is available in Debian but not Ubuntu, it's still easy to import the code to a local bzr branch for development. Let's say you want to import the `newpackage` source package. We'll start by creating a shared repository as normal, but we also have to create a working tree to which the source package will be imported (remember to cd out of the `tomboy` directory created above)::"
2583+msgstr ""
2584+
2585+#: ../ubuntu-packaging-guide/udd-getting-the-source.rst:162
2586+# 68b9d2904b2042c8a2feeca5b2112463
2587+msgid "As you can see, we just need to provide the remote location of the dsc file, and Bazaar will do the rest. You've now got a Bazaar source branch."
2588+msgstr ""
2589+
2590+#: ../ubuntu-packaging-guide/udd-intro.rst:3
2591+# e02e5ddbac284aa99584a94dd0782d6e
2592+msgid "Ubuntu Distributed Development - Introduction"
2593+msgstr ""
2594+
2595+#: ../ubuntu-packaging-guide/udd-intro.rst:5
2596+# 7ee4234b07754d448c2002b58fcf0a5a
2597+msgid "This guide focuses on packaging using the *Ubuntu Distributed Development* (UDD) method."
2598+msgstr ""
2599+
2600+#: ../ubuntu-packaging-guide/udd-intro.rst:8
2601+# f06705abe97045758ae653af62eab8a6
2602+msgid "*Ubuntu Distributed Development* (UDD) is a new technique for developing Ubuntu packages that uses tools, processes, and workflows similar to generic distributed version control system (DVCS) based software development. The DVCS used for UDD is Bazaar_."
2603+msgstr ""
2604+
2605+#: ../ubuntu-packaging-guide/udd-intro.rst:14
2606+# dc7215466a424301828c9e3bcde1a22f
2607+msgid "Traditional Packaging Limitations"
2608+msgstr ""
2609+
2610+#: ../ubuntu-packaging-guide/udd-intro.rst:16
2611+# 371cfc21d714497ab868f5e1854d61ef
2612+msgid "Traditionally Ubuntu packages have been kept in tar archive files. A traditional source package is made up of the upstream source tar, a \"debian\" tar (or compressed diff file for older packages) containing the packaging and a .dsc meta-data file. To see a traditional package run::"
2613+msgstr ""
2614+
2615+#: ../ubuntu-packaging-guide/udd-intro.rst:23
2616+# 1aadf41ee8ef444083f2dea4ad45ec67
2617+msgid "This will download the upstream source ``kdetoys_4.6.5.orig.tar.bz2``, the packaging ``kdetoys_4.6.5-0ubuntu1.debian.tar.gz`` and the meta-data ``kdetoys_4.6.5-0ubuntu1~ppa1.dsc``. Assuming you have dpkg-dev installed it will extract these and give you the source package."
2618+msgstr ""
2619+
2620+#: ../ubuntu-packaging-guide/udd-intro.rst:28
2621+# cf162dd8ac104619800b05a4e8706935
2622+msgid "Traditional packaging would edit these files and upload. However this gives limited opportunity to collaborate with other developers, changes have to be passed around as diff files with no central way to track them and two developers can not make changes at the same time. So most teams have moved to putting their packaging in a revision control system. This makes it easier for several developers to work on a package together. However there is no direct connection between the revision control system and the archive packages so the two must be manually kept in sync. Since each team works in its own revision control system a prospective developer must first work out where that is and how to get the packaging before they can work on the package."
2623+msgstr ""
2624+
2625+#: ../ubuntu-packaging-guide/udd-intro.rst:40
2626+# ae01db626fea46f78e6cd18691596898
2627+msgid "Ubuntu Distributed Development"
2628+msgstr ""
2629+
2630+#: ../ubuntu-packaging-guide/udd-intro.rst:42
2631+# 974d49485a2849168e9942b0804aa69e
2632+msgid "With Ubuntu Distributed Development all packages in the Ubuntu (and Debian) archive are automatically imported into Bazaar branches on our code hosting site Launchpad. Changes can be made directly to these branches in incremental steps and by anyone with commit access. Changes can also be made in forked branched and merged back in with Merge Proposals when they are large enough to need review or if they are by someone without direct commit access."
2633+msgstr ""
2634+
2635+#: ../ubuntu-packaging-guide/udd-intro.rst:49
2636+# 2af22c6ccf5947babf7cc5902e40e461
2637+msgid "UDD branches are all in a standard location so doing a checkout is easy::"
2638+msgstr ""
2639+
2640+#: ../ubuntu-packaging-guide/udd-intro.rst:53
2641+# cb5e2ec745b64f1693c487a5cf6e4bbd
2642+msgid "The merge history includes two separate branches, one for the upstream source and one which adds the ``debian/`` packaging directory::"
2643+msgstr ""
2644+
2645+#: ../ubuntu-packaging-guide/udd-intro.rst:59
2646+# 1054f464b56142dab7d1a8e336bda0a4
2647+msgid "(This command uses *qbzr* for a GUI, run ``log`` instead of ``qlog`` for console output.)"
2648+msgstr ""
2649+
2650+#: ../ubuntu-packaging-guide/udd-intro.rst:64
2651+# 1dab11a12fd74a3c9b6b0381b1097201
2652+msgid "This UDD branch of *kdetoys* shows the full packaging for each version uploaded to Ubuntu with grey circles and the upstream source versions with green circles. Versions are tagged with either the version in Ubuntu such as ``4:4.2.29-0ubuntu1`` or for the upstream branch with the upstream version ``upstream-4.2.96``."
2653+msgstr ""
2654+
2655+#: ../ubuntu-packaging-guide/udd-intro.rst:70
2656+# bc572117cad0476eb5548602d8dec778
2657+msgid "Many Ubuntu packages are based on the packages in Debian, UDD also imports the Debian package into our branches. In the *kdetoys* branch above the Debian versions from *unstable* are from the merge with blue circles while those from *Debian experimental* are from the merge with yellow circles. Debian released are tagged with their version number e.g. ``4:4.2.2-1``."
2658+msgstr ""
2659+
2660+#: ../ubuntu-packaging-guide/udd-intro.rst:76
2661+# dacd0f46f92a406c86b2679ce3bf4e28
2662+msgid "So from a UDD branch you can see the complete history of changes to the package and compare any two versions. For example, to see the changes between version 4.2.2 in Debian and the 4.2.2 in Ubuntu use::"
2663+msgstr ""
2664+
2665+#: ../ubuntu-packaging-guide/udd-intro.rst:82
2666+# d71b4d03fccb4e2680449bdc9fa8669b
2667+msgid "(This command uses *qbzr* for a GUI, run ``diff`` instead of ``qdiff`` for console output.)"
2668+msgstr ""
2669+
2670+#: ../ubuntu-packaging-guide/udd-intro.rst:87
2671+# 208d833fb66e44b7b0ac5a51f0e6d6ef
2672+msgid "From this we can clearly see what has changed in Ubuntu compared to Debian, very handy."
2673+msgstr ""
2674+
2675+#: ../ubuntu-packaging-guide/udd-intro.rst:91
2676+# ae15adc6961442969d8f05f291313348
2677+msgid "Bazaar"
2678+msgstr ""
2679+
2680+#: ../ubuntu-packaging-guide/udd-intro.rst:93
2681+# 25ba427a878d451eb0d6bcf63ee5ce00
2682+msgid "UDD branches use Bazaar, a distributed revision control system intended to be easy to use for those familiar with popular systems such as Subversion while offering the power of Git."
2683+msgstr ""
2684+
2685+#: ../ubuntu-packaging-guide/udd-intro.rst:97
2686+# f0cefb6f5b3a485aa4e7f7e1819e7cdf
2687+msgid "To do packaging with UDD you will need to know the basics of how to use Bazaar to manage files. For an introduction to Bazaar see the `Bazaar Five Minute Tutorial <http://doc.bazaar.canonical.com/bzr.dev/en/mini-tutorial/index.html>`_ and the `Bazaar Users Guide <http://doc.bazaar.canonical.com/bzr.dev/en/user-guide/index.html>`_."
2688+msgstr ""
2689+
2690+#: ../ubuntu-packaging-guide/udd-intro.rst:105
2691+# c08d41d2e3c94aebb87744586cee7534
2692+msgid "Limitations of UDD"
2693+msgstr ""
2694+
2695+#: ../ubuntu-packaging-guide/udd-intro.rst:107
2696+# adf0a0ae209340c592c8159ca0f14d66
2697+msgid "Ubuntu Distributed Development is a new method for working with Ubuntu packages. It currently has some notable limitations:"
2698+msgstr ""
2699+
2700+#: ../ubuntu-packaging-guide/udd-intro.rst:110
2701+# 74f68a68c767479c89d3d0ee9396c90f
2702+msgid "Doing a full branch with history can take a lot of time and network resources. You may find it quicker to do a lightweight checkout ``bzr checkout --lightweight ubuntu:kdetoys`` but this will need a network access for any further bzr operations."
2703+msgstr ""
2704+
2705+#: ../ubuntu-packaging-guide/udd-intro.rst:115
2706+# 4cbeca18d43241faa9c2c1e3817ffa90
2707+msgid "Working with patches is fiddly. Patches can be seen as a branched revision control system, so we end up with RCS on top of RCS."
2708+msgstr ""
2709+
2710+#: ../ubuntu-packaging-guide/udd-intro.rst:118
2711+# 7b4d6c271a8d45f5bac7e40ebff32612
2712+msgid "There is no way to build directly from branches. You need to create a source package and upload that."
2713+msgstr ""
2714+
2715+#: ../ubuntu-packaging-guide/udd-intro.rst:121
2716+# 270ea10b5b5940219b098bfc706f4d40
2717+msgid "Some packages have not been successfully imported into UDD branches. Recent versions of Bazaar will automatically notify you when this is the case. You can also check the `status of the package importer`_ manually before working on a branch."
2718+msgstr ""
2719+
2720+#: ../ubuntu-packaging-guide/udd-intro.rst:126
2721+# 3bb30727b0e849be88b4583d071b56d3
2722+msgid "All of the above are being worked on and UDD is expected to become the main way to work on Ubuntu packages soon. However currently most teams within Ubuntu do not yet work with UDD branches for their development. However because UDD branches are the same as the packages in the archive any team should be able to accept merges against them."
2723+msgstr ""
2724+
2725+#: ../ubuntu-packaging-guide/udd-latest.rst:3
2726+# 9d1a300c3d9345369085e904b67313c1
2727+msgid "Getting The Latest"
2728+msgstr ""
2729+
2730+#: ../ubuntu-packaging-guide/udd-latest.rst:5
2731+# 339c0245957f4160b0005b947a3e0d49
2732+msgid "If someone else has landed changes on a package, you will want to pull those changes in your own copies of the package branches."
2733+msgstr ""
2734+
2735+#: ../ubuntu-packaging-guide/udd-latest.rst:10
2736+# c18361aeed4245cab2688e479f43a4eb
2737+msgid "Updating your main branch"
2738+msgstr ""
2739+
2740+#: ../ubuntu-packaging-guide/udd-latest.rst:12
2741+# a3d5cd0913d04caabf195aeb2cda64c4
2742+msgid "Updating your copy of a branch that corresponds to the package in a particular release is very simple, simply use `bzr pull` from the appropriate directory::"
2743+msgstr ""
2744+
2745+#: ../ubuntu-packaging-guide/udd-latest.rst:18
2746+# 575912a50bdb4bc2ab0148d8acfb7535
2747+msgid "This works wherever you have a checkout of a branch, so it will work for things like branches of `maverick`, `hardy-proposed`, etc."
2748+msgstr ""
2749+
2750+#: ../ubuntu-packaging-guide/udd-latest.rst:23
2751+# 715c9c2a3372432babab101922e160f8
2752+msgid "Getting the latest in to your working branches"
2753+msgstr ""
2754+
2755+#: ../ubuntu-packaging-guide/udd-latest.rst:25
2756+# e4fcfc4c42594affae741d5a17617daf
2757+msgid "Once you have updated your copy of a distroseries branch, then you may want to merge this in to your working branches as well, so that they are based on the latest code."
2758+msgstr ""
2759+
2760+#: ../ubuntu-packaging-guide/udd-latest.rst:29
2761+# 55c9366ed7bb49f7b149db6445b466bc
2762+msgid "You don't have to do this all the time though. You can work on slightly older code with no problems. The disadvantage would come if you were working on some code that someone else changed. If you are not working on the latest version then your changes may not be correct, and may even produce conflicts."
2763+msgstr ""
2764+
2765+#: ../ubuntu-packaging-guide/udd-latest.rst:34
2766+# 69a77acb1eb54553bc5dcd9c3d08a871
2767+msgid "The merge does have to be done at some point though. The longer it is left, the harder may be, so doing it regularly should keep each merge simple. Even if there are many merges the total effort would hopefully be less."
2768+msgstr ""
2769+
2770+#: ../ubuntu-packaging-guide/udd-latest.rst:38
2771+# eef9b9378c9b45838c22b8f4773953c5
2772+msgid "To merge the changes you just need to use ``bzr merge``, but you must have committed your current work first::"
2773+msgstr ""
2774+
2775+#: ../ubuntu-packaging-guide/udd-latest.rst:44
2776+# 3edc5b6354f848f4b32613cde5118ac9
2777+msgid "Any conflicts will be reported, and you can fix them up. To review the changes that you just merged use ``bzr diff``. To undo the merge use ``bzr revert``. Once you are happy with the changes then use ``bzr commit``."
2778+msgstr ""
2779+
2780+#: ../ubuntu-packaging-guide/udd-latest.rst:50
2781+# 21afeaadd6df4d46ba383135caa1d5a5
2782+msgid "Referring to versions of a package"
2783+msgstr ""
2784+
2785+#: ../ubuntu-packaging-guide/udd-latest.rst:52
2786+# f680cb9690844d4e8d5cf6456ebb4348
2787+msgid "You will often think in terms of versions of a package, rather than the underlying Bazaar revision numbers. `bzr-builddeb` provides a revision specifier that makes this convenient. Any command that takes a ``-r`` argument to specify a revision or revision range will work with this specifier, e.g. ``bzr log``, ``bzr diff``, and so on. To view the versions of a package, use the ``package:`` specifier::"
2788+msgstr ""
2789+
2790+#: ../ubuntu-packaging-guide/udd-latest.rst:61
2791+# c52b8e18c3ac403c97a547b08b53b4d6
2792+msgid "This shows you the difference between package version 0.1-1 and 0.1-2."
2793+msgstr ""
2794+
2795+#: ../ubuntu-packaging-guide/udd-merging.rst:3
2796+# dc68e05842b14b3abc7d029142195608
2797+msgid "Merging - Updating from Debian and Upstream"
2798+msgstr ""
2799+
2800+#: ../ubuntu-packaging-guide/udd-merging.rst:5
2801+# 3f98d76a08334a3ba6086f2cc533d3e4
2802+msgid "Merging is one of the strengths of Bazaar, and something we do often in Ubuntu development. Updates can be merged from Debian, from a new upstream release, and from other Ubuntu developers. Doing it in Bazaar is pretty simple, and all based around the ``bzr merge`` command [#]_."
2803+msgstr ""
2804+
2805+#: ../ubuntu-packaging-guide/udd-merging.rst:10
2806+# a21a2c24adf84561899031d40cee0f7e
2807+msgid "While you are in any branch's working directory, you can merge in a branch from a different location. First check that you have no uncommitted changes::"
2808+msgstr ""
2809+
2810+#: ../ubuntu-packaging-guide/udd-merging.rst:15
2811+# 0e0a11b7d1434c9ab7fc02be50311ba1
2812+msgid "If that reports anything then you will either have to commit the changes, revert them, or shelve them to come back to later."
2813+msgstr ""
2814+
2815+#: ../ubuntu-packaging-guide/udd-merging.rst:20
2816+# 30562ac2599a48a09b26b05d6de6baa6
2817+msgid "Merging from Debian"
2818+msgstr ""
2819+
2820+#: ../ubuntu-packaging-guide/udd-merging.rst:22
2821+# 4afeb333b11b413d8b0aaaa4bf51ed3f
2822+msgid "Next run ``bzr merge`` passing the URL of the branch to merge from. For example, to merge from the version of the package in Debian Squeeze_ run::"
2823+msgstr ""
2824+
2825+#: ../ubuntu-packaging-guide/udd-merging.rst:27
2826+# bb6d2b7b4af740fd8421f9de5170ff16
2827+msgid "This will merge the changes since the last merge point and leave you with changes to review. This may cause some conflicts. You can see everything that the ``merge`` command did by running::"
2828+msgstr ""
2829+
2830+#: ../ubuntu-packaging-guide/udd-merging.rst:34
2831+# 6ee5bb94d7304d97b2dfcec95e70dcd9
2832+msgid "If conflicts are reported then you need to edit those files to make them look how they should, removing the *conflict markers*. Once you have done this, run::"
2833+msgstr ""
2834+
2835+#: ../ubuntu-packaging-guide/udd-merging.rst:41
2836+# 8facda931138401d9d746d6cbfdf8cff
2837+msgid "This will resolve any conflicted files that you fixed, and then tell you what else you have to deal with."
2838+msgstr ""
2839+
2840+#: ../ubuntu-packaging-guide/udd-merging.rst:44
2841+# 37232a75c2d64e788788e8d3c9cbdcfd
2842+msgid "Once any conflicts are resolved, and you have made any other changes that you need, you will add a new changelog entry, and commit::"
2843+msgstr ""
2844+
2845+#: ../ubuntu-packaging-guide/udd-merging.rst:50
2846+# 4d14975e51ae4c27ac3ae6b461b69c8d
2847+msgid "as described earlier."
2848+msgstr ""
2849+
2850+#: ../ubuntu-packaging-guide/udd-merging.rst:52
2851+# f1f7aa3a73ba40f29456f5de9273d269
2852+msgid "However, before you commit, it is always a good thing to check all the Ubuntu changes by running::"
2853+msgstr ""
2854+
2855+#: ../ubuntu-packaging-guide/udd-merging.rst:57
2856+# 9092dbac4b564f63885a506f41582d51
2857+msgid "which will show the differences between the Debian (0.6.10-5) and Ubuntu versions (0.6.10-5ubuntu1). In similar way you can compare to any other versions. To see all available versions run::"
2858+msgstr ""
2859+
2860+#: ../ubuntu-packaging-guide/udd-merging.rst:63
2861+# d79b9b8fe0324043845b29278e565bce
2862+msgid "After testing and committing the merge, you will need to seek sponsorship or upload to the archive in the normal way."
2863+msgstr ""
2864+
2865+#: ../ubuntu-packaging-guide/udd-merging.rst:66
2866+# 19eca11f7f7a4c49a9dffa97507b559e
2867+msgid "If you are going to build the source package from this merged branch, you would use the ``-S`` option to the ``bd`` command. One other thing you'll want to consider is also using the ``--package-merge`` option. This will add the appropriate ``-v`` and ``-sa`` options to the source package so that all the changelog entries since the last Ubuntu change will be included in your ``_source.changes`` file. For example::"
2868+msgstr ""
2869+
2870+#: ../ubuntu-packaging-guide/udd-merging.rst:77
2871+# e3d88b2d11f54e8f848d128cdcfbc928
2872+msgid "Merging a new upstream version"
2873+msgstr ""
2874+
2875+#: ../ubuntu-packaging-guide/udd-merging.rst:79
2876+# 099bfde19f2041ef82ac880fb89a7656
2877+msgid "When upstream releases a new version (or you want to package a snapshot), you have to merge a tarball into your branch."
2878+msgstr ""
2879+
2880+#: ../ubuntu-packaging-guide/udd-merging.rst:82
2881+# ca21132b09dd42f6bae10b7be5d30595
2882+msgid "This is done using the ``bzr merge-upstream`` command. If your package has a valid ``debian/watch`` file, from inside the branch that you want to merge to, just type this::"
2883+msgstr ""
2884+
2885+#: ../ubuntu-packaging-guide/udd-merging.rst:88
2886+# 56b3c9414eb44d2991f7b0d92d00f373
2887+msgid "This will download the tarball and merge it into your branch, automatically adding a ``debian/changelog`` entry for you. ``bzr-builddeb`` looks at the ``debian/watch`` file for the upstream tarball location."
2888+msgstr ""
2889+
2890+#: ../ubuntu-packaging-guide/udd-merging.rst:92
2891+# 5b6202491b164f509bdb9b99311fcf3d
2892+msgid "If you do *not* have a ``debian/watch`` file, you'll need to specify the location of the upstream tarball, and the version manually::"
2893+msgstr ""
2894+
2895+#: ../ubuntu-packaging-guide/udd-merging.rst:97
2896+# 53db9d767eca4e80ba838d2b78832063
2897+msgid "The ``--version`` option is used to specify the upstream version that is being merged in, as the command isn't able to infer that (yet)."
2898+msgstr ""
2899+
2900+#: ../ubuntu-packaging-guide/udd-merging.rst:100
2901+# deda3c9c46464074b40bfa7a04c15155
2902+msgid "The last parameter is the location of the tarball that you are upgrading to; this can either be a local filesystem path, or a http, ftp, sftp, etc. URI as shown. The command will automatically download the tarball for you. The tarball will be renamed appropriately and, if required, converted to ``.gz``."
2903+msgstr ""
2904+
2905+#: ../ubuntu-packaging-guide/udd-merging.rst:105
2906+# a8a8873c3b9745318bdaf72cd43d01e6
2907+msgid "The `merge-upstream` command will either tell you that it completed successfully, or that there were conflicts. Either way you will be able to review the changes before committing as normal."
2908+msgstr ""
2909+
2910+#: ../ubuntu-packaging-guide/udd-merging.rst:109
2911+# 90b4d273a547482c9c5ecd37bdcc836d
2912+msgid "If you are merging an upstream release into an existing Bazaar branch that has not previously used the UDD layout, ``bzr merge-upstream`` will fail with an error that the tag for the previous upstream version is not available; the merge can't be completed without knowing what base version to merge against. To work around this, create a tag in your existing repository for the last upstream version present there; e.g., if the last Ubuntu release was *1.1-0ubuntu3*, create the tag *upstream-1.1* pointing to the bzr revision you want to use as the tip of the upstream branch."
2913+msgstr ""
2914+
2915+#: ../ubuntu-packaging-guide/udd-merging.rst:122
2916+# 010017a3c74341108012280452144e2d
2917+msgid "You will need newer versions of ``bzr`` and the ``bzr-builddeb`` for the ``merge`` command to work. Use the versions from Ubuntu 12.04 (Precise) or the development versions from the ``bzr`` PPA. Specifically, you need ``bzr`` version 2.5 beta 5 or newer, and ``bzr-builddeb`` version 2.8.1 or newer. For older versions, use the ``bzr merge-package`` command instead."
2918+msgstr ""
2919+
2920+#: ../ubuntu-packaging-guide/udd-newpackage.rst:3
2921+# b8687b8342d4484381ab0009d7571faf
2922+msgid "Building a new package"
2923+msgstr ""
2924+
2925+#: ../ubuntu-packaging-guide/udd-newpackage.rst:5
2926+# da3d76bf462b4fd28237be3b02d73c47
2927+msgid "Let's say I have an upstream project that is not yet available for Ubuntu. I want to create a package from this project and make it available as a PPA_ so that other people can more easily use the code. This also makes a good first step in contributing your package to universe_."
2928+msgstr ""
2929+
2930+#: ../ubuntu-packaging-guide/udd-newpackage.rst:12
2931+# 900f00a174714536a096ade529c569ac
2932+msgid "Example package"
2933+msgstr ""
2934+
2935+#: ../ubuntu-packaging-guide/udd-newpackage.rst:14
2936+# feeb33594e7442ed8e558be19bc3e7f5
2937+msgid "I started with a Python library called `flufl.enum`_, which is a fairly typical setuptools-based Python package. Fortunately, it's also maintained in Launchpad using Bazaar, so that makes bootstrapping much easier."
2938+msgstr ""
2939+
2940+#: ../ubuntu-packaging-guide/udd-newpackage.rst:18
2941+# f765bafb78864679b1059e3f15db3a0d
2942+msgid "Because we want to package the trunk branch, getting started is pretty simple::"
2943+msgstr ""
2944+
2945+#: ../ubuntu-packaging-guide/udd-newpackage.rst:31
2946+# 39a9d3352730400c808925727ac7d6c5
2947+msgid "Bootstrapping"
2948+msgstr ""
2949+
2950+#: ../ubuntu-packaging-guide/udd-newpackage.rst:33
2951+# b1ce6212d91948cfbb6f9bedfa2877c7
2952+msgid "You need to create the initial ``debian`` directory, as well as the necessary files inside the ``debian`` directory. Currently, there are many ways to set up this directory, but hopefully there will be `some convergence`_ in the methods, especially if you're building standard Python setuptools-based libraries and applications."
2953+msgstr ""
2954+
2955+#: ../ubuntu-packaging-guide/udd-newpackage.rst:43
2956+# f87c0194eae54e80964fc3c92f512a2b
2957+msgid "The bzr-builddeb way"
2958+msgstr ""
2959+
2960+#: ../ubuntu-packaging-guide/udd-newpackage.rst:45
2961+# 940940706e2c4f2e84b92c940d147915
2962+msgid "You could use the ``dh_make`` command to get things going, or similarly the ``bzr dh-make``. The latter might provide some benefits, and can be run like so from inside your branch::"
2963+msgstr ""
2964+
2965+#: ../ubuntu-packaging-guide/udd-newpackage.rst:52
2966+# b5d07b47aa6a4743b10c5da608ed31e7
2967+msgid "If you don't have a URL to download a tarball from, you'll need to create the tarball locally first. Use ``bzr dh-make --help`` for details on this command."
2968+msgstr ""
2969+
2970+#: ../ubuntu-packaging-guide/udd-newpackage.rst:55
2971+# ad64e2f4ef1d4cd6b7a9cb18b35afe96
2972+msgid "After you've created the ``debian`` directory template, be sure to ``bzr rm`` any ``debian`` files you don't need (e.g. the ``*.ex`` files), and edit files such as ``debian/control``, ``debian/watch``, ``debian/copyright`` and ``debian/changelog``. The following section may give you some hints about that."
2973+msgstr ""
2974+
2975+#: ../ubuntu-packaging-guide/udd-newpackage.rst:63
2976+# 1ba898157b814592a161633f29a60663
2977+msgid "The stdeb way"
2978+msgstr ""
2979+
2980+#: ../ubuntu-packaging-guide/udd-newpackage.rst:65
2981+# b1184b49f04442a3a80709e934d63205
2982+msgid "Another way for creating the initial ``debian`` directory for Python setuptools-based packages, is to use the stdeb_ package. The full documentation for this package is available on the `upstream home`_, but you won't need all of the commands. stdeb has a command that is *exactly* what we're looking for!"
2983+msgstr ""
2984+
2985+#: ../ubuntu-packaging-guide/udd-newpackage.rst:71
2986+# 7565c365c47b4e63b4301d873d7269ae
2987+msgid "In either case, start by putting this in your ``~/.pydistutils.cfg`` file::"
2988+msgstr ""
2989+
2990+#: ../ubuntu-packaging-guide/udd-newpackage.rst:78
2991+# 13b8f0432f434c3cad4a07f63df7bc5d
2992+msgid "Modern stdeb"
2993+msgstr ""
2994+
2995+#: ../ubuntu-packaging-guide/udd-newpackage.rst:80
2996+# 4a75fbc5a4774bd4a0a03ba0e13f0c62
2997+msgid "Here's how easy it is::"
2998+msgstr ""
2999+
3000+#: ../ubuntu-packaging-guide/udd-newpackage.rst:86
3001+# fa8392053d014f42b7e82ec702b7466f
3002+msgid "We also need a ``debian/copyright`` file. Normally, we'd use ``dh_make -c`` for that but again, that doesn't play nicely with UDD. ``dh_make`` expects a particular file system layout that we don't have. No matter, we'll add the copyright file manually::"
3003+msgstr ""
3004+
3005+#: ../ubuntu-packaging-guide/udd-newpackage.rst:98
3006+# 83c9385cd7e44dbcbad56c6dc64b116d
3007+msgid "stdeb <= 0.5.1"
3008+msgstr ""
3009+
3010+#: ../ubuntu-packaging-guide/udd-newpackage.rst:100
3011+# adb471ff8471413ba7f3702a77ff1c4a
3012+msgid "If you have an older version of stdeb, use this command to create the basic ``debian/`` directory layout::"
3013+msgstr ""
3014+
3015+#: ../ubuntu-packaging-guide/udd-newpackage.rst:105
3016+# 442e744568aa4afdba53c9ac58e992ec
3017+msgid "This command leaves you with a ``deb_dist`` directory containing a ``flufl.enum_3.0.1`` directory. Inside that is your ``debian/`` directory. Because we're using UDD we don't care about anything else that ``sdist_dsc`` produces, so we can shuffle things around and remove the cruft."
3018+msgstr ""
3019+
3020+#: ../ubuntu-packaging-guide/udd-newpackage.rst:110
3021+# a9095a611011467283d8b1e16ad71cde
3022+msgid "$ mv deb_dist/munepy-2.0.1/debian . $ rm -rf deb_dist $ bzr add debian $ bzr commit -m'Add debian directory'"
3023+msgstr ""
3024+
3025+#: ../ubuntu-packaging-guide/udd-newpackage.rst:117
3026+# d84805c6b2ff43d1815ed48cd6561ca1
3027+msgid "pkgme"
3028+msgstr ""
3029+
3030+#: ../ubuntu-packaging-guide/udd-newpackage.rst:119
3031+# e397d168c1464148a5e29252e0c05116
3032+msgid "pkgme_ is a new tool that makes it easy to Debianize a new package. TBD: describe how to use it."
3033+msgstr ""
3034+
3035+#: ../ubuntu-packaging-guide/udd-newpackage.rst:124
3036+# 355c0182eaad4d768364d1dc84933f38
3037+msgid "debian/control file"
3038+msgstr ""
3039+
3040+#: ../ubuntu-packaging-guide/udd-newpackage.rst:126
3041+# 09b6bf2c91584bec9c9eb829f34241bd
3042+msgid "You probably want to edit the ``debian/control`` file at this point, adding any information that's missing, or fixing incorrect default information. For example, I needed to modify the ``Maintainer`` and ``Description`` fields, and add ``X-Python-Version`` and ``Homepage`` fields."
3043+msgstr ""
3044+
3045+#: ../ubuntu-packaging-guide/udd-newpackage.rst:131
3046+# 631a463946764d31afd3cdeee7d37d37
3047+msgid "Now we want to build the source package. The easiest way to do that is with the ``bzr-builddeb`` plugin, however this requires a valid ``debian/watch`` file so that builddeb can find the upstream tarball. This really should match the version of the checkout you've made."
3048+msgstr ""
3049+
3050+#: ../ubuntu-packaging-guide/udd-newpackage.rst:138
3051+# 9fe80612b0f241069d9c6c1eeadce841
3052+msgid "debian/watch file"
3053+msgstr ""
3054+
3055+#: ../ubuntu-packaging-guide/udd-newpackage.rst:140
3056+# a718657059c940a6a3c66efda75eb96d
3057+msgid "Here for example is the ``debian/watch`` file I'm using::"
3058+msgstr ""
3059+
3060+#: ../ubuntu-packaging-guide/udd-newpackage.rst:145
3061+# d553ecdd289b46feb5bb770b10486af5
3062+msgid "If your tarballs live on Launchpad, the ``debian/watch`` file is a little more complicated (see `Question 21146`_ and `Bug 231797`_ for why this is). In that case, use something like::"
3063+msgstr ""
3064+
3065+#: ../ubuntu-packaging-guide/udd-newpackage.rst:152
3066+# 418bf4f02fac439d998f992dbe976a8a
3067+msgid "So, then it's a matter of...::"
3068+msgstr ""
3069+
3070+#: ../ubuntu-packaging-guide/udd-newpackage.rst:159
3071+# c12649f825014fe483b750d0c8964490
3072+msgid "Building the source package"
3073+msgstr ""
3074+
3075+#: ../ubuntu-packaging-guide/udd-newpackage.rst:161
3076+# a94c3b29dc50469598d0f49d695c5165
3077+msgid "Now we can build the source package and publish the package as we normally would, with ``bzr builddeb -S`` and ``dput``."
3078+msgstr ""
3079+
3080+#: ../ubuntu-packaging-guide/udd-patchsys.rst:3
3081+# f6fb6d9a352d4554abbeb9b2e3acefd9
3082+msgid "Working with Patches"
3083+msgstr ""
3084+
3085+#: ../ubuntu-packaging-guide/udd-patchsys.rst:5
3086+# 0363d3d4f8bf4c7b8e08d01edaf97bad
3087+msgid "Many existing packages that have changes from upstream express those changes using a patch system, of which there are several to choose from. Usually, when you make an additional change to a package, you'll want to add a patch file to the patch system being used, rather than editing the source code in place. Note however that it is considered bad practice to add a patch system to a package that does not already have one. In that case, either coordinate with the Debian maintainer, or edit the files in place. You can find out if your package has a patch system by using the ``what-patch`` command (from the ``ubuntu-dev-tools`` package)."
3088+msgstr ""
3089+
3090+#: ../ubuntu-packaging-guide/udd-patchsys.rst:15
3091+# fd42ca6b29c546b1b484b212fd15fd1c
3092+msgid "While Debian has several patch systems, Quilt_ is becoming the most popular. Quilt acts something like a version control system itself, and in the context of UDD, this can be both a good thing and a bad thing. With Bazaar 2.5 and ``bzr-builddeb`` 2.8.1 (in Ubuntu 12.04 Precise), handling source packages with quilt patches has become much easier."
3093+msgstr ""
3094+
3095+#: ../ubuntu-packaging-guide/udd-patchsys.rst:21
3096+# 1434e52e8905421fb549733f8ccba755
3097+msgid "There are two main tasks where you'll have to be aware of quilt patches, when developing your own patch to the upstream code, and when merging new versions of the package from Debian where either the Debian or Ubuntu (or both) have quilt patches in the source branch."
3098+msgstr ""
3099+
3100+#: ../ubuntu-packaging-guide/udd-patchsys.rst:26
3101+# b58a5bc7584f477d92f82add21cbecd0
3102+msgid "Here are some guidelines for working with quilt patches in UDD in these two scenarios. Some of these techniques are works-in-progress, so you should adapt them to your own workflow, and keep watching for improvements from the Bazaar teams."
3103+msgstr ""
3104+
3105+#: ../ubuntu-packaging-guide/udd-patchsys.rst:33
3106+# 4fd2951efe3b48d9aa92e5c97a5046a5
3107+msgid "Patches are applied in source branches"
3108+msgstr ""
3109+
3110+#: ../ubuntu-packaging-guide/udd-patchsys.rst:35
3111+# 689b0681cd864bc6a2202b83b3ad3bc6
3112+msgid "One important thing to keep in mind: all source branches reflect the tree after a ``quilt push -a``. In other words, when you branch a source branch from Launchpad, you get the tree with all patches applied, ready for you to jump right into hacking. You do not need to ``quilt push -a`` manually, and in fact, you'll get a tree with lots of distracting modifications if you push or pop all the changes. Or to put it another way, once you have a branch, jump right in!"
3113+msgstr ""
3114+
3115+#: ../ubuntu-packaging-guide/udd-patchsys.rst:45
3116+# edbb545a25ad4c11971b170125037114
3117+msgid "Merging from Debian with quilt patches"
3118+msgstr ""
3119+
3120+#: ../ubuntu-packaging-guide/udd-patchsys.rst:47
3121+# e9715e7c665747098f284eecfde3024d
3122+msgid "With newer versions of Bazaar as mentioned above, merging new Debian versions to Ubuntu versions should be quite easy now, even when one or both packages have quilt patches. Just use ``bzr merge`` as you normally would. Under the hood, Bazaar will first unapply all the patches, then do the merge, then if there are no conflicts, it will re-apply the patches leaving you again with a source branch in the ``quilt push -a`` state."
3123+msgstr ""
3124+
3125+#: ../ubuntu-packaging-guide/udd-patchsys.rst:54
3126+# eaa05e8c71a745ae850e574631031a92
3127+msgid "For example, if we want to merge the Debian version of the ``aptitude`` package with the Ubuntu version, we would do something like this::"
3128+msgstr ""
3129+
3130+#: ../ubuntu-packaging-guide/udd-patchsys.rst:64
3131+# 916812819c4341148647ea8c57bb0b2b
3132+msgid "If there are merge conflicts, the quilt patches will remain unapplied so that you can resolve the conflicts more easily. You would use a combination of bzr and quilt commands to resolve the conflicts, until all the quilt patches are applied again. Then you're ready to commit, push, and build as you normally would."
3133+msgstr ""
3134+
3135+#: ../ubuntu-packaging-guide/udd-patchsys.rst:72
3136+# f2b77350a5764ee4a465dc7f4e5861e5
3137+msgid "Develop your patch"
3138+msgstr ""
3139+
3140+#: ../ubuntu-packaging-guide/udd-patchsys.rst:74
3141+# 82bb00d948bd47f8866ee7c4f83627ab
3142+msgid "There is a strong preference to fixing packages using a patch system like quilt, rather than modifying the source code directly. This is because with a patch system, it's easier to communicate those changes to Debian or upstream (where UDD isn't used), and to remove patches when upstream fixes the bug the patch addresses (possibly in a completely different way)."
3143+msgstr ""
3144+
3145+#: ../ubuntu-packaging-guide/udd-patchsys.rst:80
3146+# 778a274b4f0a4c4594aa0b6d8f2b8ff7
3147+msgid "Let's say there's a bug in the ``dbus`` package that you want to fix. You start the way you normally would with any package in UDD::"
3148+msgstr ""
3149+
3150+#: ../ubuntu-packaging-guide/udd-patchsys.rst:89
3151+# 725d26b712d54930bd3fece4e1205c82
3152+msgid "Maybe the bug is pretty simple; there's a typo in the ``README`` file. Just fix the typo in your favorite editor, then do a ``bzr stat`` to prove that the file has been edited::"
3153+msgstr ""
3154+
3155+#: ../ubuntu-packaging-guide/udd-patchsys.rst:97
3156+# 2c0cd48d546e4ff880a11dbeb672b4ca
3157+msgid "Now, in order to get this fix into a quilt patch, we need to generate a diff, but we need the resulting patch to have a format that is consumable by quilt. The way to do that is to use the ``--prefix`` (or ``-p``) option to ``bzr diff``::"
3158+msgstr ""
3159+
3160+#: ../ubuntu-packaging-guide/udd-patchsys.rst:104
3161+# 6c6e406feab94466a83cd9083f63699c
3162+msgid "What this actually does is to produce a *level 1* diff, which is required by the quilt command we're going to use below. Normally, ``bzr diff`` produces *level 0* diffs which are more easily read by humans, but this won't work with quilt (despite the implication in the quilt documentation)."
3163+msgstr ""
3164+
3165+#: ../ubuntu-packaging-guide/udd-patchsys.rst:109
3166+# e01f1a39c4314baebed9a1b1e2a9c332
3167+msgid "The above command generates the patch and stores it in a file one level up from the working tree. Note that here we're using the ``a`` and ``b`` directory prefixes for the diff, but the actual names don't really matter."
3168+msgstr ""
3169+
3170+#: ../ubuntu-packaging-guide/udd-patchsys.rst:113
3171+# 30363be3957a463eb045cefb1229290e
3172+msgid "Now all you need to do is to import the patch into your quilt patches. If you named the file above with the same name you want into your quilt stack, then just do this::"
3173+msgstr ""
3174+
3175+#: ../ubuntu-packaging-guide/udd-patchsys.rst:120
3176+# 6f611850558d485f954a1b60ce5c5730
3177+msgid "You need the last line to inform Bazaar about the new quilt patch file. You can see that the quilt patch's name is the same as the file name you generated above. Of course, you can change this by using the ``-P`` option to ``quilt import``."
3178+msgstr ""
3179+
3180+#: ../ubuntu-packaging-guide/udd-patchsys.rst:125
3181+# dc69c1cf032e4b1a8294928554dac138
3182+msgid "One important thing to notice is that if you do the commands ``bzr stat`` and a ``quilt applied`` , you'll see that the ``README`` file is still modified, but the ``bug-12345.patch`` is not yet applied. If you try to apply the newly imported quilt patch (with ``quilt push``), it will fail because you're applying a patch on top of the already patched file."
3183+msgstr ""
3184+
3185+#: ../ubuntu-packaging-guide/udd-patchsys.rst:131
3186+# eeec975299cf457d8eddae1b294020a7
3187+msgid "One way around this is to revert the change to ``README`` before doing the ``quilt push``. However, if you think you may want to continue to develop the patch, and thus do not want to throw away your in-tree changes, use ``bzr shelve`` to save the change in the working tree to the side, then do ``quilt push``. Either way, once you've pushed your top quilt patch, you can just edit the tree in place, and do ``quilt refresh`` commands to update the top quilt patch."
3188+msgstr ""
3189+
3190+#: ../ubuntu-packaging-guide/udd-patchsys.rst:141
3191+# f31c5d24034845779d0438f7ce916170
3192+msgid "Gotchas"
3193+msgstr ""
3194+
3195+#: ../ubuntu-packaging-guide/udd-patchsys.rst:143
3196+# 3917fdae40bc40c5b56b50b902677d15
3197+msgid "One thing to keep in mind is that quilt uses a hidden ``.pc`` directory to record its status. This directory is under version control in all source branches. *Watch out* for changes to the ``.pc`` directory that are unrelated (or more accurately, uninteresting) to your patch. This can happen because the UDD source branch importer `currently includes any existing .pc directory`_ in the imported branch. This can cause conflicts, or other unwanted or unknown changes because you've essentially got two conflicting version control systems competing for the same thing (i.e. bzr and quilt3). For now, the best recommendation is to revert any changes to the ``.pc`` directory in your branch."
3198+msgstr ""
3199+
3200+#: ../ubuntu-packaging-guide/udd-patchsys.rst:156
3201+# d65a7f82fcd94ab68c6c627364d2aab3
3202+msgid "edit-patch"
3203+msgstr ""
3204+
3205+#: ../ubuntu-packaging-guide/udd-patchsys.rst:158
3206+# b0d8c677b4a54f5ca77d75fb30b8c294
3207+msgid "``edit-patch`` is a nice little wrapper script that comes as part of the ``ubuntu-dev-tools`` package. It pretty much hides the nasty details of dealing with the patch system specifically. For example, while the above works well if your package is using quilt already, you'll have to adjust the workflow, perhaps significantly, to work with `a different patch system`_. In theory ``edit-patch`` should solve this, but there are currently two blockers."
3208+msgstr ""
3209+
3210+#: ../ubuntu-packaging-guide/udd-patchsys.rst:165
3211+# a6b9af6d3af64db99d2b68190dfbdfd3
3212+msgid "By default, ``bzr diff`` produces a ``-p0`` patch, but ``edit-patch`` defers to the underlying patch system's default. For quilt, this is ``-p1``. ``quilt import`` takes a ``-p`` argument to specify the prefix level, but this isn't yet exposed in ``edit-patch``. If you use the ``--prefix`` argument to the ``bzr diff`` command as shown above, you should be okay."
3213+msgstr ""
3214+
3215+#: ../ubuntu-packaging-guide/udd-patchsys.rst:171
3216+# ce0e11f073b24f4185191bdbc191518a
3217+msgid "By default, ``edit-patch`` requires a path to an existing patch file, but it's more convenient to pipe the output of ``bzr diff`` to the stdin of ``edit-patch``, as shown above. The alternative would be to save the diff in a temporary file, and then point ``edit-patch`` to this temporary file."
3218+msgstr ""
3219+
3220+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:3
3221+# 7b1fc44173cb4391a096f4007ec9c56e
3222+msgid "Seeking Review and Sponsorship"
3223+msgstr ""
3224+
3225+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:5
3226+# d95d3d492bda47d4b503e101616df3ad
3227+msgid "One of the biggest advantages to using the UDD workflow is to improve quality by seeking review of changes by your peers. This is true whether or not you have upload rights yourself. Of course, if you don't have upload rights, you will need to seek sponsorship."
3228+msgstr ""
3229+
3230+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:10
3231+# 06bab422caf142839275125cbb83b8b2
3232+msgid "Once you are happy with your fix, and have a branch ready to go, the following steps can be used to publish your branch on Launchpad, link it to the bug issue, and create a *merge proposal* for others to review, and sponsors to upload."
3233+msgstr ""
3234+
3235+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:19
3236+# 3d62b9b1f8c34d3e9365e8e5c66e01cf
3237+msgid "Pushing to Launchpad"
3238+msgstr ""
3239+
3240+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:21
3241+# 1c70e306b96d4e2eb85f83a2a0b50255
3242+msgid "We previously showed you how to :ref:`associate your branch to the bug <link-via-changelog>` using ``dch`` and ``bzr commit``. However, the branch and bug don't actually get linked until you push the branch to Launchpad."
3243+msgstr ""
3244+
3245+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:25
3246+# 5c03b03b3018459a87e8d0255fda8159
3247+msgid "It is not critical to have a link to a bug for every change you make, but if you are fixing reported bugs then linking to them will be useful."
3248+msgstr ""
3249+
3250+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:28
3251+# d792e1921e3b43a0939226c7dab56f0a
3252+msgid "The general form of the URL you should push your branch to is::"
3253+msgstr ""
3254+
3255+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:32
3256+# 5ff727debaf543b4827ed685006c64f3
3257+msgid "For example, to push your fix for bug 12345 in the Tomboy package for Natty, you'd use::"
3258+msgstr ""
3259+
3260+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:37
3261+# 5e4aec261f9c445fbacac4b444ab14d4
3262+msgid "The last component of the path is arbitrary; it's up to you to pick something meaningful."
3263+msgstr ""
3264+
3265+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:40
3266+# c7881ddc989f47c08a05fc8bdb33ec63
3267+msgid "However, this usually isn't enough to get Ubuntu developers to review and sponsor your change. You should next submit a *merge proposal*."
3268+msgstr ""
3269+
3270+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:43
3271+# 4acecb6b0590401c9c3c3b34f7d9c6c4
3272+msgid "To do this open the bug page in a browser, e.g.::"
3273+msgstr ""
3274+
3275+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:47
3276+# a58c58ac96f24e5b974fa5e1fd604700
3277+msgid "If that fails, then you can use::"
3278+msgstr ""
3279+
3280+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:51
3281+# 432738e021a442d4993be0b661247073
3282+msgid "where most of the URL matches what you used for `bzr push`. On this page, you'll see a link that says *Propose for merging into another branch*. Type in an explanation of your change in the *Initial Comment* box. Lastly, click *Propose Merge* to complete the process."
3283+msgstr ""
3284+
3285+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:56
3286+# 44bc83875c54474b88a148c193bf2145
3287+msgid "Merge proposals to package source branches will automatically subscribe the `~ubuntu-branches` team, which should be enough to reach an Ubuntu developer who can review and sponsor your package change."
3288+msgstr ""
3289+
3290+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:62
3291+# 0fca62fbb96b40f8b6a2f6d71b4e931b
3292+msgid "Generating a debdiff"
3293+msgstr ""
3294+
3295+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:64
3296+# 497f074532ea41a0ad2f0f737458c0f6
3297+msgid "As noted above, some sponsors still prefer reviewing a *debdiff* attached to bug reports instead of a merge proposal. If you're requested to include a debdiff, you can generate one like this (from inside your `bug-12345` branch)::"
3298+msgstr ""
3299+
3300+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:71
3301+# 0afe1b0f347d4262b8a653e63db9ea5e
3302+msgid "Another way is to is to open the merge proposal and download the diff."
3303+msgstr ""
3304+
3305+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:73
3306+# 05d3f3141ec3469ab72b15c0de583f17
3307+msgid "You should ensure that diff has the changes you expect, no more and no less. Name the diff appropriately, e.g. ``foobar-12345.debdiff`` and attach it to the bug report."
3308+msgstr ""
3309+
3310+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:79
3311+# 7dd6fe9d8c3b444f8860975c4a8b4f38
3312+msgid "Dealing with feedback from sponsors"
3313+msgstr ""
3314+
3315+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:81
3316+# 9e3b1d91bed845d2a6062e3f570b7409
3317+msgid "If a sponsor reviews your branch and asks you to change something, you can do this fairly easily. Simply go to the branch that you were working in before, make the changes requested, and then commit::"
3318+msgstr ""
3319+
3320+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:87
3321+# ad089e0df80b465eb7f1e40716314363
3322+msgid "Now when you push your branch to Launchpad, Bazaar will remembered where you pushed to, and will update the branch on Launchpad with your latest commits. All you need to do is::"
3323+msgstr ""
3324+
3325+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:93
3326+# 77f8fca80f29434fbd5168392851dcc7
3327+msgid "You can then reply to the merge proposal review email explaining what you changed, and asking for re-review, or you can reply on the merge proposal page in Launchpad."
3328+msgstr ""
3329+
3330+#: ../ubuntu-packaging-guide/udd-sponsorship.rst:97
3331+# 52c8fccf546c44c282c96dfa76047b7e
3332+msgid "Note that if you are sponsored via a debdiff attached to a bug report you need to manually update by generating a new diff and attaching that to the bug report."
3333+msgstr ""
3334+
3335+#: ../ubuntu-packaging-guide/udd-uploading.rst:3
3336+# d617008018d04504ba3c700dbfd8a071
3337+msgid "Uploading a package"
3338+msgstr ""
3339+
3340+#: ../ubuntu-packaging-guide/udd-uploading.rst:5
3341+# 342b747163f4456a94be40e1565fab2d
3342+msgid "Once your merge proposal is reviewed and approved, you will want to upload your package, either to the archive (if you have permission) or to your `Personal Package Archive`_ (PPA). You might also want to do an upload if you are sponsoring someone else's changes."
3343+msgstr ""
3344+
3345+#: ../ubuntu-packaging-guide/udd-uploading.rst:12
3346+# b0cbfab07b0d4e37a98ac5b47602ba94
3347+msgid "Uploading a change made by you"
3348+msgstr ""
3349+
3350+#: ../ubuntu-packaging-guide/udd-uploading.rst:14
3351+# ac079639095a4f71ae085f9ab67edee7
3352+msgid "When you have a branch with a change that you would like to upload you need to get that change back on to the main source branch, build a source package, and then upload it."
3353+msgstr ""
3354+
3355+#: ../ubuntu-packaging-guide/udd-uploading.rst:18
3356+# 4eab51f33be241479a6671845543c543
3357+msgid "First, you need to check that you have the latest version of the package in your checkout of the development package trunk::"
3358+msgstr ""
3359+
3360+#: ../ubuntu-packaging-guide/udd-uploading.rst:24
3361+# 1e3dc7dfc78d4b1583d03def5dbc4ada
3362+msgid "This pulls in any changes that may have been committed while you were working on your fix. From here, you have several options. If the changes on the trunk are large and you feel should be tested along with your change you can merge them into your bug fix branch and test there. If not, then you can carry on merging your bug fix branch into the development trunk branch. As of bzr 2.5 and bzr-builddeb 2.8.1, this works with just the standard ``merge`` command::"
3363+msgstr ""
3364+
3365+#: ../ubuntu-packaging-guide/udd-uploading.rst:34
3366+# 5c53b237d933489fb5dff7a6cb8065dd
3367+msgid "For older versions of bzr, you can use the ``merge-package`` command instead::"
3368+msgstr ""
3369+
3370+#: ../ubuntu-packaging-guide/udd-uploading.rst:38
3371+# cd5c586ed03f4cfd80f044d00f56de68
3372+msgid "This will merge the two trees, possibly producing conflicts, which you'll need to resolve manually."
3373+msgstr ""
3374+
3375+#: ../ubuntu-packaging-guide/udd-uploading.rst:41
3376+# 8b79d8ef643e4180a1f3a44ae9d0a774
3377+msgid "Next you should make sure the ``debian/changelog`` is as you would like, with the correct distribution, version number, etc."
3378+msgstr ""
3379+
3380+#: ../ubuntu-packaging-guide/udd-uploading.rst:44
3381+# 144b9deb49ad4e5f8ee0d1b34cd8a44d
3382+msgid "Once that is done you should review the change you are about to commit with ``bzr diff``. This should show you the same changes as a debdiff would before you upload the source package."
3383+msgstr ""
3384+
3385+#: ../ubuntu-packaging-guide/udd-uploading.rst:48
3386+# 21d5018d7bf44760b14279b4eef579f5
3387+msgid "The next step is to build and test the modified source package as you normally would::"
3388+msgstr ""
3389+
3390+#: ../ubuntu-packaging-guide/udd-uploading.rst:53
3391+# 52f286ea39024b6f9e2589ae45062601
3392+msgid "When you're finally happy with your branch, make sure you've committed all your changes, then tag the branch with the changelog's version number. The ``bzr tag`` command will do this for you automatically when given no arguments::"
3393+msgstr ""
3394+
3395+#: ../ubuntu-packaging-guide/udd-uploading.rst:60
3396+# 99b97002ffe34973979d24ac1668f787
3397+msgid "This tag will tell the package importer that what is in the Bazaar branch is the same as in the archive."
3398+msgstr ""
3399+
3400+#: ../ubuntu-packaging-guide/udd-uploading.rst:63
3401+# ebeb745e0c11434c8dcb15cc023ddeb7
3402+msgid "Now you can push the changes back to Launchpad::"
3403+msgstr ""
3404+
3405+#: ../ubuntu-packaging-guide/udd-uploading.rst:67
3406+# 2eb1de1779694bf881e03fd5a67d2af0
3407+msgid "(Change the destination if you are uploading an SRU or similar.)"
3408+msgstr ""
3409+
3410+#: ../ubuntu-packaging-guide/udd-uploading.rst:69
3411+# 8ebd6bfad0e34d93890640c2bf1b787c
3412+msgid "You need one last step to get your changes uploaded into Ubuntu or your PPA; you need to ``dput`` the source package to the appropriate location. For example, if you want to upload your changes to your PPA, you'd do::"
3413+msgstr ""
3414+
3415+#: ../ubuntu-packaging-guide/udd-uploading.rst:75
3416+# 5a2f077286fb4c7c8f35d5f181dfe020
3417+msgid "or, if you have permission to upload to the primary archive::"
3418+msgstr ""
3419+
3420+#: ../ubuntu-packaging-guide/udd-uploading.rst:79
3421+# 9b550ebec58249fbb0fe679464b92453
3422+msgid "You are now free to delete your feature branch, as it is merged, and can be re-downloaded from Launchpad if needed."
3423+msgstr ""
3424+
3425+#: ../ubuntu-packaging-guide/udd-uploading.rst:84
3426+# 7df92bf7f57846d9af9f8f9d356bec2c
3427+msgid "Sponsoring a change"
3428+msgstr ""
3429+
3430+#: ../ubuntu-packaging-guide/udd-uploading.rst:86
3431+# f9eb51784cf6440ab1e92567c03feddc
3432+msgid "Sponsoring someone else's change is just like the above procedure, but instead of merging from a branch you created, you merge from the branch in the merge proposal::"
3433+msgstr ""
3434+
3435+#: ../ubuntu-packaging-guide/udd-uploading.rst:92
3436+# 0419a82213944aa5b48804bb6534d32d
3437+msgid "If there are lots of merge conflicts you would probably want to ask the contributor to fix them up. See the next section to learn how to cancel a pending merge."
3438+msgstr ""
3439+
3440+#: ../ubuntu-packaging-guide/udd-uploading.rst:96
3441+# 0e05452bf9e74469a5de534b92482d86
3442+msgid "But if the changes look good, commit and then follow the rest of the uploading process::"
3443+msgstr ""
3444+
3445+#: ../ubuntu-packaging-guide/udd-uploading.rst:103
3446+# 4397bec4fb934bc89cbcb5935485c0eb
3447+msgid "Canceling an upload"
3448+msgstr ""
3449+
3450+#: ../ubuntu-packaging-guide/udd-uploading.rst:105
3451+# ccfa3957ac2b47b48e4604768f4af77b
3452+msgid "At any time before you `dput` the source package you can decide to cancel an upload and revert the changes::"
3453+msgstr ""
3454+
3455+#: ../ubuntu-packaging-guide/udd-uploading.rst:110
3456+# 8383aa45362241cbbffaefa37a7ef327
3457+msgid "You can do this if you notice something needs more work, or if you would like to ask the contributor to fix up conflicts when sponsoring something."
3458+msgstr ""
3459+
3460+#: ../ubuntu-packaging-guide/udd-uploading.rst:115
3461+# 4b45467e48e041d5999db11c24113b1e
3462+msgid "Sponsoring something and making your own changes"
3463+msgstr ""
3464+
3465+#: ../ubuntu-packaging-guide/udd-uploading.rst:117
3466+# fe4a60bef7e44faeaa7348763b2e8abb
3467+msgid "If you are going to sponsor someone's work, but you would like to roll it up with some changes of your own then you can merge their work in to a separate branch first."
3468+msgstr ""
3469+
3470+#: ../ubuntu-packaging-guide/udd-uploading.rst:121
3471+# 79453712dc2d473eb3c770c9d46d305b
3472+msgid "If you already have a branch where you are working on the package and you would like to include their changes, then simply run the ``bzr merge`` from that branch, instead of the checkout of the development package. You can then make the changes and commit, and then carry on with your changes to the package."
3473+msgstr ""
3474+
3475+#: ../ubuntu-packaging-guide/udd-uploading.rst:127
3476+# 2ad47a1cf0a040a7a39e87a520e87a30
3477+msgid "If you don't have an existing branch, but you know you would like to make changes based on what the contributor provides then you should start by grabbing their branch::"
3478+msgstr ""
3479+
3480+#: ../ubuntu-packaging-guide/udd-uploading.rst:133
3481+# a36da929444f4aa79853824f5fad7825
3482+msgid "then work in this new branch, and then merge it in to the main one and upload as if it was your own work. The contributor will still be mentioned in the changelog, and Bazaar will correctly attribute the changes they made to them."
3483+msgstr ""
3484+
3485+#: ../ubuntu-packaging-guide/udd-working.rst:3
3486+# 668df6a55d7d4262959051aff523f18a
3487+msgid "Working on a Package"
3488+msgstr ""
3489+
3490+#: ../ubuntu-packaging-guide/udd-working.rst:5
3491+# 325df7ee56fc4514946bee8d8d9833a3
3492+msgid "Once you have the source package branch in a shared repository, you'll want to create additional branches for the fixes or other work you plan to do. You'll want to base your branch off the package source branch for the distro release that you plan to upload to. Usually this is the current development release, but it may be older releases if you're backporting to an SRU for example."
3493+msgstr ""
3494+
3495+#: ../ubuntu-packaging-guide/udd-working.rst:13
3496+# 3bbdede17cae472d9f3cb41c285ec0a0
3497+msgid "Branching for a change"
3498+msgstr ""
3499+
3500+#: ../ubuntu-packaging-guide/udd-working.rst:15
3501+# 9932a9319bf948698e1efbac7555a3b6
3502+msgid "The first thing to do is to make sure your source package branch is up-to-date. It will be if you just checked it out, otherwise do this::"
3503+msgstr ""
3504+
3505+#: ../ubuntu-packaging-guide/udd-working.rst:21
3506+# 6e748312dd324667b18e6eb5cb0503ec
3507+msgid "Any updates to the package that have uploaded since your checkout will now be pulled in. You do not want to make changes to this branch. Instead, create a branch that will contain just the changes you're going to make. Let's say you want to fix bug 12345 for the Tomboy project. When you're in the shared repository you previously created for Tomboy, you can create your bug fix branch like this::"
3508+msgstr ""
3509+
3510+#: ../ubuntu-packaging-guide/udd-working.rst:31
3511+# fcc7556739024f40b1b51f39aa13ca55
3512+msgid "Now you can do all my work in the `bug-12345` directory. You make changes there as necessary, committing as you go along. This is just like doing any kind of software development with Bazaar. You can make intermediate commits as often as you like, and when your changes are finished, you will use the standard `dch` command (from the `devscripts` package)::"
3513+msgstr ""
3514+
3515+#: ../ubuntu-packaging-guide/udd-working.rst:39
3516+# 5faa703321cd4d9cb342e35caaab81ac
3517+msgid "This will drop you in an editor to add an entry to the `debian/changelog` file."
3518+msgstr ""
3519+
3520+#: ../ubuntu-packaging-guide/udd-working.rst:44
3521+# 6dc1cbcab4874dc589194be12f2d232e
3522+msgid "When you added your `debian/changelog` entry, you should have included a bug fix tag that indicated which Launchpad bug issue you're fixing. The format of this textual tag is pretty strict: ``LP: #12345``. The space between the ``:`` and the ``#`` is required and of course you should use the actual bug number that you're fixing. Your `debian/changelog` entry might look something like::"
3523+msgstr ""
3524+
3525+#: ../ubuntu-packaging-guide/udd-working.rst:57
3526+# da1d850b11fe4bb485d5be846264f366
3527+msgid "Commit with the normal::"
3528+msgstr ""
3529+
3530+#: ../ubuntu-packaging-guide/udd-working.rst:61
3531+# 4536113fa1c745dd9e502d526185f8ed
3532+msgid "A hook in bzr-builddeb will use the debian/changelog text as the commit message and set the tag to mark bug #12345 as fixed."
3533+msgstr ""
3534+
3535+#: ../ubuntu-packaging-guide/udd-working.rst:64
3536+# 9f3672cba68a4714ad6a5deacb93dc6e
3537+msgid "This only works with bzr-builddeb 2.7.5 and bzr 2.4, for older versions use `debcommit`."
3538+msgstr ""
3539+
3540+#: ../ubuntu-packaging-guide/udd-working.rst:71
3541+# 86ee6fff8e524ab1bac18e701df02f1b
3542+msgid "Along the way, you'll want to build your branch so that you can test it to make sure it does actually fix the bug."
3543+msgstr ""
3544+
3545+#: ../ubuntu-packaging-guide/udd-working.rst:74
3546+# 98afbf48360941e5b164fa1d32a48659
3547+msgid "In order to build the package you can use the `bzr builddeb` command from the `bzr-builddeb` package. You can build a source package with::"
3548+msgstr ""
3549+
3550+#: ../ubuntu-packaging-guide/udd-working.rst:79
3551+# e6bd918c14214ff4926e67edf70e2ecf
3552+msgid "(`bd` is an alias for `builddeb`.) You can leave the package unsigned by appending `-- -uc -us` to the command."
3553+msgstr ""
3554+
3555+#: ../ubuntu-packaging-guide/udd-working.rst:82
3556+# c4d3a439bc0443f5b843f22078807d77
3557+msgid "It is also possible to use your normal tools, as long as they are able to strip the .bzr directories from the package, e.g.::"
3558+msgstr ""
3559+
3560+#: ../ubuntu-packaging-guide/udd-working.rst:87
3561+# eff4ddb86f804ce2a5686727949160e0
3562+msgid "If you ever see an error related to trying to build a native package without a tarball, check to see if there is a `.bzr-builddeb/default.conf` file erroneously specifying the package as native. If the changelog version has a dash in it, then it's not a native package, so remove the configuration file. Note that while `bzr builddeb` has a `--native` switch, it does not have a `--no-native` switch."
3563+msgstr ""
3564+
3565+#: ../ubuntu-packaging-guide/udd-working.rst:94
3566+# d006ba6b5e3946e8a3778fa2ec263b31
3567+msgid "Once you've got the source package, you can build it as normal with ``pbuilder-dist`` (or ``pbuilder`` or `sbuild`_)."
3568+msgstr ""
3569+
3570
3571=== added file 'po/ubuntu-packaging-guide.pot'
3572--- po/ubuntu-packaging-guide.pot 1970-01-01 00:00:00 +0000
3573+++ po/ubuntu-packaging-guide.pot 2012-03-20 20:48:20 +0000
3574@@ -0,0 +1,3182 @@
3575+# SOME DESCRIPTIVE TITLE.
3576+# Copyright (C) 2010-2012, Ubuntu Developers
3577+# This file is distributed under the same license as the ubuntu-packaging-guide package.
3578+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
3579+#
3580+#, fuzzy
3581+msgid ""
3582+msgstr ""
3583+"Project-Id-Version: ubuntu-packaging-guide 0.1\n"
3584+"Report-Msgid-Bugs-To: \n"
3585+"POT-Creation-Date: 2012-02-29 17:52\n"
3586+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
3587+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
3588+"Language-Team: LANGUAGE <LL@li.org>\n"
3589+"MIME-Version: 1.0\n"
3590+"Content-Type: text/plain; charset=UTF-8\n"
3591+"Content-Transfer-Encoding: 8bit\n"
3592+
3593+#: ../ubuntu-packaging-guide/chroots.rst:3
3594+# d6c7ecbd606c4b9282b23708db85f9b5
3595+msgid "Using Chroots"
3596+msgstr ""
3597+
3598+#: ../ubuntu-packaging-guide/chroots.rst:5
3599+# c2a9180a73924eb0b652907be2585c5d
3600+msgid "If you are running one version of Ubuntu but working on packages for another versions you can create the environment of the other version with a ``chroot``."
3601+msgstr ""
3602+
3603+#: ../ubuntu-packaging-guide/chroots.rst:9
3604+# 6634399d63e843f4b72b0f770fafd076
3605+msgid "A ``chroot`` allows you to have a full filesystem from another distribution which you can work in quite normally. It avoids the overhead of running a full virtual machine."
3606+msgstr ""
3607+
3608+#: ../ubuntu-packaging-guide/chroots.rst:14
3609+# feb922fa269d4d50913b3692dea2800f
3610+msgid "Creating a Chroot"
3611+msgstr ""
3612+
3613+#: ../ubuntu-packaging-guide/chroots.rst:16
3614+# 84f92237b55541a2b463749f2521ca05
3615+msgid "Use the command ``debootstrap`` to create a new chroot::"
3616+msgstr ""
3617+
3618+#: ../ubuntu-packaging-guide/chroots.rst:20
3619+# 9208c7dbf8d84b5eb0fd24fab308ff5c
3620+msgid "This will create a directory ``oneiric`` and install a minimal oneiric system into it."
3621+msgstr ""
3622+
3623+#: ../ubuntu-packaging-guide/chroots.rst:23
3624+# 2f24711099184a0ba8f80c20edc1adc2
3625+msgid "If your version of ``debootstrap`` does not know about oneiric you can try upgrading to the version in ``backports``."
3626+msgstr ""
3627+
3628+#: ../ubuntu-packaging-guide/chroots.rst:26
3629+# 0575a501ac4448359c69b30b55550435
3630+msgid "You can then work inside the chroot::"
3631+msgstr ""
3632+
3633+#: ../ubuntu-packaging-guide/chroots.rst:30
3634+# 6b1f042f6de1476db33347866860441c
3635+msgid "Where you can install or remove any package you wish without affecting your main system."
3636+msgstr ""
3637+
3638+#: ../ubuntu-packaging-guide/chroots.rst:33
3639+# 9536d8f2c01e43648648496a446eeb6e
3640+msgid "You might want to copy your GPG/ssh keys and Bazaar configuration into the chroot so you can access and sign packages directly."
3641+msgstr ""
3642+
3643+#: ../ubuntu-packaging-guide/chroots.rst:36
3644+# e6d516f40fee4cc2972525ec9b13615e
3645+msgid "$ sudo mkdir oneiric/home/<username> $ sudo cp -r ~/.gnupg ~/.ssh ~/.bazaar oneiric/home/<username>"
3646+msgstr ""
3647+
3648+#: ../ubuntu-packaging-guide/chroots.rst:39
3649+# ed82e18debb24933ad3b49492b196442
3650+msgid "To stop apt and other programs complaining about missing locales you can install your relevant language pack::"
3651+msgstr ""
3652+
3653+#: ../ubuntu-packaging-guide/chroots.rst:44
3654+# 7d9703bd6d9148daa5980a104d8d13ef
3655+msgid "If you want to run X programs you will need to bind the /tmp directory into the chroot, from outside the chroot run::"
3656+msgstr ""
3657+
3658+#: ../ubuntu-packaging-guide/chroots.rst:50
3659+# 3c056ca4d3b54c53bca74c2cc2025835
3660+msgid "Some programs may need you to bind /dev or /proc."
3661+msgstr ""
3662+
3663+#: ../ubuntu-packaging-guide/chroots.rst:52
3664+# 7164d56709d64a9e83edc09bf710fce7
3665+msgid "For more information on chroots see our `Debootstrap Chroot wiki page`_."
3666+msgstr ""
3667+
3668+#: ../ubuntu-packaging-guide/chroots.rst:55
3669+# 26aacfbeebe4473f9e1244c3c974b6ff
3670+msgid "Alternatives"
3671+msgstr ""
3672+
3673+#: ../ubuntu-packaging-guide/chroots.rst:57
3674+# f085504840904fcb995131456d3036d7
3675+msgid "SBuild is a system similar to PBuilder for creating an environment to run test package builds in. It closer matches that used by Launchpad for building packages but takes some more setup compared to PBuilder. See `the Security Team Build Environment wiki page`_ for a full explanation."
3676+msgstr ""
3677+
3678+#: ../ubuntu-packaging-guide/chroots.rst:59
3679+# 9fa7e581df034a33a4503a7a41b37017
3680+msgid "Full virtual machines can be useful for packaging and testing programmes. TestDrive is a program to automate syncing and running daily ISO images, see `the TestDrive wiki page`_ for more information."
3681+msgstr ""
3682+
3683+#: ../ubuntu-packaging-guide/chroots.rst:63
3684+# 112cec755e0d4ac5a0e1e20df59807f8
3685+msgid "You can also set up pbuilder to pause when it comes across a build failure. Copy C10shell from /usr/share/doc/pbuilder/examples into a directory and use the --hookdir= argument to point to it."
3686+msgstr ""
3687+
3688+#: ../ubuntu-packaging-guide/chroots.rst:67
3689+# 1367b95423434ae9b8d2687c8c100771
3690+msgid "Amazon's `EC2 cloud computers`_ allow you to hire a computer paying a few US cents per hour, you can set up Ubuntu machines of any supported version and package on those. This is useful when you want to compile many packages at the same time or to overcome bandwidth restraints."
3691+msgstr ""
3692+
3693+#: ../ubuntu-packaging-guide/communication.rst:3
3694+# 607298b09c134c8497b9dd820a18456f
3695+msgid "Communication in Ubuntu Development"
3696+msgstr ""
3697+
3698+#: ../ubuntu-packaging-guide/communication.rst:5
3699+# 02e7427cdd1a4e48b9f0dfa256715944
3700+msgid "In a project where thousands of lines of code are changed, lots of decisions are made and hundreds of people interact every day, it is important to communicate effectively."
3701+msgstr ""
3702+
3703+#: ../ubuntu-packaging-guide/communication.rst:10
3704+# 8dff4e5170734f698bbb51c6807b7dcf
3705+msgid "Mailing lists"
3706+msgstr ""
3707+
3708+#: ../ubuntu-packaging-guide/communication.rst:12
3709+# 7bdd3f8f13b34307a06a05656c94760b
3710+msgid "Mailing lists are a very important tool if you want to communicate ideas to a broader team and make sure that you reach everybody, even across timezones."
3711+msgstr ""
3712+
3713+#: ../ubuntu-packaging-guide/communication.rst:16
3714+# ec54a70a969342e58399443508c91e33
3715+msgid "In terms of development, these are the most important ones:"
3716+msgstr ""
3717+
3718+#: ../ubuntu-packaging-guide/communication.rst:18
3719+# c583284d21a5478e973448d96344c720
3720+msgid "https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-announce (announce-only, the most important development announcements go here)"
3721+msgstr ""
3722+
3723+#: ../ubuntu-packaging-guide/communication.rst:20
3724+# 187731122f5045a09748d70e00456b4c
3725+msgid "https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel (general Ubuntu development discussion)"
3726+msgstr ""
3727+
3728+#: ../ubuntu-packaging-guide/communication.rst:22
3729+# 38f45dd72cfd4f64bc0e64af440c45c2
3730+msgid "https://lists.ubuntu.com/mailman/listinfo/ubuntu-motu (MOTU Team discussion, get help with packaging)"
3731+msgstr ""
3732+
3733+#: ../ubuntu-packaging-guide/communication.rst:27
3734+# bcf8bf4cfd7d44e79964fc504e3dcbcf
3735+msgid "IRC Channels"
3736+msgstr ""
3737+
3738+#: ../ubuntu-packaging-guide/communication.rst:29
3739+# 1640a1e73721469dbb00fb44535008f2
3740+msgid "For real-time discussions, please connect to irc.freenode.net and join one or any of these channels:"
3741+msgstr ""
3742+
3743+#: ../ubuntu-packaging-guide/communication.rst:32
3744+# 54b7cb96eed649698da71070bdcec51b
3745+msgid "#ubuntu-devel (for general development discussion)"
3746+msgstr ""
3747+
3748+#: ../ubuntu-packaging-guide/communication.rst:33
3749+# 9d87672ae32043ec8c0a9f2bca0b7dd4
3750+msgid "#ubuntu-motu (for MOTU team discussion and generally getting help)"
3751+msgstr ""
3752+
3753+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:2
3754+# 89800d29a2d548768207920d6fb6d7b3
3755+msgid "Basic Overview of the ``debian/`` Directory"
3756+msgstr ""
3757+
3758+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:4
3759+# 7d1e060c05644770b508535c347508a1
3760+msgid "This article will briefly explain the different files important to the packaging of Ubuntu packages which are contained in the ``debian/`` directory. The most important of them are ``changelog``, ``control``, ``copyright``, and ``rules``. These are required for all packages. A number of additional files in the ``debian/`` may be used in order to customize and configure the behavior of the package. Some of these files are discussed in this article, but this is not meant to be a complete list."
3761+msgstr ""
3762+
3763+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:13
3764+# 3021836f0c23449690b60757ce61172a
3765+msgid "The changelog"
3766+msgstr ""
3767+
3768+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:15
3769+# 31bd62153b0d408bb34738128c941836
3770+msgid "This file is, as its name implies, a listing of the changes made in each version. It has a specific format that gives the package name, version, distribution, changes, and who made the changes at a given time. If you have a GPG key (see: :doc:`Getting set up<./getting-set-up/>`), make sure to use the same name and email address in ``changelog`` as you have in your key. The following is a template ``changelog``::"
3771+msgstr ""
3772+
3773+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:31
3774+# 615d3cedb82c4d399c625d3986b6c75e
3775+msgid "The format (especially of the date) is important. The date should be in :rfc:`5322` format, which can be obtained by using the command ``date -R``. For convenience, the command ``dch`` may be used to edit changelog. It will update the date automatically."
3776+msgstr ""
3777+
3778+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:36
3779+# 3d1b93961c0a46a4b77382e11822dd08
3780+msgid "Minor bullet points are indicated by a dash \"-\", while major points use an asterisk \"*\"."
3781+msgstr ""
3782+
3783+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:39
3784+# 3c8e29b2b199417083f23153de4c94c4
3785+msgid "If you are packaging from scratch, ``dch --create`` (``dch`` is in the ``devscripts`` package) will create a standard ``debian/changelog`` for you."
3786+msgstr ""
3787+
3788+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:43
3789+# 0f6505553bb0491d9f0247c37f87cf9a
3790+msgid "Here is a sample ``changelog`` file for hello::"
3791+msgstr ""
3792+
3793+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:52
3794+# 3f1fd2f3b89a4e36aff77a170ba8c656
3795+msgid "Notice that the version has a ``-0ubuntu1`` appended to it, this is the distro revision, used so that the packaging can be updated (to fix bugs for example) with new uploads within the same source release version."
3796+msgstr ""
3797+
3798+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:56
3799+# 8500e33e8dae496d9bab351d1f1f0a0d
3800+msgid "Ubuntu and Debian have slightly different package versioning schemes to avoid conflicting packages with the same source version. If a Debian package has been changed in Ubuntu, it has ``ubuntuX`` (where ``X`` is the Ubuntu revision number) appended to the end of the Debian version. So if the Debian hello ``2.6-1`` package was changed by Ubuntu, the version string would be ``2.6-1ubuntu1``. If a package for the application does not exist in Debian, then the Debian revision is ``0`` (e.g. ``2.6-0ubuntu1``)."
3801+msgstr ""
3802+
3803+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:64
3804+# 8a1028b5e61244339a21d8fdf991cd73
3805+msgid "For further information, see the `changelog section (Section 4.4) <http://www.debian.org/doc/debian-policy/ch-source.html#s-dpkgchangelog>`_ of the Debian Policy Manual."
3806+msgstr ""
3807+
3808+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:70
3809+# 552ad1faf3814524bd838abbb1c6dfde
3810+msgid "The control file"
3811+msgstr ""
3812+
3813+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:72
3814+# 0a7a9cd926a5482090b334ae4eb5fa76
3815+msgid "The ``control`` file contains the information that the package manager (such as ``apt-get``, ``synaptic``, and ``adept``) uses, build-time dependencies, maintainer information, and much more."
3816+msgstr ""
3817+
3818+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:76
3819+# 2c2caa9a9fef495dad29ffa07ab52d4a
3820+msgid "For the Ubuntu ``hello`` package, the ``control`` file looks something like::"
3821+msgstr ""
3822+
3823+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:99
3824+# bd3ddeb9c3fd445ba6df546d419ec391
3825+msgid "The first paragraph describes the source package including the list of packages required to build the package from source in the ``Build-Depends`` field. It also contains some meta-information such as the maintainer's name, the version of Debian Policy that the package complies with, the location of the packaging version control repository, and the upstream home page."
3826+msgstr ""
3827+
3828+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:106
3829+# 93b0eec4843d4f819ba16118070fbbdf
3830+msgid "Note that in Ubuntu, we set the ``Maintainer`` field to a general address because anyone can change any package (this differs from Debian where changing packages is usually restricted to an individual or a team). Packages in Ubuntu should generally have the ``Maintainer`` field set to ``Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>``. If the Maintainer field is modified, the old value should be saved in the ``XSBC-Original-Maintainer`` field. This can be done automatically with the ``update-maintainer`` script available in the ``ubuntu-dev-tools`` package. For further information, see the `Debian Maintainer Field spec <https://wiki.ubuntu.com/DebianMaintainerField>`_ on the Ubuntu wiki."
3831+msgstr ""
3832+
3833+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:118
3834+# 00ca42e43f314557af47bf373ae50fe6
3835+msgid "Each additional paragraph describes a binary package to be built."
3836+msgstr ""
3837+
3838+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:120
3839+# a48f51f0912a4312a904ab5f40ced13d
3840+msgid "For further information, see the `control file section (Chapter 5) <http://www.debian.org/doc/debian-policy/ch-controlfields.html>`_ of the Debian Policy Manual."
3841+msgstr ""
3842+
3843+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:126
3844+# 870ce0ac216c4fd8a10aa642d5a8ee12
3845+msgid "The copyright file"
3846+msgstr ""
3847+
3848+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:128
3849+# a8f880bcb0174968b217b52dfc303a34
3850+msgid "This file gives the copyright information for both the upstream source and the packaging. Ubuntu and `Debian Policy (Section 12.5) <http://www.debian.org/doc/debian-policy/ch-docs.html#s-copyrightfile>`_ require that each package installs a verbatim copy of its copyright and license information to ``/usr/share/doc/$(package_name)/copyright``."
3851+msgstr ""
3852+
3853+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:134
3854+# 73c9109a50ce4e2c8d6ce22c64df57dd
3855+msgid "Generally, copyright information is found in the ``COPYING`` file in the program's source directory. This file should include such information as the names of the author and the packager, the URL from which the source came, a Copyright line with the year and copyright holder, and the text of the copyright itself. An example template would be::"
3856+msgstr ""
3857+
3858+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:176
3859+# 7a2e84d5a9304d2fb327fc2d39a75a45
3860+msgid "This example follows the `Machine-readable debian/copyright <http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/>`_ format. You are encouraged to use this format as well."
3861+msgstr ""
3862+
3863+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:182
3864+# 7c0fe27bc8fa4cb192be460e57dde489
3865+msgid "The rules file"
3866+msgstr ""
3867+
3868+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:184
3869+# 7c9e2edb563c4fe894feeae0b17007c7
3870+msgid "The last file we need to look at is ``rules``. This does all the work for creating our package. It is a Makefile with targets to compile and install the application, then create the ``.deb`` file from the installed files. It also has a target to clean up all the build files so you end up with just a source package again."
3871+msgstr ""
3872+
3873+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:192
3874+# 299ff74602f94f758774713d29895440
3875+msgid "Here is a simplified version of the rules file created by ``dh_make`` (which can be found in the ``dh-make`` package)::"
3876+msgstr ""
3877+
3878+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:204
3879+# 94a7b044a9824b13b733ffe6b5ee57b5
3880+msgid "Let us go through this file in some detail. What this does is pass every build target that ``debian/rules`` is called with as an argument to ``/usr/bin/dh``, which itself will call all the necessary ``dh_*`` commands."
3881+msgstr ""
3882+
3883+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:208
3884+# de59039f8bd245d7971edf916d93a839
3885+msgid "``dh`` runs a sequence of debhelper commands. The supported sequences correspond to the targets of a ``debian/rules`` file: \"build\", \"clean\", \"install\", \"binary-arch\", \"binary-indep\", and \"binary\". In order to see what commands are run in each target, run::"
3886+msgstr ""
3887+
3888+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:217
3889+# 7d39368e13994bedac97c6e43018bbb2
3890+msgid "Commands in the binary-indep sequence are passed the \"-i\" option to ensure they only work on binary independent packages, and commands in the binary-arch sequences are passed the \"-a\" option to ensure they only work on architecture dependent packages."
3891+msgstr ""
3892+
3893+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:222
3894+# 9aeaa267814c4f199174eb45833f25c2
3895+msgid "Each debhelper command will record when it's successfully run in ``debian/package.debhelper.log``. (Which dh_clean deletes.) So dh can tell which commands have already been run, for which packages, and skip running those commands again."
3896+msgstr ""
3897+
3898+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:227
3899+# efa044d38ff14eebb1b18fab6a0d594d
3900+msgid "Each time ``dh`` is run, it examines the log, and finds the last logged command that is in the specified sequence. It then continues with the next command in the sequence. The ``--until``, ``--before``, ``--after``, and ``--remaining`` options can override this behavior."
3901+msgstr ""
3902+
3903+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:232
3904+# d01ecd38632646f4b2bbaf1c8a08477d
3905+msgid "If ``debian/rules`` contains a target with a name like ``override_dh_command``, then when it gets to that command in the sequence, ``dh`` will run that target from the rules file, rather than running the actual command. The override target can then run the command with additional options, or run entirely different commands instead. (Note that to use this feature, you should Build-Depend on debhelper 7.0.50 or above.)"
3906+msgstr ""
3907+
3908+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:241
3909+# 3f4e235a68754876866310c506863f75
3910+msgid "Have a look at ``/usr/share/doc/debhelper/examples/`` and ``man dh`` for more examples. Also see `the rules section (Section 4.9) <http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules>`_ of the Debian Policy Manual."
3911+msgstr ""
3912+
3913+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:247
3914+# 909152843c7c41ffa14664f13cb0e23f
3915+msgid "Additional Files"
3916+msgstr ""
3917+
3918+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:250
3919+# f6ef0e8b2e5149f59850c2425711b97f
3920+msgid "The install file"
3921+msgstr ""
3922+
3923+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:252
3924+# 526e3303d4d44e27a3ceefc4764a54c9
3925+msgid "The ``install`` file is used by ``dh_install`` to install files into the binary package. It has two standard use cases:"
3926+msgstr ""
3927+
3928+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:255
3929+# 8f1de6bb1994494b807ec69b3af9e2ff
3930+msgid "To install files into your package that are not handled by the upstream build system."
3931+msgstr ""
3932+
3933+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:256
3934+# ecb71f5a256c4c0ab18dd78194054e68
3935+msgid "Splitting a single large source package into multiple binary packages."
3936+msgstr ""
3937+
3938+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:258
3939+# b540bec3330242b48b8b6c6f34cfacf6
3940+msgid "In the first case, the ``install`` file should have one line per file installed, specifying both the the file and the installation directory. For example, the following ``install`` file would install the script ``foo`` in the source package's root directory to ``usr/bin`` and a desktop file in the ``debian`` directory to ``usr/share/applications``::"
3941+msgstr ""
3942+
3943+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:269
3944+# cdd19fc100104c8ea9f0588252dfa8cb
3945+msgid "When a source package is producing multiple binary packages ``dh`` will install the files into ``debian/tmp`` rather than directly into ``debian/<package>``. Files installed into ``debian/tmp`` can then be moved into separate binary packages using multiple ``$package_name.install`` files. This is often done to split large amounts of architecture independent data out of architecture dependent packages and into ``Architecture: all`` packages. In this case, only the name of the files (or directories) to be installed are needed without the installation directory. For example, ``foo.install`` containing only the architecture dependent files might look like::"
3946+msgstr ""
3947+
3948+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:282
3949+# 490646dff688435088bd93ff30de6a8a
3950+msgid "While ``foo-common.install`` containing only the architecture independent file might look like::"
3951+msgstr ""
3952+
3953+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:290
3954+# ad5ae2bd9270403fb9916024351646c9
3955+msgid "This would create two binary packages, ``foo`` and ``foo-common``. Both would require their own paragraph in ``debian/control``."
3956+msgstr ""
3957+
3958+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:293
3959+# ed10a77119a6408b8a5f7bfebc53500e
3960+msgid "See ``man dh_install`` and the `install file section (Section 5.11) <http://www.debian.org/doc/manuals/maint-guide/dother.en.html#install>`_ of the Debian New Maintainers' Guide for additional details."
3961+msgstr ""
3962+
3963+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:298
3964+# 2bce7b3f508c457eb566c77de679acd7
3965+msgid "The watch file"
3966+msgstr ""
3967+
3968+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:300
3969+# d22412241e7349bfa19c0ca46d59fa93
3970+msgid "The ``debian/watch`` file allows us to check automatically for new upstream versions using the tool ``uscan`` found in the ``devscripts`` package. The first line of the watch file must be the format version (3, at the time of this writing), while the following lines contain any URLs to parse. For example::"
3971+msgstr ""
3972+
3973+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:309
3974+# 3fd98ffeb19c4a2290a8fec31eed399c
3975+msgid "Running ``uscan`` in the root source directory will now compare the upstream version number in ``debian/changelog`` with the latest available upstream version. If a new upstream version is found, it will be automatically downloaded. For example::"
3976+msgstr ""
3977+
3978+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:322
3979+# a4a1f7731ea6433ca39eecbd57af3120
3980+msgid "For further information, see ``man uscan`` and the `watch file section (Section 4.11) <http://www.debian.org/doc/debian-policy/ch-source.html#s-debianwatch>`_ of the Debian Policy Manual."
3981+msgstr ""
3982+
3983+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:326
3984+# 703b5d062b5c41e5a60cf8801b69b893
3985+msgid "For a list of packages where the ``watch`` file reports they are not in sync with upstream see `Ubuntu External Health Status <http://qa.ubuntuwire.org/uehs/no_updated.html>`_."
3986+msgstr ""
3987+
3988+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:331
3989+# faa634aa8992448d86ad70c8669ceee1
3990+msgid "The source/format file"
3991+msgstr ""
3992+
3993+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:333
3994+# a348a6a009424e0fa49a866e129573a2
3995+msgid "This file indicates the format of the source package. It should contain a single line indicating the desired format:"
3996+msgstr ""
3997+
3998+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:336
3999+# 3d75a73a1fcd4342ab1fe865edf49644
4000+msgid "``3.0 (native)`` for Debian native packages (no upstream version)"
4001+msgstr ""
4002+
4003+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:338
4004+# fd11f4ebad4d45bcbac715f3d8d4cc92
4005+msgid "``3.0 (quilt)`` for packages with a separate upstream tarball"
4006+msgstr ""
4007+
4008+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:340
4009+# 1293ceef3ce04d30b640542aec2b476c
4010+msgid "``1.0`` for packages wishing to explicitly declare the default format"
4011+msgstr ""
4012+
4013+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:342
4014+# 4e5d823b97ab4704aba10fb129ed0106
4015+msgid "Currently, the package source format will default to 1.0 if this file does not exist. You can make this explicit in the source/format file. If you choose not to use this file to define the source format, Lintian will warn about the missing file. This warning is informational only and may be safely ignored."
4016+msgstr ""
4017+
4018+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:347
4019+# d7047d3e7c22489baedfec02eea21f25
4020+msgid "You are encouraged to use the newer 3.0 source format. It provides a number of new features:"
4021+msgstr ""
4022+
4023+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:350
4024+# bc4e7971f98848ae9f1fb3fd8ee97ace
4025+msgid "Support for additional compression formats: bzip2, lzma and xz"
4026+msgstr ""
4027+
4028+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:352
4029+# ddca8f575fac40e09adebd6d128ff676
4030+msgid "Support for multiple upstream tarballs"
4031+msgstr ""
4032+
4033+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:354
4034+# aded08ffbdb7449d88dd6010fd97766f
4035+msgid "Not necessary to repack the upstream tarball to strip the debian directory"
4036+msgstr ""
4037+
4038+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:356
4039+# b0f4d5d0c68e47de9ed8836f20a0e8be
4040+msgid "Debian-specific changes are no longer stored in a single .diff.gz but in multiple patches compatible with quilt under ``debian/patches/``"
4041+msgstr ""
4042+
4043+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:358
4044+# 39b0c8ccca7e48b7af1af09d580e9f58
4045+msgid "http://wiki.debian.org/Projects/DebSrc3.0 summarizes additional information concerning the switch to the 3.0 source package formats."
4046+msgstr ""
4047+
4048+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:361
4049+# 9d2f31ea080c47109ce2cdae3e87f14b
4050+msgid "See ``man dpkg-source`` and the `source/format section (Section 5.21) <http://www.debian.org/doc/manuals/maint-guide/dother.en.html#sourcef>`_ of the Debian New Maintainers' Guide for additional details."
4051+msgstr ""
4052+
4053+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:366
4054+# 62fbf7d7bdcb49e782e64f2623b6f273
4055+msgid "Additional Resources"
4056+msgstr ""
4057+
4058+#: ../ubuntu-packaging-guide/debian-dir-overview.rst:368
4059+# 039aa564015a48bda02c00b97d1ae2f3
4060+msgid "In addition to the links to the Debian Policy Manual in each section above, the Debian New Maintainers' Guide has more detailed descriptions of each file. `Chapter 4, \"Required files under the debian directory\" <http://www.debian.org/doc/maint-guide/dreq.en.html>`_ further discusses the control, changelog, copyright and rules files. `Chapter 5, \"Other files under the debian directory\" <http://www.debian.org/doc/maint-guide/dother.en.html>`_ discusses additional files that may be used."
4061+msgstr ""
4062+
4063+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:3
4064+# 4be28eeaaecb4fffa9bcfb62c8828b58
4065+msgid "Fixing a bug in Ubuntu"
4066+msgstr ""
4067+
4068+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:6
4069+#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:9
4070+# 5973d64df73b4f8593c75fcac478a00e
4071+# e0956744ffbc47c08a5bb87b139bb113
4072+msgid "Introduction"
4073+msgstr ""
4074+
4075+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:8
4076+# d4425948fa1e4b4fa3552113dc4dd00d
4077+msgid "If you followed the instructions to :doc:`get set up with Ubuntu Development<./getting-set-up>`, you should be all set and ready to go."
4078+msgstr ""
4079+
4080+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:11
4081+# 02b036432f59412c82aed419f79fdb8c
4082+msgid "..image:: |IMG|fixing-a-bug.png"
4083+msgstr ""
4084+
4085+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:13
4086+# 565e30b78a5c41b8990814dc8aaf9193
4087+msgid "As you can see in the image above, there is no surprises in the process of fixing bugs in Ubuntu: you found a problem, you get the code, work on the fix, test it, push your changes to Launchpad and ask for it to be reviewed and merged. In this guide we will go through all the necessary steps one by one."
4088+msgstr ""
4089+
4090+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:20
4091+# 65a1fad6a3d04bbf8fc8932a8dbf6061
4092+msgid "Finding the problem"
4093+msgstr ""
4094+
4095+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:22
4096+# e8e70d62917543ed8b9b8f081ba09518
4097+msgid "There are a lot of different ways to find things to work on. It might be a bug report you are encountering yourself (which gives you a good opportunity to test the fix), or a problem you noted elsewhere, maybe in a bug report."
4098+msgstr ""
4099+
4100+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:26
4101+# 1c114b6ed4044179acbfa298d17e8687
4102+msgid "`Harvest <http://harvest.ubuntu.com/>`_ is where we keep track of various TODO lists regarding Ubuntu development. It lists bugs that were fixed upstream or in Debian already, lists small bugs (we call them 'bitesize'), and so on. Check it out and find your first bug to work on."
4103+msgstr ""
4104+
4105+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:35
4106+# b454c63458594749aa09f9e587ed24a7
4107+msgid "Figuring out what to fix"
4108+msgstr ""
4109+
4110+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:37
4111+# e80c8c6721fe41ddb9d3976bea810f18
4112+msgid "If you don't know the source package containing the code that has the problem, but you do know the path to the affected program on your system, you can discover the source package that you'll need to work on."
4113+msgstr ""
4114+
4115+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:41
4116+# 4726f96b219c4bfeb111d18b723e771e
4117+msgid "Let's say you've found a bug in Tomboy, a note taking desktop application. The Tomboy application can be started by running ``/usr/bin/tomboy`` on the command line. To find the binary package containing this application, use this command::"
4118+msgstr ""
4119+
4120+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:48
4121+# dbf4f211a56f4f79b15bf42c6a835050
4122+msgid "This would print out::"
4123+msgstr ""
4124+
4125+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:52
4126+# 682b18dbdfe142d2affc3e04e843783f
4127+msgid "Note that the part preceding the colon is the binary package name. It's often the case that the source package and binary package will have different names. This is most common when a single source package is used to build multiple different binary packages. To find the source package for a particular binary package, type::"
4128+msgstr ""
4129+
4130+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:64
4131+# b7321dfe18ed434689e1617b5ad1b575
4132+msgid "Getting the code"
4133+msgstr ""
4134+
4135+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:66
4136+# a88040229e1343e3a881389f2388861f
4137+msgid "Once you know the source package to work on, you will want to get a copy of the code on your system, so that you can debug it. In Ubuntu Distributed Development this is done by :ref:`*branching* the source package <branching>` branch corresponding to the source package. Launchpad maintains source package branches for all the packages in Ubuntu."
4138+msgstr ""
4139+
4140+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:72
4141+# 92bb0cef4a5a4924afaff6a5bd97394f
4142+msgid "Once you've got a local branch of the source package, you can investigate the bug, create a fix, and upload your proposed fix to Launchpad, in the form of a Bazaar branch. When you are happy with your fix, you can :ref:`submit a *merge proposal* <merge-proposal>`, which asks other Ubuntu developers to review and approve your change. If they agree with your changes, an Ubuntu developer will upload the new version of the package to Ubuntu so that everyone gets the benefit of your excellent fix - and you get a little bit of credit. You're now on your way to becoming an Ubuntu developer!"
4143+msgstr ""
4144+
4145+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:81
4146+# 18ebcba0d9804cdcbd3d7b679124afba
4147+msgid "We'll describe specifics on how to branch the code, push your fix, and request a review in the following sections."
4148+msgstr ""
4149+
4150+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:86
4151+# e8950446f9d643f9a88454cb13406165
4152+msgid "Work on a fix"
4153+msgstr ""
4154+
4155+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:88
4156+# 0b597e2df21d4ffb9082682062b35f5b
4157+msgid "There are entire books written about finding bugs, fixing them, testing them, etc. If you are completely new to programming, try to fix easy bugs such as obvious typos first. Try to keep changes as minimal as possible and document your change and assumptions clearly."
4158+msgstr ""
4159+
4160+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:93
4161+# 1cad1f33d073486abd5bbd7950da19e1
4162+msgid "Before working on a fix yourself, make sure to investigate if nobody else has fixed it already or is currently working on a fix. Good sources to check are:"
4163+msgstr ""
4164+
4165+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:96
4166+# 9cd02b0b46194cb0a6e1c024c73d67bb
4167+msgid "Upstream (and Debian) bug tracker (open and closed bugs),"
4168+msgstr ""
4169+
4170+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:97
4171+# fe3658bb50d6453d839bae201ab3e0d3
4172+msgid "Upstream revision history (or newer release) might have fixed the problem,"
4173+msgstr ""
4174+
4175+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:98
4176+# dc982aac83c44804b15e226836d039fd
4177+msgid "bugs or package uploads of Debian or other distributions."
4178+msgstr ""
4179+
4180+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:103
4181+# 3d5234f7f891414eac096bc475484247
4182+msgid "You now want to create a patch which includes the fix. The command ``edit-patch`` is a simple way to add a patch to a package. Run::"
4183+msgstr ""
4184+
4185+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:108
4186+# e09e4812312c4fdc854bd3814b092ebb
4187+msgid "This will copy the packaging to a temporary directory. You can now edit files with a text editor or apply patches from upstream, for example::"
4188+msgstr ""
4189+
4190+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:113
4191+# 8e00895b4bf64119869e26ce978cb55b
4192+msgid "After editing the file type ``exit`` or press ``control-d`` to quit the temporary shell. The new patch will have been added into ``debian/patches``."
4193+msgstr ""
4194+
4195+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:118
4196+# a5e56006a7db42a2b5b976f351e1a93a
4197+msgid "Testing the fix"
4198+msgstr ""
4199+
4200+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:120
4201+# 29f45bb94cae448f9ff6bd53897237ab
4202+msgid "To build a test package with your changes, run these commands::"
4203+msgstr ""
4204+
4205+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:125
4206+# 6fd80448fb9b40668a73b68d9aa82ee9
4207+msgid "This will create a source package from the branch contents (``-us -uc`` will just omit the step to sign the source package) and ``pbuilder-dist`` will build the package from source for whatever ``release`` you choose."
4208+msgstr ""
4209+
4210+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:129
4211+# 7064dcf9f1ae4f49bacc8b5ebb79a4fb
4212+msgid "Once the build succeeds, install the package from ``~/pbuilder/<release>_result/`` (using ``sudo dpkg -i <package>_<version>.deb``). Then test to see if the bug is fixed."
4213+msgstr ""
4214+
4215+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:136
4216+# a498c34018d44bc083c421d3836bc292
4217+msgid "Documenting the fix"
4218+msgstr ""
4219+
4220+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:138
4221+# 284aad9da256489bb9541ef9c9ed8050
4222+msgid "It is very important to document your change sufficiently so developers who look at the code in the future won't have to guess what your reasoning was and what your assumptions were. Every Debian and Ubuntu package source includes ``debian/changelog``, where changes of each uploaded package are tracked."
4223+msgstr ""
4224+
4225+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:143
4226+# c560a925fc79452f85c60a462422febd
4227+msgid "The easiest way to update this is to run::"
4228+msgstr ""
4229+
4230+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:147
4231+# fc6305e6f22b4bbe8f7ae46d9d2d36fe
4232+msgid "This will add a boilerplate changelog entry for you and launch an editor where you can fill in the blanks. An example of this could be::"
4233+msgstr ""
4234+
4235+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:156
4236+# b4fcf5a54df94852b901b81d99177166
4237+msgid "``dch`` should fill out the first and last line of such a changelog entry for you already. Line 1 consists of the source package name, the version number, which Ubuntu release it is uploaded to, the urgency (which almost always is 'low'). The last line always contains the name, email address and timestamp (in :rfc:`5322` format) of the change."
4238+msgstr ""
4239+
4240+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:162
4241+# 245b3f4735b2450db24ddca21be8e504
4242+msgid "With that out of the way, let's focus on the actual changelog entry itself: it is very important to document:"
4243+msgstr ""
4244+
4245+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:165
4246+# 43f30ecd000741b2849656bfa9c6ae55
4247+msgid "where the change was done"
4248+msgstr ""
4249+
4250+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:166
4251+# 6aa10c8f84ff4278888e5edc11cfdf66
4252+msgid "what was changed"
4253+msgstr ""
4254+
4255+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:167
4256+# a48a34986f8248b891f819d4abcff85c
4257+msgid "where the discussion of the change happened"
4258+msgstr ""
4259+
4260+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:169
4261+# b5105651513148e58182645ef1350d2b
4262+msgid "In our (very sparse) example the last point is covered by ``(LP: #123456)`` which refers to Launchpad bug 123456. Bug reports or mailing list threads or specifications are usually good information to provide as a rationale for a change. As a bonus, if you use the ``LP: #<number>`` notation for Launchpad bugs, the bug will be automatically closed when the package is uploaded to Ubuntu."
4263+msgstr ""
4264+
4265+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:178
4266+# 7e3ca41954e44f68bcbe1755d6a53f74
4267+msgid "Committing the fix"
4268+msgstr ""
4269+
4270+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:180
4271+# 8931133984c348d5991fb0d11db638e0
4272+msgid "With the changelog entry written and saved, you can just run::"
4273+msgstr ""
4274+
4275+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:184
4276+# 694988e85f33437b9af1ab2c8a9192af
4277+msgid "and the change will be committed (locally) with your changelog entry as a commit message."
4278+msgstr ""
4279+
4280+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:187
4281+# c7c33ddc56cd406cb79afea806a24ab7
4282+msgid "To push it to Launchpad, as the remote branch name, you need to stick to the following nomenclature::"
4283+msgstr ""
4284+
4285+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:192
4286+# d43eb74f6725404a8e0c12ee36207d3d
4287+msgid "This could for example be::"
4288+msgstr ""
4289+
4290+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:196
4291+# 9c95cd25baca4246bf40816093dc7f7a
4292+msgid "So if you just run::"
4293+msgstr ""
4294+
4295+#: ../ubuntu-packaging-guide/fixing-a-bug.rst:201
4296+# 5aa8ae3e79484b43bf7f43d93010513b
4297+msgid "you should be all set. The push command should push it to Launchpad and the second command will open the Launchpad page of the remote branch in your browser. There find the \"(+) Propose for merging\" link, click it to get the change reviewed by somebody and included in Ubuntu."
4298+msgstr ""
4299+
4300+#: ../ubuntu-packaging-guide/getting-set-up.rst:3
4301+# 83f85e65560046f4b62f45e17b49a17a
4302+msgid "Getting Set Up"
4303+msgstr ""
4304+
4305+#: ../ubuntu-packaging-guide/getting-set-up.rst:5
4306+# a66b7a19ac434a5a909505514b2926ca
4307+msgid "There are a number of things you need to do to get started developing for Ubuntu. This article is designed to get your computer set up so that you can start working with packages, and upload your packages to Ubuntu's hosting platform, Launchpad. Here's what we'll cover:"
4308+msgstr ""
4309+
4310+#: ../ubuntu-packaging-guide/getting-set-up.rst:10
4311+# 086a9c5ecf2d449b82843d303d58a164
4312+msgid "Installing packaging-related software. This includes:"
4313+msgstr ""
4314+
4315+#: ../ubuntu-packaging-guide/getting-set-up.rst:12
4316+# 400b8ae2a4554bb484ea4554b8fdd56d
4317+msgid "Ubuntu-specific packaging utilities"
4318+msgstr ""
4319+
4320+#: ../ubuntu-packaging-guide/getting-set-up.rst:13
4321+# e062bc0cc3ed4294b33616a98d4a5a4d
4322+msgid "Encryption software so your work can be verified as being done by you"
4323+msgstr ""
4324+
4325+#: ../ubuntu-packaging-guide/getting-set-up.rst:14
4326+# 925d91caef104cb7afa6001f05680be9
4327+msgid "Additional encryption software so you can securely transfer files"
4328+msgstr ""
4329+
4330+#: ../ubuntu-packaging-guide/getting-set-up.rst:16
4331+# b0e396c2d5f4463c96d854f06c659d6a
4332+msgid "Creating and configuring your account on Launchpad"
4333+msgstr ""
4334+
4335+#: ../ubuntu-packaging-guide/getting-set-up.rst:17
4336+# 4d333df7195b41f6b125d660b2a1c300
4337+msgid "Setting up your development environment to help you do local builds of packages, interact with other developers, and propose your changes on Launchpad."
4338+msgstr ""
4339+
4340+#: ../ubuntu-packaging-guide/getting-set-up.rst:22
4341+# 9c69c6eea045429a8a34b6fe96139751
4342+msgid "It is advisable to do packaging work using the current development version of Ubuntu. Doing so will allow you to test changes in the same environment where those changes will actually be applied and used."
4343+msgstr ""
4344+
4345+#: ../ubuntu-packaging-guide/getting-set-up.rst:26
4346+# 7c484a283dd34e39a18323d9beac87f9
4347+msgid "Don't worry though, the `Ubuntu development release wiki page <https://wiki.ubuntu.com/UsingDevelopmentReleases>`_ shows a variety of ways to safely use the development release."
4348+msgstr ""
4349+
4350+#: ../ubuntu-packaging-guide/getting-set-up.rst:32
4351+# b98ebc64ff574a5dbf0bdbd1df7a6c8f
4352+msgid "Install basic packaging software"
4353+msgstr ""
4354+
4355+#: ../ubuntu-packaging-guide/getting-set-up.rst:34
4356+# 808a29c5f38f448eb25ca66e04792f0f
4357+msgid "There are a number of tools that will make your life as an Ubuntu developer much easier. You will encounter these tools later in this guide. To install most of the tools you will need run this command::"
4358+msgstr ""
4359+
4360+#: ../ubuntu-packaging-guide/getting-set-up.rst:41
4361+# fac16697cacf4355a80e8f5b88f324a0
4362+msgid "Note: Since Ubuntu 11.10 \"Oneiric Ocelot\" (or if you have Backports enabled on a currently supported release), the following command will install the above and other tools which are quite common in Ubuntu development::"
4363+msgstr ""
4364+
4365+#: ../ubuntu-packaging-guide/getting-set-up.rst:49
4366+# 49e40cea430146ec8c2692a2a6bcd425
4367+msgid "This command will install the following software:"
4368+msgstr ""
4369+
4370+#: ../ubuntu-packaging-guide/getting-set-up.rst:51
4371+# 4e959df03bee4ba6a973d4f2cbffec9d
4372+msgid "``gnupg`` -- `GNU Privacy Guard`_ contains tools you will need to create a cryptographic key with which you will sign files you want to upload to Launchpad."
4373+msgstr ""
4374+
4375+#: ../ubuntu-packaging-guide/getting-set-up.rst:54
4376+# 1c457996b9ff49cfb8720509a4314a6d
4377+msgid "``pbuilder`` -- a tool to do a reproducible builds of a package in a clean and isolated environment."
4378+msgstr ""
4379+
4380+#: ../ubuntu-packaging-guide/getting-set-up.rst:56
4381+# e9c0f3fd07be45c2928f88eb383771ed
4382+msgid "``ubuntu-dev-tools`` (and ``devscripts``, a direct dependency) -- a collection of tools that make many packaging tasks easier."
4383+msgstr ""
4384+
4385+#: ../ubuntu-packaging-guide/getting-set-up.rst:58
4386+# 29db292e4464422eb0e4e6222af33ef5
4387+msgid "``bzr-builddeb`` (and ``bzr``, a dependency) -- distributed version control with Bazaar, a new way of working with packages for Ubuntu that will make it easy for many developers to collaborate and work on the same code while keeping it trivial to merge each others work."
4388+msgstr ""
4389+
4390+#: ../ubuntu-packaging-guide/getting-set-up.rst:62
4391+# 9f5925a4d2014953af7c6070b31a157c
4392+msgid "``apt-file`` provides an easy way to find the binary package that contains a given file."
4393+msgstr ""
4394+
4395+#: ../ubuntu-packaging-guide/getting-set-up.rst:64
4396+# 2110c86d771140b7bc69c2958b28464d
4397+msgid "``apt-cache`` (part of the ``apt`` package) provides even more information about packages on Ubuntu."
4398+msgstr ""
4399+
4400+#: ../ubuntu-packaging-guide/getting-set-up.rst:69
4401+# 0a14b46fec014f97bd7557e4d9258941
4402+msgid "Create your GPG key"
4403+msgstr ""
4404+
4405+#: ../ubuntu-packaging-guide/getting-set-up.rst:71
4406+# 16d8e0261d5a48dfb0ff6aeede808b34
4407+msgid "GPG stands for `GNU Privacy Guard`_ and it implements the OpenPGP standard which allows you to sign and encrypt messages and files. This is useful for a number of purposes. In our case it is important that you can sign files with your key so they can be identified as something that you worked on. If you upload a source package to Launchpad, it will only accept the package if it can absolutely determine who uploaded the package."
4408+msgstr ""
4409+
4410+#: ../ubuntu-packaging-guide/getting-set-up.rst:78
4411+# c25b4a7c3abd47c4adab9c0d4a8f88e4
4412+msgid "To generate a new GPG key, run::"
4413+msgstr ""
4414+
4415+#: ../ubuntu-packaging-guide/getting-set-up.rst:82
4416+# 854929b1b9b74e56a91d8cdac1b6ccbf
4417+msgid "GPG will first ask you which kind of key you want to generate. Choosing the default (RSA and DSA) is fine. Next it will ask you about the keysize. The default (currently 2048) is fine, but 4096 is more secure. Afterward, it will ask you if you want it to expire the key at some stage. It is safe to say \"0\", which means the key will never expire. The last questions will be about your name and email address. Just pick the ones you are going to use for Ubuntu development here, you can add additional email addresses later on. Adding a comment is not necessary. Then you will have to set a passphrase, choose a safe one (a passphrase is just a password which is allowed to include spaces)."
4418+msgstr ""
4419+
4420+#: ../ubuntu-packaging-guide/getting-set-up.rst:92
4421+# c9411759e55c44f7b4ff04ab876850e9
4422+msgid "Now GPG will create a key for you, which can take a little bit of time; it needs random bytes, so if you give the system some work to do it will be just fine. Move the cursor around, type some paragraphs of random text, load some web page."
4423+msgstr ""
4424+
4425+#: ../ubuntu-packaging-guide/getting-set-up.rst:97
4426+# 671e66dd26de4cc19167919c4cacf056
4427+msgid "Once this is done, you will get a message similar to this one::"
4428+msgstr ""
4429+
4430+#: ../ubuntu-packaging-guide/getting-set-up.rst:104
4431+# fbcfbe47756f426092c3860dad3c1fec
4432+msgid "In this case ``43CDE61D`` is the *key ID*."
4433+msgstr ""
4434+
4435+#: ../ubuntu-packaging-guide/getting-set-up.rst:106
4436+# 5bcf72402a81478a8210db244d7a62f9
4437+msgid "Next, you need to upload the public part of your key to a keyserver so the world can identify messages and files as yours. To do so, enter::"
4438+msgstr ""
4439+
4440+#: ../ubuntu-packaging-guide/getting-set-up.rst:111
4441+# 457a5844d06c44969821537e48cdf762
4442+msgid "This will send your key to one keyserver, but a network of keyservers will automatically sync the key between themselves. Once this syncing is complete, your signed public key will be ready to verify your contributions around the world."
4443+msgstr ""
4444+
4445+#: ../ubuntu-packaging-guide/getting-set-up.rst:118
4446+# bbd6cfc0f36241b9afc8304a4955b10f
4447+msgid "Create your SSH key"
4448+msgstr ""
4449+
4450+#: ../ubuntu-packaging-guide/getting-set-up.rst:120
4451+# cbe44e54369c43ccbaf972bb10995704
4452+msgid "SSH_ stands for *Secure Shell*, and it is a protocol that allows you to exchange data in a secure way over a network. It is common to use SSH to access and open a shell on another computer, and to use it to securely transfer files. For our purposes, we will mainly be using SSH to securely upload source packages to Launchpad."
4453+msgstr ""
4454+
4455+#: ../ubuntu-packaging-guide/getting-set-up.rst:126
4456+# 15220156465043d89c0f0a526b3ae31d
4457+msgid "To generate an SSH key, enter::"
4458+msgstr ""
4459+
4460+#: ../ubuntu-packaging-guide/getting-set-up.rst:130
4461+# 4369607909e54d2eb28b701b18832582
4462+msgid "The default file name usually makes sense, so you can just leave it as it is. For security purposes, it is highly recommended that you use a passphrase."
4463+msgstr ""
4464+
4465+#: ../ubuntu-packaging-guide/getting-set-up.rst:135
4466+# 4709c05c499e4a29bd71f5f1aef90b23
4467+msgid "Set up pbuilder"
4468+msgstr ""
4469+
4470+#: ../ubuntu-packaging-guide/getting-set-up.rst:137
4471+# 74362386ed8340f2b5c45b2bdb9a08da
4472+msgid "``pbuilder`` allows you to build packages locally on your machine. It serves a couple of purposes:"
4473+msgstr ""
4474+
4475+#: ../ubuntu-packaging-guide/getting-set-up.rst:140
4476+# 93aa3aaf40b44beb8662c330374e4e50
4477+msgid "The build will be done in a minimal and clean environment. This helps you make sure your builds succeed in a reproducible way, but without modifying your local system"
4478+msgstr ""
4479+
4480+#: ../ubuntu-packaging-guide/getting-set-up.rst:143
4481+# 5169282689aa4be29c874e27633030f0
4482+msgid "There is no need to install all necessary *build dependencies* locally"
4483+msgstr ""
4484+
4485+#: ../ubuntu-packaging-guide/getting-set-up.rst:144
4486+# c97e8554b32d4e71965f1ff6479f13b6
4487+msgid "You can set up multiple instances for various Ubuntu and Debian releases"
4488+msgstr ""
4489+
4490+#: ../ubuntu-packaging-guide/getting-set-up.rst:146
4491+# 6a4d016f67b64cf3bbe9148306cbb3b8
4492+msgid "Setting ``pbuilder`` up is very easy, run::"
4493+msgstr ""
4494+
4495+#: ../ubuntu-packaging-guide/getting-set-up.rst:150
4496+# fa64536c0c324d27983772c20599b26c
4497+msgid "where <release> is for example `natty`, `maverick`, `lucid` or in the case of Debian maybe `sid`. This will take a while as it will download all the necessary packages for a \"minimal installation\". These will be cached though."
4498+msgstr ""
4499+
4500+#: ../ubuntu-packaging-guide/getting-set-up.rst:156
4501+# 5dc23eff94724361a73a59dea44289e7
4502+msgid "Get set up to work with Launchpad"
4503+msgstr ""
4504+
4505+#: ../ubuntu-packaging-guide/getting-set-up.rst:158
4506+# 95fadc8adf9f4a0e91bac3115a3d0cf1
4507+msgid "With a basic local configuration in place, your next step will be to configure your system to work with Launchpad. This section will focus on the following topics:"
4508+msgstr ""
4509+
4510+#: ../ubuntu-packaging-guide/getting-set-up.rst:162
4511+# b79f07693785483782ed6821e0a0b9ef
4512+msgid "What Launchpad is and creating a Launchpad account"
4513+msgstr ""
4514+
4515+#: ../ubuntu-packaging-guide/getting-set-up.rst:163
4516+# e32ac038b50b4d829f13044673ba85bc
4517+msgid "Uploading your GPG and SSH keys to Launchpad"
4518+msgstr ""
4519+
4520+#: ../ubuntu-packaging-guide/getting-set-up.rst:164
4521+# 50d201d98b2747bf9b900ebd2033d4b6
4522+msgid "Configuring Bazaar to work with Launchpad"
4523+msgstr ""
4524+
4525+#: ../ubuntu-packaging-guide/getting-set-up.rst:165
4526+# 2fcbff75feec47c890b29ae9a0accc58
4527+msgid "Configuring Bash to work with Bazaar"
4528+msgstr ""
4529+
4530+#: ../ubuntu-packaging-guide/getting-set-up.rst:169
4531+# 7d3092a6e1a142afa5c22a094e2be344
4532+msgid "About Launchpad"
4533+msgstr ""
4534+
4535+#: ../ubuntu-packaging-guide/getting-set-up.rst:171
4536+# c032fdb17ad44f8a9972c7b1160387dd
4537+msgid "Launchpad is the central piece of infrastructure we use in Ubuntu. It not only stores our packages and our code, but also things like translations, bug reports, and information about the people who work on Ubuntu and their team memberships. You will also use Launchpad to publish your proposed fixes, and get other Ubuntu developers to review and sponsor them."
4538+msgstr ""
4539+
4540+#: ../ubuntu-packaging-guide/getting-set-up.rst:177
4541+# ad9d175d99654dad8e2c830c4beecab0
4542+msgid "You will need to register with Launchpad and provide a minimal amount of information. This will allow you to download and upload code, submit bug reports, and more."
4543+msgstr ""
4544+
4545+#: ../ubuntu-packaging-guide/getting-set-up.rst:181
4546+# 0c25cf1d67e14ebc9621decebd78ef5c
4547+msgid "Besides hosting Ubuntu, Launchpad can host any Free Software project. For more information see the `Launchpad Help wiki <https://help.launchpad.net/>`_."
4548+msgstr ""
4549+
4550+#: ../ubuntu-packaging-guide/getting-set-up.rst:186
4551+# 1060bd4edaa345a9a90d8c2e34628202
4552+msgid "Get a Launchpad account"
4553+msgstr ""
4554+
4555+#: ../ubuntu-packaging-guide/getting-set-up.rst:188
4556+# 308e70601909430d842502f21e1589ad
4557+msgid "If you don't already have a Launchpad account, you can easily `create one`_. If you have a Launchpad account but cannot remember your Launchpad id, you can find this out by going to https://launchpad.net/~ and looking for the part after the `~` in the URL."
4558+msgstr ""
4559+
4560+#: ../ubuntu-packaging-guide/getting-set-up.rst:193
4561+# a0e1270b66884075a0074a83105aded1
4562+msgid "Launchpad's registration process will ask you to choose a display name. It is encouraged for you to use your real name here so that your Ubuntu developer colleagues will be able to get to know you better."
4563+msgstr ""
4564+
4565+#: ../ubuntu-packaging-guide/getting-set-up.rst:197
4566+# 7f4a08d3ce224e59b0d23ba2f4bc4b15
4567+msgid "When you register a new account, Launchpad will send you an email with a link you need to open in your browser in order to verify your email address. If you don't receive it, check in your spam folder."
4568+msgstr ""
4569+
4570+#: ../ubuntu-packaging-guide/getting-set-up.rst:201
4571+# ff7522539ab64385b5e3460fec3e6c7f
4572+msgid "`The new account help page <https://help.launchpad.net/YourAccount/NewAccount>`_ on Launchpad has more information about the process and additional settings you can change."
4573+msgstr ""
4574+
4575+#: ../ubuntu-packaging-guide/getting-set-up.rst:207
4576+# 8a4be4c66e1e4e4bbd19c1d319bb28bc
4577+msgid "Upload your GPG key to Launchpad"
4578+msgstr ""
4579+
4580+#: ../ubuntu-packaging-guide/getting-set-up.rst:209
4581+# 506b5b99e7ac4c87ae989c190b86e41a
4582+msgid "To find about your GPG fingerprint, run::"
4583+msgstr ""
4584+
4585+#: ../ubuntu-packaging-guide/getting-set-up.rst:213
4586+# 472d7ced0c4c4d6da22703585fa46fe7
4587+msgid "and it will print out something like::"
4588+msgstr ""
4589+
4590+#: ../ubuntu-packaging-guide/getting-set-up.rst:221
4591+# 0c821916735d4f45a78d52e91ef3239e
4592+msgid "Head to https://launchpad.net/~/+editpgpkeys and copy the \"Key fingerprint\" into the text box. In the case above this would be ``5C28 0144 FB08 91C0 2CF3 37AC 6F0B F90F 43CD E61D``. Now click on \"Import Key\"."
4593+msgstr ""
4594+
4595+#: ../ubuntu-packaging-guide/getting-set-up.rst:226
4596+# ec669b136a8c42269d9abfeb85d34c09
4597+msgid "Launchpad will use the fingerprint to check the Ubuntu key server for your key and, if successful, send you an encrypted email asking you to confirm the key import. Check your email account and read the email that Launchpad sent you. `If your email client supports OpenPGP encryption, it will prompt you for the password you chose for the key when GPG generated it. Enter the password, then click the link to confirm that the key is yours.`"
4598+msgstr ""
4599+
4600+#: ../ubuntu-packaging-guide/getting-set-up.rst:233
4601+# f08b21d4e43b485194ec184975a04f7f
4602+msgid "Launchpad encrypts the email, using your public key, so that it can be sure that the key is yours. If your email software does not support OpenPGP encryption, copy the encrypted email's contents, type ``gpg`` in your terminal, then paste the email contents into your terminal window."
4603+msgstr ""
4604+
4605+#: ../ubuntu-packaging-guide/getting-set-up.rst:238
4606+# b7455eb7f4da4959b24ef5339b994d19
4607+msgid "Back on the Launchpad website, use the Confirm button and Launchpad will complete the import of your OpenPGP key."
4608+msgstr ""
4609+
4610+#: ../ubuntu-packaging-guide/getting-set-up.rst:241
4611+# 8b0f15062c314bd5bc0578ab0db7233b
4612+msgid "Find more information at https://help.launchpad.net/YourAccount/ImportingYourPGPKey"
4613+msgstr ""
4614+
4615+#: ../ubuntu-packaging-guide/getting-set-up.rst:245
4616+# c7408c90022943d2b2adb9e67b8c079d
4617+msgid "Upload your SSH key to Launchpad"
4618+msgstr ""
4619+
4620+#: ../ubuntu-packaging-guide/getting-set-up.rst:247
4621+# d55a8885d648402ebc1c8bfa9de5b62a
4622+msgid "Open https://launchpad.net/~/+editsshkeys in a web browser, also open ``~/.ssh/id_rsa.pub`` in a text editor. This is the public part of your SSH key, so it is safe to share it with Launchpad. Copy the contents of the file and paste them into the text box on the web page that says \"Add an SSH key\". Now click \"Import Public Key\"."
4623+msgstr ""
4624+
4625+#: ../ubuntu-packaging-guide/getting-set-up.rst:253
4626+# d94df3105f334f17a6b8b4493abb7237
4627+msgid "For more information on this process, visit the `<creating an SSH keypair <https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair>`_ page on Launchpad."
4628+msgstr ""
4629+
4630+#: ../ubuntu-packaging-guide/getting-set-up.rst:259
4631+# 8452a24ce68f4df6ac5e44518ef879ad
4632+msgid "Configure Bazaar"
4633+msgstr ""
4634+
4635+#: ../ubuntu-packaging-guide/getting-set-up.rst:261
4636+# 2200087023b540598f73cba55e6d1e43
4637+msgid "Bazaar is the tool we use to store code changes in a logical way, to exchange proposed changes and merge them, even if development is done concurrently. It is used for the new Ubuntu Distributed Development method of working with Ubuntu packages."
4638+msgstr ""
4639+
4640+#: ../ubuntu-packaging-guide/getting-set-up.rst:266
4641+# 6809b71125db4a1c9a7039c20642d0c5
4642+msgid "To tell Bazaar who you are, simply run::"
4643+msgstr ""
4644+
4645+#: ../ubuntu-packaging-guide/getting-set-up.rst:271
4646+# a7bbc2cbc2104be08887d3f357de5253
4647+msgid "`whoami` will tell Bazaar which name and email address it should use for your commit messages. With `launchpad-login` you set your Launchpad ID. This way code that you publish in Launchpad will be associated with you."
4648+msgstr ""
4649+
4650+#: ../ubuntu-packaging-guide/getting-set-up.rst:275
4651+# b91245d32a2440a583e602e2b0c85ac3
4652+msgid "Note: If you can not remember the ID, go to https://launchpad.net/~ and see where it redirects you. The part after the \"~\" in the URL is your Launchpad ID.)"
4653+msgstr ""
4654+
4655+#: ../ubuntu-packaging-guide/getting-set-up.rst:281
4656+# e267401effd84ebe9fad680ad51c3cd9
4657+msgid "Configure your shell"
4658+msgstr ""
4659+
4660+#: ../ubuntu-packaging-guide/getting-set-up.rst:282
4661+# c497e7fe9aed473fac7283134a606445
4662+msgid "Similar to Bazaar, the Debian/Ubuntu packaging tools need to learn about you as well. Simply open your `~/.bashrc` in a text editor and add something like this to the bottom of it::"
4663+msgstr ""
4664+
4665+#: ../ubuntu-packaging-guide/getting-set-up.rst:289
4666+# f1400dd33613411caa2495b24cb8901b
4667+msgid "Now save the file and either restart your terminal or run::"
4668+msgstr ""
4669+
4670+#: ../ubuntu-packaging-guide/getting-set-up.rst:293
4671+# 71fcef52c0ce4c6a9f9e098c4f35cd1a
4672+msgid "(If you do not use the default shell, which is `bash`, please edit the configuration file for that shell accordingly.)"
4673+msgstr ""
4674+
4675+#: ../ubuntu-packaging-guide/index.rst:7
4676+# 2b2c79c0f4744aa6ac31ab4d14510523
4677+msgid "Ubuntu Packaging Guide"
4678+msgstr ""
4679+
4680+#: ../ubuntu-packaging-guide/index.rst:9
4681+# 2804b34604314864a75fcd88568b92f0
4682+msgid "Ubuntu is not only a free and open source operating system, its platform is also open and developed in a transparent fashion. The source code for every single component can be obtained easily and every single change to the Ubuntu platform can be reviewed."
4683+msgstr ""
4684+
4685+#: ../ubuntu-packaging-guide/index.rst:14
4686+# e4717243c36b4fbaa8a4ab4731b7c6a2
4687+msgid "This means you can actively get involved in improving it and the community of Ubuntu platform developers is always interested in helping peers getting started."
4688+msgstr ""
4689+
4690+#: ../ubuntu-packaging-guide/index.rst:18
4691+# a8931d21f1314e2abf31996f75be3676
4692+msgid "The guide is split up into two sections:"
4693+msgstr ""
4694+
4695+#: ../ubuntu-packaging-guide/index.rst:20
4696+# 4432017dc60141218901d1062a4db48d
4697+msgid "A list of articles based on tasks, things you want to get done."
4698+msgstr ""
4699+
4700+#: ../ubuntu-packaging-guide/index.rst:21
4701+# 0d65327272d34bd094988cd9f7ec6044
4702+msgid "A set of knowledge-base articles that dig deeper into specific bits of our tools and workflows."
4703+msgstr ""
4704+
4705+#: ../ubuntu-packaging-guide/index.rst:24
4706+# e9691f9962684fa2983959309c708dc6
4707+msgid "This guide focuses on the Ubuntu Distributed Development packaging method. This is a new way of packaging which uses Distributed Revision Control branches. It currently has some limitations which mean many teams in Ubuntu use :doc:`traditional packaging<./traditional-packaging>` methods. See the :doc:`UDD Introduction<./udd-intro>` page for an introduction to the differences."
4708+msgstr ""
4709+
4710+#: ../ubuntu-packaging-guide/index.rst:31
4711+# 35611cc67071493d95b0fd914f093f18
4712+msgid "Articles"
4713+msgstr ""
4714+
4715+#: ../ubuntu-packaging-guide/index.rst:46
4716+# 341532acc9554b0d9d4a83f5a043fdf9
4717+msgid "Knowledge Base"
4718+msgstr ""
4719+
4720+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:3
4721+# 795cb22fada7442f821a6d3640677ae7
4722+msgid "Introduction to Ubuntu Development"
4723+msgstr ""
4724+
4725+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:5
4726+# d1e2a2fc83084defb2029936d7af82db
4727+msgid "Ubuntu is made up of thousands of different components, written in many different programming languages. Every component - be it a software library, a tool or a graphical application - is available as a source package. Source packages in most cases consist of two parts: the actual source code and metadata. Metadata includes the dependencies of the package, copyright and licensing information, and instructions on how to build the package. Once this source package is compiled, the build process provides binary packages, which are the .deb files users can install."
4728+msgstr ""
4729+
4730+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:14
4731+# d092727879c148148df7ae3a396ba4c1
4732+msgid "Every time a new version of an application is released, or when someone makes a change to the source code that goes into Ubuntu, the source package must be uploaded to Launchpad's build machines to be compiled. The resulting binary packages then are distributed to the archive and its mirrors in different countries. The URLs in ``/etc/apt/sources.list`` point to an archive or mirror. Every day CD images are built for a selection of different Ubuntu flavours. Ubuntu Desktop, Ubuntu Server, Kubuntu and others specify a list of required packages that get on the CD. These CD images are then used for installation tests and provide the feedback for further release planning."
4733+msgstr ""
4734+
4735+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:24
4736+# 6e37b4d95d8541b7aa3011844140dfd8
4737+msgid "Ubuntu's development is very much dependent on the current stage of the release cycle. We release a new version of Ubuntu every six months, which is only possible because we have established strict freeze dates. With every freeze date that is reached developers are expected to make fewer, less intrusive changes. Feature Freeze is the first big freeze date after the first half of the cycle has passed. At this stage features must be largely implemented. The rest of the cycle is supposed to be focused on fixing bugs. After that the user interface, then the documentation, the kernel, etc. are frozen, then the beta release is put out which receives a lot of testing. From the beta release onwards, only critical bugs get fixed and a release candidate release is made and if it does not contain any serious problems, it becomes the final release."
4738+msgstr ""
4739+
4740+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:39
4741+# 3095f0dc21b845bd9adafbc230310de6
4742+msgid "Thousands of source packages, billions of lines of code, hundreds of contributors require a lot of communication and planning to maintain high standards of quality. At the beginning of each release cycle we have the Ubuntu Developer Summit where developers and contributors come together to plan the features of the next releases. Every feature is discussed by its stakeholders and a specification is written that contains detailed information about its assumptions, implementation, the necessary changes in other places, how to test it and so on. This is all done in an open and transparent fashion, so even if you can not attend the event in person, you can participate remotely and listen to a streamcast, chat with attendants and subscribe to changes of specifications, so you are always up to date."
4743+msgstr ""
4744+
4745+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:51
4746+# c2c9a07df8734bcd84811b0d08005493
4747+msgid "Not every single change can be discussed in a meeting though, particularly because Ubuntu relies on changes that are done in other projects. That is why contributors to Ubuntu constantly stay in touch. Most teams or projects use dedicated mailing lists to avoid too much unrelated noise. For more immediate coordination, developers and contributors use Internet Relay Chat (IRC). All discussions are open and public."
4748+msgstr ""
4749+
4750+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:58
4751+# 89290a1fefbc4e5a87353e069aeb79ac
4752+msgid "Another important tool regarding communication is bug reports. Whenever a defect is found in a package or piece of infrastructure, a bug report is filed in Launchpad. All information is collected in that report and its importance, status and assignee updated when necessary. This makes it an effective tool to stay on top of bugs in a package or project and organise the workload."
4753+msgstr ""
4754+
4755+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:65
4756+# 224c0402acf54540b6e21eb5498d8bf9
4757+msgid "Most of the software available through Ubuntu is not written by Ubuntu developers themselves. Most of it is written by developers of other Open Source projects and then integrated into Ubuntu. These projects are called \"Upstreams\", because their source code flows into Ubuntu, where we \"just\" integrate it. The relationship to Upstreams is critically important to Ubuntu. It is not just code that Ubuntu gets from Upstreams, but it is also that Upstreams get users, bug reports and patches from Ubuntu (and other distributions)."
4758+msgstr ""
4759+
4760+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:74
4761+# 7b06da07d99842fd9738c38140dd2a16
4762+msgid "The most important Upstream for Ubuntu is Debian. Debian is the distribution that Ubuntu is based on and many of the design decisions regarding the packaging infrastructure are made there. Traditionally, Debian has always had dedicated maintainers for every single package or dedicated maintenance teams. In Ubuntu there are teams that have an interest in a subset of packages too, and naturally every developer has a special area of expertise, but participation (and upload rights) generally is open to everyone who demonstrates ability and willingness."
4763+msgstr ""
4764+
4765+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:83
4766+# c04e0435ba0d4bb38160660e3cda4ca0
4767+msgid "Getting a change into Ubuntu as a new contributor is not as daunting as it seems and can be a very rewarding experience. It is not only about learning something new and exciting, but also about sharing the solution and solving a problem for millions of users out there."
4768+msgstr ""
4769+
4770+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:88
4771+# 72ea8fca34b04f5eb28aae4b06eaa638
4772+msgid "Open Source Development happens in a distributed world with different goals and different areas of focus. For example there might be the case that a particular Upstream might be interested in working on a new big feature while Ubuntu, because of the tight release schedule, might be interested in shipping a solid version with just an additional bug fix. That is why we make use of \"Distributed Development\", where code is being worked on in various branches that are merged with each other after code reviews and sufficient discussion."
4773+msgstr ""
4774+
4775+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:98
4776+# 38a1680f15f04e2785f959f32e8b7311
4777+msgid "In the example mentioned above it would make sense to ship Ubuntu with the existing version of the project, add the bugfix, get it into Upstream for their next release and ship that (if suitable) in the next Ubuntu release. It would be the best possible compromise and a situation where everybody wins."
4778+msgstr ""
4779+
4780+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:103
4781+# b1e0446cdaa9426cb9aa082ca826788c
4782+msgid "To fix a bug in Ubuntu, you would first get the source code for the package, then work on the fix, document it so it is easy to understand for other developers and users, then build the package to test it. After you have tested it, you can easily propose the change to be included in the current Ubuntu development release. A developer with upload rights will review it for you and then get it integrated into Ubuntu."
4783+msgstr ""
4784+
4785+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:112
4786+# fa9b32a2c49847f7b576db0fbf94036c
4787+msgid "When trying to find a solution it is usually a good idea to check with Upstream and see if the problem (or a possible solution) is known already and, if not, do your best to make the solution a concerted effort."
4788+msgstr ""
4789+
4790+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:116
4791+# 471fe59800924fc88bb010d19ea956f0
4792+msgid "Additional steps might involve getting the change backported to an older, still supported version of Ubuntu and forwarding it to Upstream."
4793+msgstr ""
4794+
4795+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:119
4796+# f36cfc93f9314451b2f5756d1652f425
4797+msgid "The most important requirements for success in Ubuntu development are: having a knack for \"making things work again,\" not being afraid to read documentation and ask questions, being a team player and enjoying some detective work."
4798+msgstr ""
4799+
4800+#: ../ubuntu-packaging-guide/introduction-to-ubuntu-development.rst:123
4801+# 7d209126020141168c019c68053e2abd
4802+msgid "Good places to ask your questions are ``ubuntu-motu@lists.ubuntu.com`` and ``#ubuntu-motu`` on ``irc.freenode.net``. You will easily find a lot of new friends and people with the same passion that you have: making the world a better place by making better Open Source software."
4803+msgstr ""
4804+
4805+#: ../ubuntu-packaging-guide/kde.rst:3
4806+# 993a9c1aa71f4aadadde6a86b5ef2ed3
4807+msgid "KDE Packaging"
4808+msgstr ""
4809+
4810+#: ../ubuntu-packaging-guide/kde.rst:5
4811+# f8f58e55f37f4abcaa7264f5fdc83903
4812+msgid "Packaging of KDE programmes in Ubuntu is managed by the Kubuntu and MOTU teams. You can contact the Kubuntu team on the `Kubuntu mailing list`_ and ``#kubuntu-devel`` Freenode IRC channl. More information about Kubuntu development is on the `Kubuntu wiki page`_."
4813+msgstr ""
4814+
4815+#: ../ubuntu-packaging-guide/kde.rst:10
4816+# dc2e9c6e5402441f85737795e60858fc
4817+msgid "Our packaging follows the practices of the ``Debian Qt/KDE Team`` and Debian KDE Extras Team. Most of our packages are derived from the packaging of these Debian teams."
4818+msgstr ""
4819+
4820+#: ../ubuntu-packaging-guide/kde.rst:15
4821+# a38db20adbbe4a7da13b3d8559127a47
4822+msgid "Patching Policy"
4823+msgstr ""
4824+
4825+#: ../ubuntu-packaging-guide/kde.rst:17
4826+# ac62cb4c0e664dd4b78c074e72f87171
4827+msgid "Kubuntu does not add patches to KDE programmes unless they come from the upstream authors or submitted upstream with the expectation they will be merged soon or we have consulted the issue with the upstream authors."
4828+msgstr ""
4829+
4830+#: ../ubuntu-packaging-guide/kde.rst:22
4831+# cb2134c6ba4346458b922470c90a372f
4832+msgid "Kubuntu does not change the branding of packages except where upstream expects this (such as the top left logo of the Kickoff menu) or to simplify (such as removing splash screens)."
4833+msgstr ""
4834+
4835+#: ../ubuntu-packaging-guide/kde.rst:27
4836+# d51900d276b44514b5d0c25d00914f01
4837+msgid "debian/rules"
4838+msgstr ""
4839+
4840+#: ../ubuntu-packaging-guide/kde.rst:29
4841+# 1311b27e75554f01874d2417d4a5b9bf
4842+msgid "Debian packages include some additions to the basic Debhelper usage. These are kept in the ``pkg-kde-tools`` package."
4843+msgstr ""
4844+
4845+#: ../ubuntu-packaging-guide/kde.rst:32
4846+# 4bb8cca6f7f940dc84f4ea1798287277
4847+msgid "Packages which use Debhelper 7 should add the ``--with=kde`` option. This will ensure the correct build flags are used and add options such as handling kdeinit stubs and translations::"
4848+msgstr ""
4849+
4850+#: ../ubuntu-packaging-guide/kde.rst:39
4851+# 4a5e3298265c4fd4a8df97acde2c69f0
4852+msgid "Some newer KDE packages use the ``dhmk`` system, an alternative to ``dh`` made by the Debian Qt/KDE team. You can read about it in /usr/share/pkg-kde-tools/qt-kde-team/2/README. Packages using this will ``include /usr/share/pkg-kde-tools/qt-kde-team/2/debian-qt-kde.mk`` instead of running ``dh``."
4853+msgstr ""
4854+
4855+#: ../ubuntu-packaging-guide/kde.rst:47
4856+# 15bc35a1eefa4bee8ed9330f9a044380
4857+msgid "Translations"
4858+msgstr ""
4859+
4860+#: ../ubuntu-packaging-guide/kde.rst:49
4861+# ffae416394ec437c93e62703e46d4c93
4862+msgid "Packages in main have their translations imported into Launchpad and exported from Launchpad into Ubuntu's language-packs."
4863+msgstr ""
4864+
4865+#: ../ubuntu-packaging-guide/kde.rst:52
4866+# e2265cab7d764b4b83529d3b24129102
4867+msgid "So any KDE package in main must generate translation templates, include or make available upstream translations and handle ``.desktop`` file translations."
4868+msgstr ""
4869+
4870+#: ../ubuntu-packaging-guide/kde.rst:56
4871+# 98fc332176d84794aafa13b935d98523
4872+msgid "To generate translation templates the package must include a ``Messages.sh`` file; complain to the upstream if it does not. You can check it works by running ``extract-messages.sh`` which should produce one or more ``.pot`` files in ``po/``. This will be done automatically during build if you use the ``--with=kde`` option to ``dh``."
4873+msgstr ""
4874+
4875+#: ../ubuntu-packaging-guide/kde.rst:63
4876+# 931ea74ab2164fe8a5a982500456cbb2
4877+msgid "Upstream will usually have also put the translation ``.po`` files into the ``po/`` directory. If they do not, check if they are in separate upstream language packs such as the KDE SC language packs. If they are in separate language packs Launchpad will need to associate these together manually, contact `dpm`_ to do this."
4878+msgstr ""
4879+
4880+#: ../ubuntu-packaging-guide/kde.rst:69
4881+# 52573e8867ac4ed2840f572b9facbcb9
4882+msgid "If a package is moved from universe to main it will need to be reuploaded before the translations get imported into Launchpad."
4883+msgstr ""
4884+
4885+#: ../ubuntu-packaging-guide/kde.rst:72
4886+# 198ae177145b49b285220a56326dd9ce
4887+msgid "``.desktop`` files also need translations. We patch KDELibs to read translations out of ``.po`` files which are pointed to by a line ``X-Ubuntu-Gettext-Domain=`` added to ``.desktop`` files at package build time. A .pot file for each package is be generated at build time and .po files need to be downloaded from upstream and included in the package or in our language packs. The list of .po files to be downloaded from KDE's repositories is in ``/usr/lib/kubuntu-desktop-i18n/desktop-template-list``."
4888+msgstr ""
4889+
4890+#: ../ubuntu-packaging-guide/kde.rst:82
4891+# b49c7bc8627b48a7b4931ebd99bb725d
4892+msgid "Library Symbols"
4893+msgstr ""
4894+
4895+#: ../ubuntu-packaging-guide/kde.rst:84
4896+# a20fa5bcd911465789f7e4c2dfd61207
4897+msgid "Library symbols are tracked in ``.symbols`` files to ensure none go missing for new releases. KDE uses C++ libraries which act a little differently compared to C libraries. Debian's Qt/KDE Team have scripts to handle this. See `Working with symbols files`_ for how to create and keep these files up to date."
4898+msgstr ""
4899+
4900+#: ../ubuntu-packaging-guide/libraries.rst:3
4901+# 1161adad2b574c3dae7242a0e177d3cb
4902+msgid "Shared Libraries"
4903+msgstr ""
4904+
4905+#: ../ubuntu-packaging-guide/libraries.rst:5
4906+# e5417138b06748e7b459aee1467052f7
4907+msgid "Shared libraries are compiled code which is intended to be shared among several different programmes. They are distributed as ``.so`` files in ``/usr/lib/``."
4908+msgstr ""
4909+
4910+#: ../ubuntu-packaging-guide/libraries.rst:9
4911+# 3ea2eb4efb504f41812aad3d3a3630c0
4912+msgid "A library exports symbols which are the compiled versions of functions, classes and variables. A library has a name called an SONAME which includes a version number. This SONAME version does not necessarily match the public release version number. A programme gets compiled against a given SONAME version of the library. If any of the symbols is removed or changes then the version number needs to be changed which forces any packages using that library to be recompiled against the new version. Version numbers are usually set by upstream and we follow them in our binary package names called an ABI number, but sometimes upstreams do not use sensible version numbers and packagers have to keep separate version numbers."
4913+msgstr ""
4914+
4915+#: ../ubuntu-packaging-guide/libraries.rst:21
4916+# 07915fe981c94c4db90837dba30d3cc0
4917+msgid "Libraries are usually distributed by upstream as standalone releases. Sometimes they are distributed as part of a programme. In this case they can be included in the binary package along with the programme (this is called bundling) if you do not expect any other programmes to use the library, more often they should be split out into separate binary packages."
4918+msgstr ""
4919+
4920+#: ../ubuntu-packaging-guide/libraries.rst:27
4921+# 4c5c66ef19a44914bee41dc0539099fa
4922+msgid "The libraries themselves are put into a binary package named ``libfoo1`` where ``foo`` is the name of the library and ``1`` is the version from the SONAME. Development files from the package, such as header files, needed to compile programmes against the library are put into a package called ``libfoo-dev``."
4923+msgstr ""
4924+
4925+#: ../ubuntu-packaging-guide/libraries.rst:34
4926+# 06a1e94fcbba4e9eadba9eb114a9c642
4927+msgid "An Example"
4928+msgstr ""
4929+
4930+#: ../ubuntu-packaging-guide/libraries.rst:36
4931+# a1ec3bc9d692403ab82b43da77562aae
4932+msgid "We will use libnova as an example::"
4933+msgstr ""
4934+
4935+#: ../ubuntu-packaging-guide/libraries.rst:41
4936+# cd3c9fa86411468aaf013cfabc0fdb33
4937+msgid "To find the SONAME of the library run"
4938+msgstr ""
4939+
4940+#: ../ubuntu-packaging-guide/libraries.rst:43
4941+# 0af012c44f39480b8014cfa20b67b08f
4942+msgid "$ readelf -a /usr/lib/libnova-0.12.so.2 | grep SONAME"
4943+msgstr ""
4944+
4945+#: ../ubuntu-packaging-guide/libraries.rst:45
4946+# 379239ed35f840b1b788703c94ef817f
4947+msgid "The SONAME is ``libnova-0.12.so.2``, which matches the file name (usually the case but not always). Here upstream has put the upstream version number as part of the SONAME and given it an ABI version of ``2``. Library package names should follow the SONAME of the library they contain. The library binary package is called ``libnova-0.12-2`` where ``libnova-0.12`` is the name of the library and ``2`` is our ABI number."
4948+msgstr ""
4949+
4950+#: ../ubuntu-packaging-guide/libraries.rst:52
4951+# 122c0516404646858c5e64bbaf93311e
4952+msgid "If upstream makes incompatible changes to their library they will have to reversion their SONAME and we will have to rename our library. Any other packages using our library package will need to recompiled against the new version, this is called a transition and can take some effort. Hopefully our ABI number will continue to match upstream's SONAME but sometimes they introduce incompatibilities without changing their version number and we will need to change ours."
4953+msgstr ""
4954+
4955+#: ../ubuntu-packaging-guide/libraries.rst:60
4956+# 5bb0db11faef4045a6ffa4ff6a360ada
4957+msgid "Looking in debian/libnova-0.12-2.install we see it includes two files::"
4958+msgstr ""
4959+
4960+#: ../ubuntu-packaging-guide/libraries.rst:65
4961+# e694ef09fee449688473a2417d7e4de3
4962+msgid "The last one is the actual library, complete with minor and point version number. The first one is a symlink which points to the actual library. The symlink is what programmes using the library will look for, the running programmes do not care about the minor version number."
4963+msgstr ""
4964+
4965+#: ../ubuntu-packaging-guide/libraries.rst:70
4966+# 4806076bc944430598072095813eaf39
4967+msgid "``libnova-dev.install`` includes all the files needed to compile a programme with this library. Header files, a config binary, the ``.la`` libtool file and ``libnova.so`` which is another symlink pointing at the library, programmes compiling against the library do not care about the major version number (although the binary they compile into will)."
4968+msgstr ""
4969+
4970+#: ../ubuntu-packaging-guide/libraries.rst:76
4971+# 4d4773c47d50413e9e4c9f1163445e3c
4972+msgid "``.la`` libtool files are needed on some non-Linux systems with poor library support but usually cause more problems than they solve on Debian systems. It is a current `Debian goal to remove .la files`_ and we should help with this."
4973+msgstr ""
4974+
4975+#: ../ubuntu-packaging-guide/libraries.rst:82
4976+# 4cffd2fb14c64c8abca846161203f289
4977+msgid "Static Libraries"
4978+msgstr ""
4979+
4980+#: ../ubuntu-packaging-guide/libraries.rst:84
4981+# 6ccaf98902504122aa73d033cac53220
4982+msgid "The -dev package also ships ``usr/lib/libnova.a``. This is a static library, an alternative to the shared library. Any programme compiled against the static library will include the code directory into itself. This gets round worrying about binary compatibility of the library. However it also means that any bugs, including security issues, will not be updated along with the libary until the programme is recompiled. For this reason programmes using static libraries are discouraged."
4983+msgstr ""
4984+
4985+#: ../ubuntu-packaging-guide/libraries.rst:94
4986+# 398bf230fe85495fb24337ec903082d5
4987+msgid "Symbol Files"
4988+msgstr ""
4989+
4990+#: ../ubuntu-packaging-guide/libraries.rst:96
4991+# 870880e5a31c40b2a6c33ca619012e39
4992+msgid "When a package builds against a library the ``shlibs`` mechanism will add a package dependency on that library. This is why most programmes will have ``Depends: ${shlibs:Depends}`` in ``debian/control``. That gets replaced with the library dependencies at build time. However shlibs can only make it depend on the major ABI version number, ``2`` in our libnova example, so if new symbols get added in libnova 2.1 a programme using these symbols could still be installed against libnova ABI 2.0 which would then crash."
4993+msgstr ""
4994+
4995+#: ../ubuntu-packaging-guide/libraries.rst:104
4996+# e6474afb8a8841ea8e5f50f6d3c97cdb
4997+msgid "To make the library dependencies more precise we keep ``.symbols`` files that list all the symbols in a library and the version they appeared in."
4998+msgstr ""
4999+
5000+#: ../ubuntu-packaging-guide/libraries.rst:107
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches