Dear Debian I18N people, I would like to know if some of you would be interested in translating packaging-tutorial.
packaging-tutorial already includes de.po es.po fr.po ja.po pt.po ru.po. So do not translate it to these languages (the translators will be contacted separately). language translated fuzzy untranslated ----------------------------------------------------- de 552 52 10 es 465 98 51 fr 614 ja 565 48 1 pt 552 52 10 ru 501 61 52 Please send the updated file to me, or submit it as a wishlist bug against packaging-tutorial. The deadline for receiving the updated translation is Sun, 10 Jan 2016 22:29:16 +0100. If you have read so far, please find the POT file in attachment. Thanks in advance,
# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2015-12-26 21:31+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. type: Plain text #: packaging-tutorial.tex:4 msgid "\\mode<presentation> \\usetheme{debian}" msgstr "" #. Translators: #. change debiantutorial to debiantutorial.$lang to use translated file, and #. append to this string all commands to load localisation packages, e.g.: #. \\usepackage{debiantutorial.fr} \\usepackage[french]{babel} \\frenchsetup{...} #. type: Plain text #: packaging-tutorial.tex:10 msgid "\\usepackage{debiantutorial}" msgstr "" #. type: title{#2} #: packaging-tutorial.tex:14 msgid "Debian Packaging Tutorial" msgstr "" #. type: author{#2} #: packaging-tutorial.tex:14 msgid "Lucas Nussbaum\\\\{\\small\\texttt{packaging-tutor...@packages.debian.org}}" msgstr "" #. Translators: #. leave \\version unchanged: this will a variable containing the actual version #. To translate the date, use \\today or a string containing \\year, \\month, \\day #. (numeric values). #. DATE - use debian/rules update-version-date #. type: date{#1} #: packaging-tutorial.tex:20 msgid "version 0.16 -- 2015-12-26" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:52 msgid "About this tutorial" msgstr "" #. type: itemize #: packaging-tutorial.tex:52 msgid "Goal: \\textbf{tell you what you really need to know about Debian packaging}" msgstr "" #. type: itemize #: packaging-tutorial.tex:52 msgid "Modify existing packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:52 msgid "Create your own packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:52 msgid "Interact with the Debian community" msgstr "" #. type: itemize #: packaging-tutorial.tex:52 msgid "Become a Debian power-user" msgstr "" #. type: itemize #: packaging-tutorial.tex:52 msgid "Covers the most important points, but is not complete" msgstr "" #. type: itemize #: packaging-tutorial.tex:52 msgid "You will need to read more documentation" msgstr "" #. type: itemize #: packaging-tutorial.tex:52 msgid "Most of the content also applies to Debian derivative distributions" msgstr "" #. type: itemize #: packaging-tutorial.tex:52 msgid "That includes Ubuntu" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:56 debiantutorial.sty:42 msgid "Outline" msgstr "" #. type: section{#2} #: packaging-tutorial.tex:58 msgid "Introduction" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:60 packaging-tutorial.tex:84 msgid "Debian" msgstr "" #. type: textbf{#1} #: packaging-tutorial.tex:84 msgid "GNU/Linux distribution" msgstr "" #. type: itemize #: packaging-tutorial.tex:84 msgid "1st major distro developed ``openly in the spirit of GNU''" msgstr "" #. type: itemize #: packaging-tutorial.tex:84 msgid "\\textbf{Non-commercial}, built collaboratively by over 1,000 volunteers" msgstr "" #. type: itemize #: packaging-tutorial.tex:84 msgid "3 main features:" msgstr "" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Quality} -- culture of technical excellence\\\\ {\\small\\sl We " "release when it's ready}" msgstr "" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Freedom} -- devs and users bound by the \\textsl{Social " "Contract}\\\\ Promoting the culture of Free Software since 1993" msgstr "" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Independence} -- no (single) company babysitting Debian\\\\ And " "open decision-making process (\\textsl{do-ocracy} + \\textsl{democracy})" msgstr "" #. type: itemize #: packaging-tutorial.tex:84 msgid "\\textbf{Amateur} in the best sense: done for the love of it" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:105 packaging-tutorial.tex:105 msgid "Debian packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:105 msgid "\\textbf{.deb} files (binary packages)" msgstr "" #. type: itemize #: packaging-tutorial.tex:105 msgid "A very powerful and convenient way to distribute software to users" msgstr "" #. type: itemize #: packaging-tutorial.tex:105 msgid "One of the two most common package formats (with RPM)" msgstr "" #. type: itemize #: packaging-tutorial.tex:105 msgid "Universal:" msgstr "" #. type: itemize #: packaging-tutorial.tex:105 msgid "" "30,000 binary packages in Debian\\\\ $\\rightarrow$ most of the available " "free software is packaged in Debian!" msgstr "" #. type: itemize #: packaging-tutorial.tex:105 msgid "For 12 ports (architectures), including 2 non-Linux (Hurd; KFreeBSD)" msgstr "" #. type: itemize #: packaging-tutorial.tex:105 msgid "Also used by 120 Debian derivative distributions" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:108 packaging-tutorial.tex:133 msgid "The Deb package format" msgstr "" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{.deb} file: an \\texttt{ar} archive" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:133 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "$ ar tv wget_1.12-2.1_i386.deb\n" "rw-r--r-- 0/0 4 Sep 5 15:43 2010 debian-binary\n" "rw-r--r-- 0/0 2403 Sep 5 15:43 2010 control.tar.gz\n" "rw-r--r-- 0/0 751613 Sep 5 15:43 2010 data.tar.gz\n" " " msgstr "" #. $ #. type: itemize #: packaging-tutorial.tex:133 msgid "" "\\texttt{debian-binary}: version of the deb file format, " "\\texttt{\"2.0\\textbackslash{}n\"}" msgstr "" #. type: itemize #: packaging-tutorial.tex:133 msgid "" "\\texttt{control.tar.gz}: metadata about the package\\\\ {\\small " "\\texttt{\\textbf{control}, md5sums, (pre|post)(rm|inst), triggers, shlibs}, " "\\ldots}" msgstr "" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{data.tar.gz}: data files of the package" msgstr "" #. type: itemize #: packaging-tutorial.tex:133 msgid "" "You could create your \\texttt{.deb} files manually\\\\ {\\footnotesize " "\\url{http://tldp.org/HOWTO/html\\_single/Debian-Binary-Package-Building-HOWTO/}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:133 msgid "But most people don't do it that way" msgstr "" #. type: textbf{#1} #: packaging-tutorial.tex:133 msgid "This tutorial: create Debian packages, the Debian way" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:153 packaging-tutorial.tex:153 msgid "Tools you will need" msgstr "" #. type: itemize #: packaging-tutorial.tex:153 msgid "A Debian (or Ubuntu) system (with root access)" msgstr "" #. type: itemize #: packaging-tutorial.tex:153 msgid "Some packages:" msgstr "" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "\\textbf{build-essential}: has dependencies on the packages that will be " "assumed to be available on the developer's machine (no need to specify them " "in the \\texttt{Build-Depends:} control field of your package)" msgstr "" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "includes a dependency on \\textbf{dpkg-dev}, which contains basic " "Debian-specific tools to create packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:153 msgid "\\textbf{devscripts}: contains many useful scripts for Debian maintainers" msgstr "" #. type: frame #: packaging-tutorial.tex:161 msgid "" "Many other tools will also be mentioned later, such as \\textbf{debhelper}, " "\\textbf{cdbs}, \\textbf{quilt}, \\textbf{pbuilder}, \\textbf{sbuild}, " "\\textbf{lintian}, \\textbf{svn-buildpackage}, \\textbf{git-buildpackage}, " "\\ldots\\\\ Install them when you need them." msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:168 packaging-tutorial.tex:168 msgid "General packaging workflow" msgstr "" #. \draw[arr,->] (bin) -- (-1,-6) node[pos=0.5,left] {upload (\textttc{dput})}; #. hack hack hack #. type: tikzpicture #: packaging-tutorial.tex:188 msgid "" "\\node[node1] (www) at (0, 0) {Web}; \\node[node1] (us) at (2.5, 0) " "{upstream source}; \\node[node1] (da) at (-2.5, 0) {Debian mirror}; " "\\node[node1] (sp) at (0, -2) {source package}; \\draw[arr,<-,dashed,thick] " "(sp) -- (2.5,-2) node[right=0cm,text width=2.98cm,text " "centered,font=\\small\\sl] {where most of the manual work is done}; " "\\node[node1] (bin) at (0, -4) {one or several binary packages}; " "\\draw[arr,<-,dashed,thick] (bin) -- (3.5,-4) node[right,text " "centered,font=\\small\\ttfamily\\sl] {.deb\\normalfont}; \\draw[arr,->] (us) " "-- (sp) node[pos=0.5,right,command] {dh\\_make}; \\draw[arr,->] (da) -- (sp) " "node[pos=0.5,left,command] {apt-get source}; \\draw[arr,->] (www) -- (sp) " "node[pos=0.5,left,command] {dget}; \\draw[arr,->] (sp) -- (bin) " "node[pos=0.5,right,text width=6cm] {\\textttc{debuild} (build and test with " "\\textttc{lintian}) or \\textttc{dpkg-buildpackage}}; \\draw[arr,->] (bin) " "-- (1,-6) node[pos=0.5,right] {install (\\textttc{debi})}; " "\\draw[transparent] (bin) -- (-1,-6) node[pos=0.5,left,opaque] {upload " "(\\textttc{dput})}; \\draw[arr,->,rounded corners] (bin) -- (-1,-6) -- " "(-4.5,-6) -- (-4.5,0) -- (da); \\useasboundingbox (-4,-6) rectangle (6,0);" msgstr "" #. type: subsection{#2} #: packaging-tutorial.tex:205 msgid "Rebuilding dash" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:205 msgid "Example: rebuilding dash" msgstr "" #. type: enumerate #: packaging-tutorial.tex:205 msgid "" "Install packages needed to build dash, and devscripts\\\\ {\\texttt{sudo " "apt-get build-dep dash}\\\\ (requires \\texttt{deb-src} lines in " "\\texttt{/etc/apt/sources.list})}\\\\ {\\texttt{sudo apt-get install " "-{}-no-install-recommends devscripts fakeroot}}" msgstr "" #. type: enumerate #: packaging-tutorial.tex:205 msgid "" "Create a working directory, and get in it:\\\\ \\texttt{mkdir " "/tmp/debian-tutorial ; cd /tmp/debian-tutorial}" msgstr "" #. type: enumerate #: packaging-tutorial.tex:205 msgid "" "Grab the \\texttt{dash} source package\\\\ \\texttt{apt-get source dash}\\\\ " "{\\small (This needs you to have \\texttt{deb-src} lines in your " "\\texttt{/etc/apt/sources.list})}" msgstr "" #. type: enumerate #: packaging-tutorial.tex:205 msgid "" "Build the package\\\\ {\\texttt{cd dash-*\\\\ debuild -us -uc}} " "~~~(\\texttt{-us -uc} disables signing the package with GPG)" msgstr "" #. type: enumerate #: packaging-tutorial.tex:218 msgid "Check that it worked" msgstr "" #. type: itemize #: packaging-tutorial.tex:218 msgid "There are some new \\texttt{.deb} files in the parent directory" msgstr "" #. type: enumerate #: packaging-tutorial.tex:218 msgid "Look at the \\texttt{debian/} directory" msgstr "" #. type: itemize #: packaging-tutorial.tex:218 msgid "That's where the packaging work is done" msgstr "" #. type: section{#2} #: packaging-tutorial.tex:256 msgid "Creating source packages" msgstr "" #. type: subsection{#2} #: packaging-tutorial.tex:256 msgid "Source packages basics" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:256 msgid "Source package" msgstr "" #. type: itemize #: packaging-tutorial.tex:256 msgid "" "One source package can generate several binary packages\\\\ {\\small " "e.g. the \\texttt{\\bfseries libtar} source generates the " "\\texttt{\\bfseries libtar0} and \\texttt{\\bfseries libtar-dev} binary " "packages}" msgstr "" #. type: itemize #: packaging-tutorial.tex:256 msgid "Two kinds of packages: (if unsure, use non-native)" msgstr "" #. type: itemize #: packaging-tutorial.tex:256 msgid "" "Native packages: normally for Debian specific software (\\textsl{dpkg}, " "\\textsl{apt})" msgstr "" #. type: itemize #: packaging-tutorial.tex:256 msgid "Non-native packages: software developed outside Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:256 msgid "Main file: \\texttt{.dsc} (meta-data)" msgstr "" #. type: itemize #: packaging-tutorial.tex:256 msgid "Other files depending on the version of the source format" msgstr "" #. type: itemize #: packaging-tutorial.tex:256 msgid "1.0 or 3.0 (native): \\texttt{package\\_version.tar.gz}" msgstr "" #. type: itemize #: packaging-tutorial.tex:256 msgid "1.0 (non-native):" msgstr "" #. type: itemize #: packaging-tutorial.tex:256 packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_ver.orig.tar.gz}: upstream source" msgstr "" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.diff.gz}: patch to add Debian-specific changes" msgstr "" #. type: itemize #: packaging-tutorial.tex:256 msgid "3.0 (quilt):" msgstr "" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.debian.tar.gz}: tarball with the Debian changes" msgstr "" #. type: frame #: packaging-tutorial.tex:256 msgid "(See \\texttt{dpkg-source(1)} for exact details)" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:280 msgid "Source package example (wget\\_1.12-2.1.dsc)" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:280 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\small]\n" "Format: 3.0 (quilt)\n" "Source: wget\n" "Binary: wget\n" "Architecture: any\n" "Version: 1.12-2.1\n" "Maintainer: Noel Kothe <n...@debian.org>\n" "Homepage: http://www.gnu.org/software/wget/\n" "Standards-Version: 3.8.4\n" "Build-Depends: debhelper (>> 5.0.0), gettext, texinfo,\n" " libssl-dev (>= 0.9.8), dpatch, info2man\n" "Checksums-Sha1: \n" " 50d4ed2441e67[..]1ee0e94248 2464747 wget_1.12.orig.tar.gz\n" " d4c1c8bbe431d[..]dd7cef3611 48308 wget_1.12-2.1.debian.tar.gz\n" "Checksums-Sha256: \n" " 7578ed0974e12[..]dcba65b572 2464747 wget_1.12.orig.tar.gz\n" " 1e9b0c4c00eae[..]89c402ad78 48308 wget_1.12-2.1.debian.tar.gz\n" "Files: \n" " 141461b9c04e4[..]9d1f2abf83 2464747 wget_1.12.orig.tar.gz\n" " e93123c934e3c[..]2f380278c2 48308 wget_1.12-2.1.debian.tar.gz" msgstr "" #. type: subsection{#2} #: packaging-tutorial.tex:308 msgid "Retrieving source packages" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:308 msgid "Retrieving an existing source package" msgstr "" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the Debian archive:" msgstr "" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package=version}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package/release}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:308 msgid "(You need \\texttt{deb-src} lines in \\texttt{sources.list})" msgstr "" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the Internet:" msgstr "" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{dget \\textsl{url-to.dsc}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:308 msgid "" "\\texttt{dget " "http://snapshot.debian.org/archive/debian-archive/\\\\20090802T004153Z/debian/dists/bo/main/source/web/\\\\ " "wget\\_1.4.4-6.dsc}\\\\ (\\href{http://snapshot.debian.org/}{\\ttfamily " "snapshot.d.o} provides all packages from Debian since 2005)" msgstr "" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the (declared) version control system:" msgstr "" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{debcheckout \\textsl{package}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:308 msgid "Once downloaded, extract with \\texttt{dpkg-source -x \\textsl{file.dsc}}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:331 packaging-tutorial.tex:331 msgid "Creating a basic source package" msgstr "" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "Download the upstream source\\\\ (\\textsl{upstream source} = the one from " "the software's original developers)" msgstr "" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "Rename to " "\\texttt{<\\textsl{source\\_package}>\\_<\\textsl{upstream\\_version}>.orig.tar.gz}\\\\ " "(example: \\texttt{simgrid\\_3.6.orig.tar.gz})" msgstr "" #. type: itemize #: packaging-tutorial.tex:331 msgid "Untar it" msgstr "" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "Rename the directory to " "\\texttt{<\\textsl{source\\_package}>-<\\textsl{upstream\\_version}>}\\\\ " "(example: \\texttt{simgrid-3.6})" msgstr "" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "\\texttt{cd " "\\texttt{<\\textsl{source\\_package}>-<\\textsl{upstream\\_version}>} \\&\\& " "dh\\_make}\\\\ (from the \\textbf{dh-make} package)" msgstr "" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "There are some alternatives to \\texttt{dh\\_make} for specific sets of " "packages: \\textbf{dh-make-perl}, \\textbf{dh-make-php}, \\ldots" msgstr "" #. type: itemize #: packaging-tutorial.tex:331 msgid "\\texttt{debian/} directory created, with a lot of files in it" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:360 packaging-tutorial.tex:360 msgid "Files in debian/" msgstr "" #. type: frame #: packaging-tutorial.tex:360 msgid "" "All the packaging work should be made by modifying files in " "\\texttt{debian/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "Main files:" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{control} -- meta-data about the package (dependencies, etc.)" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{rules} -- specifies how to build the package" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{copyright} -- copyright information for the package" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{changelog} -- history of the Debian package" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "Other files:" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "compat" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "watch" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "dh\\_install* targets\\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "maintainer scripts\\\\ {\\small *.postinst, *.prerm, \\ldots}" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "source/format" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "patches/ -- if you need to modify the upstream sources" msgstr "" #. type: itemize #: packaging-tutorial.tex:360 msgid "Several files use a format based on RFC 822 (mail headers)" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:372 msgid "debian/changelog" msgstr "" #. type: itemize #: packaging-tutorial.tex:372 msgid "Lists the Debian packaging changes" msgstr "" #. type: itemize #: packaging-tutorial.tex:372 msgid "Gives the current version of the package" msgstr "" #. type: tikzpicture #: packaging-tutorial.tex:372 msgid "" "\\draw (0,0) node[above right] {\\large 1.2.1.1-5}; \\draw " "[decorate,decoration={brace}] (2,0) -- (1.45,0) node[at start,below,text " "width=1.6cm,text centered] {\\small Debian revision}; \\draw " "[decorate,decoration={brace}] (1.4,0) -- (0,0) node[midway,below,text " "width=1.6cm,text centered] { \\small Upstream version};" msgstr "" #. % #. type: itemize #: packaging-tutorial.tex:386 msgid "Edited manually or with \\textttc{dch}" msgstr "" #. type: itemize #: packaging-tutorial.tex:386 msgid "Create a changelog entry for a new release: \\textttc{dch -i}" msgstr "" #. type: itemize #: packaging-tutorial.tex:386 msgid "" "Special format to automatically close Debian or Ubuntu bugs\\\\ Debian: " "\\texttt{Closes:~\\#595268}; Ubuntu: \\texttt{LP:~\\#616929}" msgstr "" #. type: itemize #: packaging-tutorial.tex:386 msgid "Installed as \\texttt{/usr/share/doc/\\textit{package}/changelog.Debian.gz}" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:386 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "mpich2 (1.2.1.1-5) unstable; urgency=low\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:392 #, no-wrap msgid "" " * Use /usr/bin/python instead of /usr/bin/python2.5. Allow\n" " to drop dependency on python2.5. Closes: #595268\n" " * Make /usr/bin/mpdroot setuid. This is the default after\n" " the installation of mpich2 from source, too. LP: #616929\n" " + Add corresponding lintian override.\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:394 #, no-wrap msgid " -- Lucas Nussbaum <lu...@debian.org> Wed, 15 Sep 2010 18:13:44 +0200" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:421 msgid "debian/control" msgstr "" #. type: itemize #: packaging-tutorial.tex:421 msgid "Package metadata" msgstr "" #. type: itemize #: packaging-tutorial.tex:421 msgid "For the source package itself" msgstr "" #. type: itemize #: packaging-tutorial.tex:421 msgid "For each binary package built from this source" msgstr "" #. type: itemize #: packaging-tutorial.tex:421 msgid "" "Package name, section, priority, maintainer, uploaders, build-dependencies, " "dependencies, description, homepage, \\ldots" msgstr "" #. type: itemize #: packaging-tutorial.tex:421 msgid "" "Documentation: Debian Policy chapter 5\\\\ " "\\url{https://www.debian.org/doc/debian-policy/ch-controlfields}" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:421 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "Source: wget\n" "Section: web\n" "Priority: important\n" "Maintainer: Noel Kothe <n...@debian.org>\n" "Build-Depends: debhelper (>> 5.0.0), gettext, texinfo,\n" " libssl-dev (>= 0.9.8), dpatch, info2man\n" "Standards-Version: 3.8.4\n" "Homepage: http://www.gnu.org/software/wget/\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:427 #, no-wrap msgid "" "Package: wget\n" "Architecture: any\n" "Depends: ${shlibs:Depends}, ${misc:Depends}\n" "Description: retrieves files from the web\n" " Wget is a network utility to retrieve files from the Web" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:456 msgid "Architecture: all or any" msgstr "" #. type: frame #: packaging-tutorial.tex:456 msgid "Two kinds of binary packages:" msgstr "" #. type: itemize #: packaging-tutorial.tex:456 msgid "Packages with different contents on each Debian architecture" msgstr "" #. type: itemize #: packaging-tutorial.tex:456 msgid "Example: C program" msgstr "" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ any} in \\texttt{debian/control}" msgstr "" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Or, if it only works on a subset of architectures:\\\\ " "\\texttt{Architecture:\\ amd64 i386 ia64 hurd-i386}" msgstr "" #. type: itemize #: packaging-tutorial.tex:456 msgid "buildd.debian.org: builds all the other architectures for you on upload" msgstr "" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named " "\\texttt{\\textsl{package}\\_\\textsl{version}\\_\\textsl{architecture}.deb}" msgstr "" #. type: itemize #: packaging-tutorial.tex:456 msgid "Packages with the same content on all architectures" msgstr "" #. type: itemize #: packaging-tutorial.tex:456 msgid "Example: Perl library" msgstr "" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ all} in \\texttt{debian/control}" msgstr "" #. type: itemize #: packaging-tutorial.tex:456 msgid "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_\\textbf{all}.deb}" msgstr "" #. type: frame #: packaging-tutorial.tex:456 msgid "" "A source package can generate a mix of \\texttt{Architecture:\\ any} and " "\\texttt{Architecture:\\ all} binary packages" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:482 msgid "debian/rules" msgstr "" #. type: itemize #: packaging-tutorial.tex:482 msgid "Makefile" msgstr "" #. type: itemize #: packaging-tutorial.tex:482 msgid "Interface used to build Debian packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "Documented in Debian Policy, chapter 4.8\\\\ {\\small " "\\url{https://www.debian.org/doc/debian-policy/ch-source\\#s-debianrules}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:482 msgid "Required targets:" msgstr "" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "\\texttt{build, build-arch, build-indep}: should perform all the " "configuration and compilation" msgstr "" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{binary, binary-arch, binary-indep}: build the binary packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "\\texttt{dpkg-buildpackage} will call \\texttt{binary} to build all the " "packages, or \\texttt{binary-arch} to build only the " "\\texttt{Architecture:~any} packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{clean}: clean up the source directory" msgstr "" #. type: subsection{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers -- debhelper" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "You could write shell code in \\texttt{debian/rules} directly" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "See the \\texttt{adduser} package for example" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "Better practice (used by most packages): use a \\textsl{Packaging helper}" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "Most popular one: \\textbf{debhelper} (used by 98\\% of packages)" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "Goals:" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "Factor the common tasks in standard tools used by all packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "Fix some packaging bugs once for all packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "{\\footnotesize dh\\_installdirs, dh\\_installchangelogs, dh\\_installdocs, " "dh\\_installexamples, dh\\_install, dh\\_installdebconf, dh\\_installinit, " "dh\\_link, dh\\_strip, dh\\_compress, dh\\_fixperms, dh\\_perl, " "dh\\_makeshlibs, dh\\_installdeb, dh\\_shlibdeps, dh\\_gencontrol, " "dh\\_md5sums, dh\\_builddeb, \\ldots}" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "Called from \\texttt{debian/rules}" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "Configurable using command parameters or files in \\texttt{debian/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "{\\footnotesize \\ttfamily \\textsl{package}.docs, " "\\textsl{package}.examples, \\textsl{package}.install, " "\\textsl{package}.manpages, \\ldots}" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Third-party helpers for sets of packages: \\textbf{python-support}, " "\\textbf{dh\\_ocaml}, \\ldots" msgstr "" #. type: itemize #: packaging-tutorial.tex:516 msgid "Gotcha: \\texttt{debian/compat}: Debhelper compatibility version (use \"7\")" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:520 msgid "debian/rules using debhelper (1/2)" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:520 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "#!/usr/bin/make -f\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:523 #, no-wrap msgid "" "# Uncomment this to turn on verbose mode.\n" "#export DH_VERBOSE=1\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:527 #, no-wrap msgid "" "build: \n" " $(MAKE)\n" " #docbook-to-man debian/packagename.sgml > packagename.1\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:534 #, no-wrap msgid "" "clean: \n" " dh_testdir\n" " dh_testroot\n" " rm -f build-stamp configure-stamp\n" " $(MAKE) clean\n" " dh_clean \n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:542 #, no-wrap msgid "" "install: build\n" " dh_testdir\n" " dh_testroot\n" " dh_clean -k \n" " dh_installdirs\n" " # Add here commands to install the package into " "debian/packagename.\n" " $(MAKE) DESTDIR=$(CURDIR)/debian/packagename install" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:547 msgid "debian/rules using debhelper (2/2)" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:547 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:550 #, no-wrap msgid "" "# Build architecture-independent files here.\n" "binary-indep: build install\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:569 #, no-wrap msgid "" "# Build architecture-dependent files here.\n" "binary-arch: build install\n" " dh_testdir\n" " dh_testroot\n" " dh_installchangelogs \n" " dh_installdocs\n" " dh_installexamples\n" " dh_install\n" " dh_installman\n" " dh_link\n" " dh_strip\n" " dh_compress\n" " dh_fixperms\n" " dh_installdeb\n" " dh_shlibdeps\n" " dh_gencontrol\n" " dh_md5sums\n" " dh_builddeb\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:572 #, no-wrap msgid "" "binary: binary-indep binary-arch\n" ".PHONY: build clean binary-indep binary-arch binary install configure" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:603 msgid "CDBS" msgstr "" #. type: itemize #: packaging-tutorial.tex:603 msgid "With debhelper, still a lot of redundancy between packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:603 msgid "Second-level helpers that factor common functionality" msgstr "" #. type: itemize #: packaging-tutorial.tex:603 msgid "" "E.g. building with \\texttt{./configure \\&\\& make \\&\\& make install} or " "CMake" msgstr "" #. type: itemize #: packaging-tutorial.tex:603 msgid "CDBS:" msgstr "" #. type: itemize #: packaging-tutorial.tex:603 msgid "Introduced in 2005, based on advanced \\textsl{GNU make} magic" msgstr "" #. type: itemize #: packaging-tutorial.tex:603 msgid "Documentation: \\texttt{/usr/share/doc/cdbs/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:603 msgid "Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots" msgstr "" #. type: itemize #: packaging-tutorial.tex:603 msgid "But some people hate it:" msgstr "" #. type: itemize #: packaging-tutorial.tex:603 msgid "" "Sometimes difficult to customize package builds:\\\\ \"\\textsl{twisty maze " "of makefiles and environment variables}\"" msgstr "" #. type: itemize #: packaging-tutorial.tex:603 msgid "Slower than plain debhelper (many useless calls to \\texttt{dh\\_*})" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:603 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "#!/usr/bin/make -f\n" "include /usr/share/cdbs/1/rules/debhelper.mk\n" "include /usr/share/cdbs/1/class/autotools.mk\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:607 #, no-wrap msgid "" "# add an action after the build\n" "build/mypackage::\n" " /bin/bash debian/scripts/foo.sh\n" " " msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:628 msgid "Dh (aka Debhelper 7, or dh7)" msgstr "" #. type: itemize #: packaging-tutorial.tex:628 msgid "Introduced in 2008 as a \\textsl{CDBS killer}" msgstr "" #. type: itemize #: packaging-tutorial.tex:628 msgid "\\textbf{dh} command that calls \\texttt{dh\\_*}" msgstr "" #. type: itemize #: packaging-tutorial.tex:628 msgid "Simple \\textsl{debian/rules}, listing only overrides" msgstr "" #. type: itemize #: packaging-tutorial.tex:628 msgid "Easier to customize than CDBS" msgstr "" #. type: itemize #: packaging-tutorial.tex:628 msgid "" "Doc: manpages (\\texttt{debhelper(7)}, \\texttt{dh(1)}) + slides from " "DebConf9 talk\\\\ " "\\url{http://kitenet.net/~joey/talks/debhelper/debhelper-slides.pdf}" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:628 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "#!/usr/bin/make -f\n" "%:\n" " dh $@\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:631 #, no-wrap msgid "" "override_dh_auto_configure:\n" " dh_auto_configure -- --with-kitchen-sink\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:634 #, no-wrap msgid "" "override_dh_auto_build:\n" " make world\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:635 #, no-wrap msgid " " msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:656 msgid "Classic debhelper vs CDBS vs dh" msgstr "" #. type: itemize #: packaging-tutorial.tex:656 msgid "" "Mind shares:\\\\ Classic debhelper: 27\\% \\hskip 1em CDBS: 18\\% \\hskip " "1em dh: 54\\%" msgstr "" #. type: itemize #: packaging-tutorial.tex:656 msgid "Which one should I learn?" msgstr "" #. type: itemize #: packaging-tutorial.tex:656 msgid "Probably a bit of all of them" msgstr "" #. type: itemize #: packaging-tutorial.tex:656 msgid "You need to know debhelper to use dh and CDBS" msgstr "" #. type: itemize #: packaging-tutorial.tex:656 msgid "You might have to modify CDBS packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:656 msgid "Which one should I use for a new package?" msgstr "" #. type: itemize #: packaging-tutorial.tex:656 msgid "\\textbf{dh} (only solution with an increasing mind share)" msgstr "" #. type: axis[#1] #: packaging-tutorial.tex:670 msgid "" "small,label style={font=\\footnotesize},xlabel={\\small " "Time},ylabel={\\small Market share (\\%)}, date coordinates " "in=x,height=4.85cm,width=9cm,xticklabel={\\month/\\year}, legend " "style={font=\\footnotesize,at={(1.02,1)},anchor=north west},max space " "between ticks=82,try min ticks=5,ymin=0" msgstr "" #. type: axis #: packaging-tutorial.tex:670 msgid "" "\\addplot[mark=none,blue,thick,style=densely dotted] table[x=date,y=dh] " "{cdbs-dh7.txt}; \\addplot[mark=none,red,thick,style=dashed] " "table[x=date,y=dh7] {cdbs-dh7.txt}; \\addplot[mark=none,green,thick] " "table[x=date,y=cdbs] {cdbs-dh7.txt}; \\legend{debhelper, dh, CDBS}" msgstr "" #. type: section{#2} #: packaging-tutorial.tex:680 msgid "Building and testing packages" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:680 packaging-tutorial.tex:680 msgid "Building packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:680 msgid "" "\\textttc{apt-get build-dep mypackage}\\\\ Installs the " "\\textsl{build-dependencies} (for a package already in Debian)\\\\ Or " "\\textttc{mk-build-deps -ir} (for a package not uploaded yet)" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "\\textttc{debuild}: build, test with \\texttt{lintian}, sign with GPG" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "Also possible to call \\textttc{dpkg-buildpackage} directly" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "Usually with \\texttt{dpkg-buildpackage -us -uc}" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "It is better to build packages in a clean \\& minimal environment" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "" "\\textttc{pbuilder} -- helper to build packages in a \\textsl{chroot}\\\\ " "Good documentation: \\url{https://wiki.ubuntu.com/PbuilderHowto}\\\\ " "(optimization: \\textttc{cowbuilder} \\textttc{ccache} \\textttc{distcc})" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "" "\\textttc{schroot} and \\textttc{sbuild}: used on the Debian build " "daemons\\\\ (not as simple as \\texttt{pbuilder}, but allows LVM " "snapshots\\\\ see: \\url{https://help.ubuntu.com/community/SbuildLVMHowto} )" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "Generates \\texttt{.deb} files and a \\texttt{.changes} file" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "\\texttt{.changes}: describes what was built; used to upload the package" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:736 packaging-tutorial.tex:736 msgid "Installing and testing packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "" "Install the package locally: \\textttc{debi} (will use \\texttt{.changes} to " "know what to install)" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "" "List the content of the package: \\texttt{{\\color{rouge}debc} " "../mypackage<TAB>.changes}" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "" "Compare the package with a previous version:\\\\ " "\\texttt{{\\color{rouge}debdiff} ../mypackage\\_1\\_*.changes " "../mypackage\\_2\\_*.changes}\\\\ or to compare the sources:\\\\ " "\\texttt{{\\color{rouge}debdiff} ../mypackage\\_1\\_*.dsc " "../mypackage\\_2\\_*.dsc}\\\\" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "" "Check the package with \\texttt{lintian} (static analyzer):\\\\ " "\\texttt{{\\color{rouge}lintian} ../mypackage<TAB>.changes}\\\\ " "\\texttt{lintian -i}: gives more information about the errors \\\\ " "\\texttt{lintian -EviIL +pedantic}: shows more problems" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "Upload the package to Debian (\\textttc{dput}) (needs configuration)" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "" "Manage a private Debian archive with \\textttc{reprepro} or " "\\textttc{aptly}\\\\ Documentation: " "\\url{https://wiki.debian.org/HowToSetupADebianRepository}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:736 packaging-tutorial.tex:736 packaging-tutorial.tex:1470 packaging-tutorial.tex:1475 msgid "Practical session 1: modifying the grep package" msgstr "" #. type: enumerate #: packaging-tutorial.tex:736 packaging-tutorial.tex:1475 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.12-2 of the package" msgstr "" #. type: itemize #: packaging-tutorial.tex:736 msgid "" "If the source package is not unpacked automatically, unpack it with " "\\texttt{dpkg-source~-x~grep\\_*.dsc}" msgstr "" #. type: enumerate #: packaging-tutorial.tex:758 packaging-tutorial.tex:1497 packaging-tutorial.tex:1543 msgid "Look at the files in \\texttt{debian/}." msgstr "" #. type: itemize #: packaging-tutorial.tex:758 packaging-tutorial.tex:1497 packaging-tutorial.tex:1543 msgid "How many binary packages are generated by this source package?" msgstr "" #. type: itemize #: packaging-tutorial.tex:758 packaging-tutorial.tex:1497 packaging-tutorial.tex:1543 msgid "Which packaging helper does this package use?" msgstr "" #. type: itemize #: packaging-tutorial.tex:758 packaging-tutorial.tex:1497 packaging-tutorial.tex:1552 packaging-tutorial.tex:1876 msgid "Build the package" msgstr "" #. type: enumerate #: packaging-tutorial.tex:758 packaging-tutorial.tex:1497 packaging-tutorial.tex:1573 msgid "" "We are now going to modify the package. Add a changelog entry and increase " "the version number." msgstr "" #. type: enumerate #: packaging-tutorial.tex:758 packaging-tutorial.tex:1497 packaging-tutorial.tex:1593 msgid "Now disable perl-regexp support (it is a \\texttt{./configure} option)" msgstr "" #. type: enumerate #: packaging-tutorial.tex:758 packaging-tutorial.tex:1497 packaging-tutorial.tex:1593 msgid "Rebuild the package" msgstr "" #. type: enumerate #: packaging-tutorial.tex:758 packaging-tutorial.tex:1497 packaging-tutorial.tex:1623 msgid "Compare the original and the new package with debdiff" msgstr "" #. type: enumerate #: packaging-tutorial.tex:758 packaging-tutorial.tex:1497 packaging-tutorial.tex:1623 msgid "Install the newly built package" msgstr "" #. type: enumerate #: packaging-tutorial.tex:758 packaging-tutorial.tex:1497 packaging-tutorial.tex:1623 msgid "Cry if you messed up ;)" msgstr "" #. type: section{#2} #: packaging-tutorial.tex:774 msgid "Advanced packaging topics" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:774 packaging-tutorial.tex:774 msgid "debian/copyright" msgstr "" #. type: itemize #: packaging-tutorial.tex:774 msgid "Copyright and license information for the source and the packaging" msgstr "" #. type: itemize #: packaging-tutorial.tex:774 msgid "Traditionally written as a text file" msgstr "" #. type: itemize #: packaging-tutorial.tex:774 msgid "" "New machine-readable format: " "{\\small\\url{https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/}}" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:774 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/\n" "Upstream-Name: X Solitaire\n" "Source: ftp://ftp.example.com/pub/games\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:784 #, no-wrap msgid "" "Files: *\n" "Copyright: Copyright 1998 John Doe <j...@example.com>\n" "License: GPL-2+\n" " This program is free software; you can redistribute it\n" " [...]\n" " .\n" " On Debian systems, the full text of the GNU General Public\n" " License version 2 can be found in the file\n" " `/usr/share/common-licenses/GPL-2'.\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:789 #, no-wrap msgid "" "Files: debian/*\n" "Copyright: Copyright 1998 Jane Smith <jsm...@example.net>\n" "License:\n" " [LICENSE TEXT]" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:820 packaging-tutorial.tex:820 msgid "Modifying the upstream source" msgstr "" #. type: frame #: packaging-tutorial.tex:820 msgid "Often needed:" msgstr "" #. type: itemize #: packaging-tutorial.tex:820 msgid "Fix bugs or add customizations that are specific to Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:820 msgid "Backport fixes from a newer upstream release" msgstr "" #. type: frame #: packaging-tutorial.tex:820 msgid "Several methods to do it:" msgstr "" #. type: itemize #: packaging-tutorial.tex:820 msgid "Modifying the files directly" msgstr "" #. type: itemize #: packaging-tutorial.tex:820 msgid "Simple" msgstr "" #. type: itemize #: packaging-tutorial.tex:820 msgid "But no way to track and document the changes" msgstr "" #. type: itemize #: packaging-tutorial.tex:820 msgid "Using patch systems" msgstr "" #. type: itemize #: packaging-tutorial.tex:820 msgid "Eases contributing your changes to upstream" msgstr "" #. type: itemize #: packaging-tutorial.tex:820 msgid "Helps sharing the fixes with derivatives" msgstr "" #. type: itemize #: packaging-tutorial.tex:820 msgid "" "Gives more exposure to the changes\\\\ " "\\url{http://patch-tracker.debian.org/} (down currently)" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:850 msgid "Patch systems" msgstr "" #. type: itemize #: packaging-tutorial.tex:850 msgid "Principle: changes are stored as patches in \\texttt{debian/patches/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:850 msgid "Applied and unapplied during build" msgstr "" #. type: itemize #: packaging-tutorial.tex:850 msgid "" "Past: several implementations -- \\textsl{simple-patchsys} (\\textsl{cdbs}), " "\\textsl{dpatch}, \\textbf{\\textsl{quilt}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:850 msgid "Each supports two \\texttt{debian/rules} targets:" msgstr "" #. type: itemize #: packaging-tutorial.tex:850 msgid "\\texttt{debian/rules patch}: apply all patches" msgstr "" #. type: itemize #: packaging-tutorial.tex:850 msgid "\\texttt{debian/rules unpatch}: de-apply all patches" msgstr "" #. type: itemize #: packaging-tutorial.tex:850 msgid "More documentation: \\url{https://wiki.debian.org/debian/patches}" msgstr "" #. type: textbf{#1} #: packaging-tutorial.tex:850 msgid "New source package format with built-in patch system: 3.0 (quilt)" msgstr "" #. type: itemize #: packaging-tutorial.tex:850 msgid "Recommended solution" msgstr "" #. type: itemize #: packaging-tutorial.tex:850 msgid "" "You need to learn \\textsl{quilt}\\\\ " "\\url{http://pkg-perl.alioth.debian.org/howto/quilt.html}" msgstr "" #. type: itemize #: packaging-tutorial.tex:850 msgid "Patch-system-agnostic tool in \\texttt{devscripts}: \\texttt{edit-patch}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:867 msgid "Documentation of patches" msgstr "" #. type: itemize #: packaging-tutorial.tex:867 msgid "Standard headers at the beginning of the patch" msgstr "" #. type: itemize #: packaging-tutorial.tex:867 msgid "" "Documented in DEP-3 - Patch Tagging Guidelines\\\\ " "\\url{http://dep.debian.net/deps/dep3/}" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:867 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "Description: Fix widget frobnication speeds\n" " Frobnicating widgets too quickly tended to cause explosions.\n" "Forwarded: http://lists.example.com/2010/03/1234.html\n" "Author: John Doe <johndoe-gu...@users.alioth.debian.org>\n" "Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123\n" "Last-Update: 2010-03-29\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:871 #, no-wrap msgid "" "--- a/src/widgets.c\n" "+++ b/src/widgets.c\n" "@@ -101,9 +101,6 @@ struct {" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:891 packaging-tutorial.tex:891 msgid "Doing things during installation and removal" msgstr "" #. type: itemize #: packaging-tutorial.tex:891 msgid "Decompressing the package is sometimes not enough" msgstr "" #. type: itemize #: packaging-tutorial.tex:891 msgid "" "Create/remove system users, start/stop services, manage " "\\textsl{alternatives}" msgstr "" #. type: itemize #: packaging-tutorial.tex:891 msgid "" "Done in \\textsl{maintainer scripts}\\\\ \\texttt{preinst, postinst, prerm, " "postrm}" msgstr "" #. type: itemize #: packaging-tutorial.tex:891 msgid "Snippets for common actions can be generated by debhelper" msgstr "" #. type: itemize #: packaging-tutorial.tex:891 msgid "Documentation:" msgstr "" #. type: itemize #: packaging-tutorial.tex:891 msgid "" "Debian Policy Manual, chapter 6\\\\ {\\footnotesize " "\\url{https://www.debian.org/doc/debian-policy/ch-maintainerscripts}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:907 msgid "" "Debian Developer's Reference, chapter 6.4\\\\ {\\scriptsize " "\\url{https://www.debian.org/doc/developers-reference/best-pkging-practices.html}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:907 msgid "" "{\\footnotesize " "\\url{https://people.debian.org/~srivasta/MaintainerScripts.html}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:907 msgid "Prompting the user" msgstr "" #. type: itemize #: packaging-tutorial.tex:907 msgid "Must be done with \\textbf{debconf}" msgstr "" #. type: itemize #: packaging-tutorial.tex:907 msgid "Documentation: \\texttt{debconf-devel(7)} (\\texttt{debconf-doc} package)" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:913 msgid "Monitoring upstream versions" msgstr "" #. type: itemize #: packaging-tutorial.tex:913 msgid "Specify where to look in \\texttt{debian/watch} (see \\texttt{uscan(1)})" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:913 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:916 #, no-wrap msgid "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " msgstr "" #. type: itemize #: packaging-tutorial.tex:925 msgid "" "There are automated trackers of new upstream versions, that notify the " "maintainer on various dashboards including " "\\url{https://tracker.debian.org/} and \\url{https://udd.debian.org/dmd/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:925 msgid "\\texttt{uscan}: run a manual check" msgstr "" #. type: itemize #: packaging-tutorial.tex:925 msgid "\\texttt{uupdate}: try to update your package to the latest upstream version" msgstr "" #. type: subsection{#2} #: packaging-tutorial.tex:964 msgid "Packaging with a Version Control System (SVN, Git)" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:964 msgid "Packaging with a Version Control System" msgstr "" #. type: itemize #: packaging-tutorial.tex:964 msgid "" "Several tools to help manage branches and tags for your packaging work:\\\\ " "\\texttt{svn-buildpackage}, \\texttt{git-buildpackage}" msgstr "" #. type: itemize #: packaging-tutorial.tex:964 msgid "Example: \\texttt{git-buildpackage}" msgstr "" #. type: itemize #: packaging-tutorial.tex:964 msgid "" "\\texttt{upstream} branch to track upstream with " "\\texttt{upstream/\\textsl{version}} tags" msgstr "" #. type: itemize #: packaging-tutorial.tex:964 msgid "\\texttt{master} branch tracks the Debian package" msgstr "" #. type: itemize #: packaging-tutorial.tex:964 msgid "\\texttt{debian/\\textsl{version}} tags for each upload" msgstr "" #. type: itemize #: packaging-tutorial.tex:964 msgid "\\texttt{pristine-tar} branch to be able to rebuild the upstream tarball" msgstr "" #. type: itemize #: packaging-tutorial.tex:964 msgid "" "Doc: " "\\url{http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html}" msgstr "" #. type: itemize #: packaging-tutorial.tex:964 msgid "\\texttt{Vcs-*} fields in \\texttt{debian/control} to locate the repository" msgstr "" #. type: itemize #: packaging-tutorial.tex:964 msgid "\\url{https://wiki.debian.org/Alioth/Git}" msgstr "" #. type: itemize #: packaging-tutorial.tex:964 msgid "\\url{https://wiki.debian.org/Alioth/Svn}" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:964 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Vcs-Browser: " "http://anonscm.debian.org/gitweb/?p=collab-maint/devscripts.git\n" "Vcs-Git: git://anonscm.debian.org/collab-maint/devscripts.git\n" " " msgstr "" #. type: lstlisting #: packaging-tutorial.tex:964 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Vcs-Browser: http://svn.debian.org/viewsvn/pkg-perl/trunk/libwww-perl/\n" "Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libwww-perl\n" " " msgstr "" #. type: itemize #: packaging-tutorial.tex:964 msgid "" "VCS-agnostic interface: \\texttt{debcheckout}, \\texttt{debcommit}, " "\\texttt{debrelease}\\\\" msgstr "" #. type: itemize #: packaging-tutorial.tex:964 msgid "" "\\texttt{debcheckout grep} $\\rightarrow$ checks out the source package from " "Git" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:987 packaging-tutorial.tex:987 msgid "Backporting packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:987 msgid "" "Goal: use a newer version of a package on an older system\\\\ e.g. use " "\\textsl{mutt} from Debian \\textsl{unstable} on Debian \\textsl{stable}" msgstr "" #. type: itemize #: packaging-tutorial.tex:987 msgid "General idea:" msgstr "" #. type: itemize #: packaging-tutorial.tex:987 msgid "Take the source package from Debian unstable" msgstr "" #. type: itemize #: packaging-tutorial.tex:987 msgid "Modify it so that it builds and works fine on Debian stable" msgstr "" #. type: itemize #: packaging-tutorial.tex:987 msgid "Sometimes trivial (no changes needed)" msgstr "" #. type: itemize #: packaging-tutorial.tex:987 msgid "Sometimes difficult" msgstr "" #. type: itemize #: packaging-tutorial.tex:987 msgid "Sometimes impossible (many unavailable dependencies)" msgstr "" #. type: itemize #: packaging-tutorial.tex:987 msgid "" "Some backports are provided and supported by the Debian project\\\\ " "\\url{http://backports.debian.org/}" msgstr "" #. type: section{#2} #: packaging-tutorial.tex:1018 msgid "Maintaining packages in Debian" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1018 packaging-tutorial.tex:1018 msgid "Several ways to contribute to Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:1018 msgid "\\textbf{Worst} way to contribute:" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1018 msgid "Package your own application" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1018 msgid "Get it into Debian" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1018 msgid "Disappear" msgstr "" #. type: itemize #: packaging-tutorial.tex:1018 msgid "\\textbf{Better} ways to contribute:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1018 msgid "Get involved in packaging teams" msgstr "" #. type: itemize #: packaging-tutorial.tex:1018 msgid "Many teams that focus on set of packages, and need help" msgstr "" #. type: itemize #: packaging-tutorial.tex:1018 msgid "List available at \\url{https://wiki.debian.org/Teams}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1018 msgid "An excellent way to learn from more experienced contributors" msgstr "" #. type: itemize #: packaging-tutorial.tex:1018 msgid "Adopt existing unmaintained packages (\\textsl{orphaned packages})" msgstr "" #. type: itemize #: packaging-tutorial.tex:1018 msgid "Bring new software to Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:1018 msgid "Only if it's interesting/useful enough, please" msgstr "" #. type: itemize #: packaging-tutorial.tex:1018 msgid "Are there alternatives already packaged in Debian?" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1056 packaging-tutorial.tex:1056 msgid "Adopting orphaned packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:1056 msgid "Many unmaintained packages in Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:1056 msgid "Full list + process: \\url{https://www.debian.org/devel/wnpp/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1056 msgid "Installed on your machine: \\texttt{wnpp-alert}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1056 msgid "Different states:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1056 msgid "\\textbf{O}rphaned: the package is unmaintained\\\\ Feel free to adopt it" msgstr "" #. type: itemize #: packaging-tutorial.tex:1056 msgid "" "\\textbf{RFA}: \\textbf{R}equest \\textbf{F}or \\textbf{A}dopter\\\\ " "Maintainer looking for adopter, but continues work in the meantime\\\\ Feel " "free to adopt it. A mail to the current maintainer is polite" msgstr "" #. type: itemize #: packaging-tutorial.tex:1056 msgid "" "\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt\\\\ Someone " "intends to adopt the package\\\\ You could propose your help!" msgstr "" #. type: itemize #: packaging-tutorial.tex:1056 msgid "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp\\\\ The " "maintainer is looking for help" msgstr "" #. type: itemize #: packaging-tutorial.tex:1056 msgid "Some unmaintained packages not detected \\arr not orphaned yet" msgstr "" #. type: itemize #: packaging-tutorial.tex:1056 msgid "" "When in doubt, ask \\texttt{debian...@lists.debian.org} \\\\ or " "\\texttt{\\#debian-qa} on \\texttt{irc.debian.org}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1063 msgid "Adopting a package: example" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1063 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "From: You <you@yourdomain>\n" "To: 640...@bugs.debian.org, cont...@bugs.debian.org\n" "Cc: Francois Marier <franc...@debian.org>\n" "Subject: ITA: verbiste -- French conjugator\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1067 #, no-wrap msgid "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1069 #, no-wrap msgid "" "Hi,\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1071 #, no-wrap msgid "" "I am using verbiste and I am willing to take care of the package.\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1073 #, no-wrap msgid "" "Cheers,\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1075 #, no-wrap msgid "You" msgstr "" #. type: itemize #: packaging-tutorial.tex:1082 msgid "" "Polite to contact the previous maintainer (especially if the package was " "RFAed, not orphaned)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1082 msgid "Very good idea to contact the upstream project" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1106 packaging-tutorial.tex:1106 msgid "Getting your package in Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:1106 msgid "You do not need any official status to get your package into Debian" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1106 msgid "" "Submit an \\textbf{ITP} bug (\\textbf{I}ntend \\textbf{T}o " "\\textbf{P}ackage) using \\texttt{reportbug wnpp}" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1106 msgid "Prepare a source package" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1106 msgid "Find a Debian Developer that will sponsor your package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1106 msgid "Official status (when you are an experienced package maintainer):" msgstr "" #. type: itemize #: packaging-tutorial.tex:1106 msgid "" "\\textbf{Debian Maintainer (DM):}\\\\ Permission to upload your own " "packages\\\\ See \\url{https://wiki.debian.org/DebianMaintainer}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1106 msgid "" "\\textbf{Debian Developer (DD):}\\\\ Debian project member; can vote and " "upload any package" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1134 msgid "Things to check before asking for sponsorship" msgstr "" #. type: itemize #: packaging-tutorial.tex:1134 msgid "Debian puts \\textbf{a lot of focus on quality}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1134 msgid "Generally, \\textbf{sponsors are hard to find and busy}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1134 msgid "Make sure your package is ready before asking for sponsorship" msgstr "" #. type: itemize #: packaging-tutorial.tex:1134 msgid "Things to check:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1134 msgid "" "Avoid missing build-dependencies: make sure that your package build fine in " "a clean \\textsl{sid} \\textsl{chroot}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1134 msgid "Using \\texttt{pbuilder} is recommended" msgstr "" #. type: itemize #: packaging-tutorial.tex:1134 msgid "Run \\texttt{lintian -EviIL +pedantic} on your package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1134 msgid "Errors must be fixed, all other problems should be fixed" msgstr "" #. type: itemize #: packaging-tutorial.tex:1134 msgid "Do extensive testing of your package, of course" msgstr "" #. type: itemize #: packaging-tutorial.tex:1134 msgid "In doubt, ask for help" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1169 packaging-tutorial.tex:1169 msgid "Where to find help?" msgstr "" #. type: frame #: packaging-tutorial.tex:1169 msgid "Help you will need:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "Advice and answers to your questions, code reviews" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "Sponsorship for your uploads, once your package is ready" msgstr "" #. type: frame #: packaging-tutorial.tex:1169 msgid "You can get help from:" msgstr "" #. type: textbf{#1} #: packaging-tutorial.tex:1169 msgid "Other members of a packaging team" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "List of teams: \\url{https://wiki.debian.org/Teams}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "The \\textbf{Debian Mentors group} (if your package does not fit in a team)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "\\url{https://wiki.debian.org/DebianMentorsFaq}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "" "Mailing list: \\url{debian-ment...@lists.debian.org}\\\\ {\\small (also a " "good way to learn by accident)}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "IRC: \\texttt{\\#debian-mentors} on \\texttt{irc.debian.org}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "\\url{http://mentors.debian.net/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "Documentation: \\url{http://mentors.debian.net/intro-maintainers}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "\\textbf{Localized mailing lists} (get help in your language)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "\\texttt{debian-devel-\\{french,italian,portuguese,spanish\\}@lists.d.o}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "Full list: \\url{https://lists.debian.org/devel.html}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1169 msgid "Or users lists: \\url{https://lists.debian.org/users.html}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1187 packaging-tutorial.tex:1187 msgid "More documentation" msgstr "" #. type: itemize #: packaging-tutorial.tex:1187 msgid "" "Debian Developers' Corner\\\\ \\url{https://www.debian.org/devel/}\\\\ " "{\\small Links to many resources about Debian development}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1187 msgid "" "Debian New Maintainers' Guide\\\\ " "\\url{https://www.debian.org/doc/maint-guide/}\\\\ {\\small An introduction " "to Debian packaging, but could use an update}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1187 msgid "" "Debian Developer's Reference\\\\ " "\\url{https://www.debian.org/doc/developers-reference/}\\\\ {\\small Mostly " "about Debian procedures, but also some best packaging practices (part 6)}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1187 msgid "Debian Policy\\\\ \\url{https://www.debian.org/doc/debian-policy/}\\\\" msgstr "" #. type: itemize #: packaging-tutorial.tex:1193 msgid "" "{\\small \\begin{itemize} \\item \\small All the requirements that every " "package must satisfy \\item \\small Specific policies for Perl, Java, " "Python, \\ldots \\end{itemize}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1198 msgid "" "Ubuntu Packaging Guide\\\\ " "\\url{http://developer.ubuntu.com/resources/tools/packaging/}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1212 packaging-tutorial.tex:1212 msgid "Debian dashboards for maintainers" msgstr "" #. type: itemize #: packaging-tutorial.tex:1212 msgid "\\textbf{Source package centric}:\\\\ \\url{https://tracker.debian.org/dpkg}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1212 msgid "" "\\textbf{Maintainer/team centric}: Developer's Packages Overview (DDPO)\\\\ " "\\url{https://qa.debian.org/developer.php?login=pkg-ruby-extras-maintain...@lists.alioth.debian.org}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1212 msgid "" "\\textbf{TODO-list oriented}: Debian Maintainer Dashboard (DMD)\\\\ " "\\url{https://udd.debian.org/dmd/}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1240 msgid "Using the Debian Bug Tracking System (BTS)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1240 msgid "A quite unique way to manage bugs" msgstr "" #. type: itemize #: packaging-tutorial.tex:1240 msgid "Web interface to view bugs" msgstr "" #. type: itemize #: packaging-tutorial.tex:1240 msgid "Email interface to make changes to bugs" msgstr "" #. type: itemize #: packaging-tutorial.tex:1240 msgid "Adding information to bugs:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1240 msgid "" "Write to \\texttt{123...@bugs.debian.org} (does not include the submitter, " "you need to add \\texttt{123456-submit...@bugs.debian.org})" msgstr "" #. type: itemize #: packaging-tutorial.tex:1240 msgid "Changing bug status:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1240 msgid "Send commands to \\texttt{cont...@bugs.debian.org}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1240 msgid "Command-line interface: \\texttt{bts} command in \\texttt{devscripts}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1240 msgid "Documentation: \\url{https://www.debian.org/Bugs/server-control}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1240 msgid "Reporting bugs: use \\texttt{reportbug}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1240 msgid "" "Normally used with a local mail server: install \\texttt{ssmtp} or " "\\texttt{nullmailer}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1240 msgid "" "Or use \\texttt{reportbug -\\@-template}, then send (manually) to " "\\texttt{sub...@bugs.debian.org}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1266 msgid "Using the BTS: examples" msgstr "" #. type: itemize #: packaging-tutorial.tex:1266 msgid "" "Sending an email to the bug and the submitter:\\\\ " "\\url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#10}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1266 msgid "" "Tagging and changing the severity:\\\\ " "\\url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680227\\#10}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1266 msgid "" "Reassigning, changing the severity, retitling \\ldots: \\\\ " "\\url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#93}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1266 msgid "" "\\texttt{notfound}, \\texttt{found}, \\texttt{notfixed}, \\texttt{fixed} are " "for \\textbf{version-tracking} \\\\ See " "\\url{https://wiki.debian.org/HowtoUseBTS\\#Version\\_tracking}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1266 msgid "" "Using usertags: " "\\url{https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;bug=642267}\\\\ " "See \\url{https://wiki.debian.org/bugs.debian.org/usertags}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1266 msgid "BTS Documentation:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1266 msgid "\\url{https://www.debian.org/Bugs/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1266 msgid "\\url{https://wiki.debian.org/HowtoUseBTS}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1293 packaging-tutorial.tex:1293 msgid "More interested in Ubuntu?" msgstr "" #. type: itemize #: packaging-tutorial.tex:1293 msgid "Ubuntu mainly manages the divergence with Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:1293 msgid "" "No real focus on specific packages\\\\ Instead, collaboration with Debian " "teams" msgstr "" #. type: itemize #: packaging-tutorial.tex:1293 msgid "" "Usually recommend uploading new packages to Debian first\\\\ " "\\url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1293 msgid "Possibly a better plan:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1293 msgid "Get involved in a Debian team and act as a bridge with Ubuntu" msgstr "" #. type: itemize #: packaging-tutorial.tex:1293 msgid "Help reduce divergence, triage bugs in Launchpad" msgstr "" #. type: itemize #: packaging-tutorial.tex:1293 msgid "Many Debian tools can help:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1293 msgid "Ubuntu column on the Developer's packages overview" msgstr "" #. type: itemize #: packaging-tutorial.tex:1293 msgid "Ubuntu box on the Package Tracking System" msgstr "" #. type: itemize #: packaging-tutorial.tex:1293 msgid "Receive launchpad bugmail via the PTS" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1323 packaging-tutorial.tex:1323 packaging-tutorial.tex:1323 msgid "Conclusions" msgstr "" #. type: itemize #: packaging-tutorial.tex:1323 msgid "You now have a full overview of Debian packaging" msgstr "" #. type: itemize #: packaging-tutorial.tex:1323 msgid "But you will need to read more documentation" msgstr "" #. type: itemize #: packaging-tutorial.tex:1323 msgid "Best practices have evolved over the years" msgstr "" #. type: itemize #: packaging-tutorial.tex:1323 msgid "" "If not sure, use the \\textbf{dh} packaging helper, and the \\textbf{3.0 " "(quilt)} format" msgstr "" #. type: itemize #: packaging-tutorial.tex:1323 msgid "Things that were not covered in this tutorial:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1323 msgid "UCF -- manage user changes to configuration files when upgrading" msgstr "" #. type: itemize #: packaging-tutorial.tex:1323 msgid "dpkg triggers -- group similar maintainer scripts actions together" msgstr "" #. type: itemize #: packaging-tutorial.tex:1323 msgid "Debian development organization:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1323 msgid "" "Suites: stable, testing, unstable, experimental, security, *-updates, " "backports, \\ldots" msgstr "" #. type: itemize #: packaging-tutorial.tex:1323 msgid "Debian Blends -- subsets of Debian targeting specific groups" msgstr "" #. type: centerline{#1} #: packaging-tutorial.tex:1323 msgid "\\large Feedback: \\textbf{packaging-tutor...@packages.debian.org}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1326 packaging-tutorial.tex:1326 msgid "Legal stuff" msgstr "" #. type: frame #: packaging-tutorial.tex:1329 msgid "Copyright \\copyright 2011--2016 Lucas Nussbaum -- lu...@debian.org" msgstr "" #. type: frame #: packaging-tutorial.tex:1345 msgid "" "{\\small \\textbf{This document is free software}: you can redistribute it " "and/or modify it under either (at your option): \\hbr \\begin{itemize} " "\\item The terms of the GNU General Public License as published by the Free " "Software Foundation, either version 3 of the License, or (at your option) " "any later version.\\\\ \\url{http://www.gnu.org/licenses/gpl.html} \\br " "\\item The terms of the Creative Commons Attribution-ShareAlike 3.0 Unported " "License.\\\\ \\url{http://creativecommons.org/licenses/by-sa/3.0/} " "\\end{itemize} }" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1374 packaging-tutorial.tex:1374 msgid "Contribute to this tutorial" msgstr "" #. type: itemize #: packaging-tutorial.tex:1374 msgid "Contribute:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1374 msgid "{\\small \\texttt{apt-get source packaging-tutorial}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1374 msgid "{\\small \\texttt{debcheckout packaging-tutorial}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1374 msgid "" "{\\small \\texttt{git clone\\\\ " "git://git.debian.org/collab-maint/packaging-tutorial.git}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1374 msgid "" "{\\small " "\\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1374 msgid "{\\small Open bugs: \\url{bugs.debian.org/src:packaging-tutorial}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1374 msgid "Provide feedback:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1374 msgid "\\href{mailto:packaging-tutor...@packages.debian.org}{\\textbf{\\texttt{mailto:packaging-tutor...@packages.debian.org}}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1374 msgid "{\\small What should be added to this tutorial?}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1374 msgid "{\\small What should be improved?}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1374 msgid "{\\small \\texttt{reportbug packaging-tutorial}}" msgstr "" #. type: section{#2} #: packaging-tutorial.tex:1376 msgid "Additional practical sessions" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1394 packaging-tutorial.tex:1394 packaging-tutorial.tex:1641 packaging-tutorial.tex:1641 msgid "Practical session 2: packaging GNUjump" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1394 packaging-tutorial.tex:1641 msgid "" "Download GNUjump 1.0.8 from " "\\url{http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1394 packaging-tutorial.tex:1641 msgid "Create a Debian package for it" msgstr "" #. type: itemize #: packaging-tutorial.tex:1394 packaging-tutorial.tex:1641 msgid "Install build-dependencies so that you can build the package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1394 packaging-tutorial.tex:1641 msgid "Get a basic working package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1394 packaging-tutorial.tex:1641 msgid "Finish filling \\texttt{debian/control} and other files" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1394 packaging-tutorial.tex:1641 msgid "Enjoy" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1419 packaging-tutorial.tex:1419 packaging-tutorial.tex:1796 packaging-tutorial.tex:1796 msgid "Practical session 3: packaging a Java library" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1419 packaging-tutorial.tex:1796 msgid "Take a quick look at some documentation about Java packaging:\\\\" msgstr "" #. type: itemize #: packaging-tutorial.tex:1419 packaging-tutorial.tex:1796 msgid "\\url{https://wiki.debian.org/Java}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1419 packaging-tutorial.tex:1796 msgid "\\url{https://wiki.debian.org/Java/Packaging}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1419 packaging-tutorial.tex:1796 msgid "\\url{https://www.debian.org/doc/packaging-manuals/java-policy/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1419 packaging-tutorial.tex:1796 msgid "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1419 packaging-tutorial.tex:1796 msgid "" "Paper and slides from a Debconf10 talk about javahelper:\\\\ {\\footnotesize " "\\url{http://pkg-java.alioth.debian.org/docs/debconf10-javahelper-paper.pdf}\\\\ " "\\url{http://pkg-java.alioth.debian.org/docs/debconf10-javahelper-slides.pdf}}" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1419 packaging-tutorial.tex:1796 msgid "Download IRClib from \\url{http://moepii.sourceforge.net/}" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1419 packaging-tutorial.tex:1796 msgid "Package it" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1440 packaging-tutorial.tex:1440 packaging-tutorial.tex:1838 packaging-tutorial.tex:1838 msgid "Practical session 4: packaging a Ruby gem" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1440 packaging-tutorial.tex:1838 msgid "Take a quick look at some documentation about Ruby packaging:\\\\" msgstr "" #. type: itemize #: packaging-tutorial.tex:1440 packaging-tutorial.tex:1838 msgid "\\url{https://wiki.debian.org/Ruby}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1440 packaging-tutorial.tex:1838 msgid "\\url{https://wiki.debian.org/Teams/Ruby}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1440 packaging-tutorial.tex:1838 msgid "\\url{https://wiki.debian.org/Teams/Ruby/Packaging}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1440 packaging-tutorial.tex:1838 msgid "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (in the \\texttt{gem2deb} " "package)" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1440 packaging-tutorial.tex:1838 msgid "" "Create a basic Debian source package from the \\texttt{peach} gem:\\\\ " "\\texttt{gem2deb peach}" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1440 packaging-tutorial.tex:1459 packaging-tutorial.tex:1838 packaging-tutorial.tex:1895 msgid "Improve it so that it becomes a proper Debian package" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1459 packaging-tutorial.tex:1459 packaging-tutorial.tex:1895 packaging-tutorial.tex:1895 msgid "Practical session 5: packaging a Perl module" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1459 packaging-tutorial.tex:1895 msgid "Take a quick look at some documentation about Perl packaging:\\\\" msgstr "" #. type: itemize #: packaging-tutorial.tex:1459 packaging-tutorial.tex:1895 msgid "\\url{http://pkg-perl.alioth.debian.org/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1459 packaging-tutorial.tex:1895 msgid "\\url{https://wiki.debian.org/Teams/DebianPerlGroup}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1459 packaging-tutorial.tex:1895 msgid "" "\\texttt{dh-make-perl(1)}, \\texttt{dpt(1)} (in the \\texttt{pkg-perl-tools} " "package)" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1459 packaging-tutorial.tex:1895 msgid "" "Create a basic Debian source package from the \\texttt{Acme} CPAN " "distribution:\\\\ \\verb|dh-make-perl --cpan Acme|" msgstr "" #. type: section{#2} #: packaging-tutorial.tex:1461 msgid "Answers to practical sessions" msgstr "" #. type: center #: packaging-tutorial.tex:1467 msgid "\\LARGE Answers to" msgstr "" #. type: center #: packaging-tutorial.tex:1467 msgid "[0.5em] practical sessions" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1524 msgid "Fetching the source" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1524 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1524 msgid "" "Use dget to download the \\texttt{.dsc} file:\\\\ {\\small \\texttt{dget " "http://cdn.debian.net/debian/pool/main/g/grep/grep\\_2.6.3-3.dsc}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1524 msgid "" "According to \\url{https://tracker.debian.org/grep}, \\texttt{grep} version " "2.12-2 is currently in \\textsl{stable} (\\textsl{wheezy}). If you have " "\\texttt{deb-src} lines for \\textsl{squeeze} in your " "\\texttt{/etc/apt/sources.list}, you can use:\\\\ \\texttt{apt-get source " "grep=2.12-2}\\\\ or \\texttt{apt-get source grep/stable}\\\\ or, if you feel " "lucky: \\texttt{apt-get source grep}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1524 msgid "The \\texttt{grep} source package is composed of three files:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1524 msgid "\\texttt{grep\\_2.6.3-3.dsc}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1524 msgid "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1524 msgid "\\texttt{grep\\_2.6.3.orig.tar.bz2}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1524 msgid "This is typical of the \"3.0 (quilt)\" format." msgstr "" #. type: itemize #: packaging-tutorial.tex:1524 msgid "" "If needed, uncompress the source with\\\\ \\texttt{dpkg-source -x " "grep\\_2.6.3-3.dsc}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1543 msgid "Looking around and building the package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1543 msgid "" "According to \\texttt{debian/control}, this package only generates one " "binary package, named \\texttt{grep}." msgstr "" #. type: itemize #: packaging-tutorial.tex:1543 msgid "" "According to \\texttt{debian/rules}, this package is typical of " "\\textsl{classic} debhelper packaging, without using \\textsl{CDBS} or " "\\textsl{dh}. One can see the various calls to \\texttt{dh\\_*} commands in " "\\texttt{debian/rules}." msgstr "" #. type: itemize #: packaging-tutorial.tex:1552 msgid "Use \\texttt{apt-get build-dep grep} to fetch the build-dependencies" msgstr "" #. type: itemize #: packaging-tutorial.tex:1552 msgid "" "Then \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc} (Takes about 1 " "min)" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1556 msgid "Editing the changelog" msgstr "" #. type: itemize #: packaging-tutorial.tex:1573 msgid "" "\\texttt{debian/changelog} is a text file. You could edit it and add a new " "entry manually." msgstr "" #. type: itemize #: packaging-tutorial.tex:1573 msgid "Or you can use \\texttt{dch -i}, which will add an entry and open the editor" msgstr "" #. type: itemize #: packaging-tutorial.tex:1573 msgid "" "The name and email can be defined using the \\texttt{DEBFULLNAME} and " "\\texttt{DEBEMAIL} environment variables" msgstr "" #. type: itemize #: packaging-tutorial.tex:1573 msgid "After that, rebuild the package: a new version of the package is built" msgstr "" #. type: itemize #: packaging-tutorial.tex:1573 msgid "" "Package versioning is detailed in section 5.6.12 of the Debian policy\\\\ " "\\url{https://www.debian.org/doc/debian-policy/ch-controlfields}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1577 msgid "Disabling Perl regexp support and rebuilding" msgstr "" #. type: itemize #: packaging-tutorial.tex:1593 msgid "" "Check with \\texttt{./configure -{}-help}: the option to disable Perl regexp " "is \\texttt{-{}-disable-perl-regexp}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1593 msgid "Edit \\texttt{debian/rules} and find the \\texttt{./configure} line" msgstr "" #. type: itemize #: packaging-tutorial.tex:1593 msgid "Add \\texttt{-{}-disable-perl-regexp}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1593 msgid "Rebuild with \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1597 msgid "Comparing and testing the packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:1623 msgid "Compare the binary packages: \\texttt{debdiff ../*changes}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1623 msgid "Compare the source packages: \\texttt{debdiff ../*dsc}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1623 msgid "" "Install the newly built package: \\texttt{debi}\\\\ Or \\texttt{dpkg -i " "../grep\\_<TAB>}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1623 msgid "\\texttt{grep -P foo} no longer works!" msgstr "" #. type: frame #: packaging-tutorial.tex:1623 msgid "Or not: reinstall the previous version of the package:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1623 msgid "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= previous " "version)}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1670 packaging-tutorial.tex:1817 packaging-tutorial.tex:1859 packaging-tutorial.tex:1907 msgid "Step by step\\ldots" msgstr "" #. type: itemize #: packaging-tutorial.tex:1670 msgid "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1670 msgid "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1670 msgid "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1670 msgid "\\texttt{cd gnujump-1.0.8/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1670 msgid "\\texttt{dh\\_make}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1670 msgid "Type of package: single binary (for now)" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1670 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\small]\n" "gnujump-1.0.8$ ls debian/\n" "changelog gnujump.default.ex preinst.ex\n" "compat gnujump.doc-base.EX prerm.ex\n" "control init.d.ex README.Debian\n" "copyright manpage.1.ex README.source\n" "docs manpage.sgml.ex rules\n" "emacsen-install.ex manpage.xml.ex source\n" "emacsen-remove.ex menu.ex watch.ex\n" "emacsen-startup.ex postinst.ex\n" "gnujump.cron.d.ex postrm.ex" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1697 packaging-tutorial.tex:1876 packaging-tutorial.tex:1918 msgid "Step by step\\ldots (2)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1697 msgid "" "Look at \\texttt{debian/changelog}, \\texttt{debian/rules}, " "\\texttt{debian/control}\\\\ (auto-filled by \\textbf{dh\\_make})" msgstr "" #. type: itemize #: packaging-tutorial.tex:1697 msgid "" "In \\texttt{debian/control}:\\\\ \\texttt{Build-Depends: debhelper (>= " "7.0.50~), autotools-dev}\\\\ Lists the \\textsl{build-dependencies} = " "packages needed to build the package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1697 msgid "Try to build the package as-is (thanks to \\textbf{dh} magic)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1697 msgid "And add build-dependencies, until it builds" msgstr "" #. type: itemize #: packaging-tutorial.tex:1697 msgid "" "Hint: use \\texttt{apt-cache search} and \\texttt{apt-file} to find the " "packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:1697 msgid "Example:" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1697 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "checking for sdl-config... no\n" "checking for SDL - version >= 1.2.0... no\n" "[...]\n" "configure: error: *** SDL version 1.2.0 not found!" msgstr "" #. type: itemize #: packaging-tutorial.tex:1697 msgid "$\\rightarrow$ Add \\textbf{libsdl1.2-dev} to Build-Depends and install it." msgstr "" #. type: itemize #: packaging-tutorial.tex:1697 msgid "Better: use \\textbf{pbuilder} to build in a clean environment" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1729 msgid "Step by step\\ldots (3)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1729 msgid "" "After installing \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, " "libsdl-mixer1.2-dev}, you probably run into another error:" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1729 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\scriptsize]\n" "/usr/bin/ld: SDL_rotozoom.o: undefined reference to symbol " "'ceil@@GLIBC_2.2.5'\n" "//lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from " "command line\n" "collect2: error: ld returned 1 exit status\n" "Makefile:376: recipe for target 'gnujump' failed" msgstr "" #. type: itemize #: packaging-tutorial.tex:1729 msgid "" "This problem is caused by bitrot: gnujump has not been adjusted following " "linker changes. It requires a patch in the Debian package, which can be " "created with the following commands:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1729 msgid "" "\\texttt{mkdir debian/patches}\\\\ \\texttt{quilt new " "linker-fixes.patch}\\\\ \\texttt{quilt add src/Makefile.am}\\\\" msgstr "" #. type: itemize #: packaging-tutorial.tex:1729 msgid "Edit \\texttt{src/Makefile.am} and replace" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1729 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "gnujump_LDFLAGS = $(all_libraries)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1729 msgid "by" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1729 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "gnujump_LDFLAGS = -Wl,--as-needed\n" "gnujump_LDADD = $(all_libraries) -lm" msgstr "" #. type: itemize #: packaging-tutorial.tex:1729 msgid "\\texttt{quilt refresh}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1758 packaging-tutorial.tex:1771 msgid "Step by step\\ldots (4)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1758 msgid "" "Since \\texttt{src/Makefile.am} was changed, autoreconf must be called " "during the build. To do that automatically with \\texttt{dh}, change the " "\\texttt{dh} call in \\texttt{debian/rules} from: \\texttt{dh \\$\\@ " "-{}-with autotools-dev}\\\\ to: \\texttt{dh \\$\\@ -{}-with autotools-dev " "-{}-with autoreconf}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1758 msgid "" "Use \\texttt{debc} to list the content of the generated package, and " "\\texttt{debi} to install it and test it." msgstr "" #. type: itemize #: packaging-tutorial.tex:1758 msgid "Test the package with \\texttt{lintian}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1758 msgid "" "While not a strict requirement, it is recommended that packages uploaded to " "Debian are \\textsl{lintian-clean}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1758 msgid "More problems can be listed using \\texttt{lintian -EviIL +pedantic}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1758 msgid "Some hints:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1758 msgid "Remove the files that you don't need in \\texttt{debian/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1758 msgid "Fill in \\texttt{debian/control}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1758 msgid "" "Install the executable to \\texttt{/usr/games} by overriding " "\\texttt{dh\\_auto\\_configure}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1758 msgid "" "Use \\textsl{hardening} compiler flags to increase security.\\\\ See " "\\url{https://wiki.debian.org/Hardening}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1771 msgid "Compare your package with the one already packaged in Debian:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1771 msgid "" "It splits the data files to a second package, that is the same across all " "architectures ($\\rightarrow$ saves space in the Debian archive)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1771 msgid "" "It installs a .desktop file (for the GNOME/KDE menus) and also integrates " "into the Debian menu" msgstr "" #. type: itemize #: packaging-tutorial.tex:1771 msgid "It fixes a few minor problems using patches" msgstr "" #. type: itemize #: packaging-tutorial.tex:1817 msgid "\\texttt{apt-get install javahelper}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1817 msgid "Create a basic source package: \\texttt{jh\\_makepkg}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1817 msgid "Library" msgstr "" #. type: itemize #: packaging-tutorial.tex:1817 msgid "None" msgstr "" #. type: itemize #: packaging-tutorial.tex:1817 msgid "Default Free compiler/runtime" msgstr "" #. type: itemize #: packaging-tutorial.tex:1817 msgid "Look at and fix \\texttt{debian/*}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1817 msgid "\\texttt{dpkg-buildpackage -us -uc} or \\texttt{debuild}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1817 msgid "\\texttt{lintian}, \\texttt{debc}, etc." msgstr "" #. type: itemize #: packaging-tutorial.tex:1817 msgid "Compare your result with the \\texttt{libirclib-java} source package" msgstr "" #. type: frame #: packaging-tutorial.tex:1859 msgid "\\texttt{gem2deb peach}:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1859 msgid "Downloads the gem from rubygems.org" msgstr "" #. type: itemize #: packaging-tutorial.tex:1859 msgid "Creates a suitable .orig.tar.gz archive, and untar it" msgstr "" #. type: itemize #: packaging-tutorial.tex:1859 msgid "Initializes a Debian source package based on the gem's metadata" msgstr "" #. type: itemize #: packaging-tutorial.tex:1859 msgid "Named \\texttt{ruby-\\textsl{gemname}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1859 msgid "Tries to build the Debian binary package (this might fail)" msgstr "" #. type: frame #: packaging-tutorial.tex:1859 msgid "" "\\texttt{dh\\_ruby} (included in \\textsl{gem2deb}) does the Ruby-specific " "tasks:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1859 msgid "Build C extensions for each Ruby version" msgstr "" #. type: itemize #: packaging-tutorial.tex:1859 msgid "Copy files to their destination directory" msgstr "" #. type: itemize #: packaging-tutorial.tex:1859 msgid "Update shebangs in executable scripts" msgstr "" #. type: itemize #: packaging-tutorial.tex:1859 msgid "" "Run tests defined in \\texttt{debian/ruby-tests.rb}, " "\\texttt{debian/ruby-tests.rake}, or \\texttt{debian/ruby-test-files.yaml}, " "as well as various other checks" msgstr "" #. type: frame #: packaging-tutorial.tex:1876 packaging-tutorial.tex:1918 msgid "Improve the generated package:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1876 msgid "Run \\texttt{debclean} to clean the source tree. Look at \\texttt{debian/}." msgstr "" #. type: itemize #: packaging-tutorial.tex:1876 msgid "\\texttt{changelog} and \\texttt{compat} should be correct" msgstr "" #. type: itemize #: packaging-tutorial.tex:1876 msgid "Edit \\texttt{debian/control}: improve \\texttt{Description}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1876 msgid "Write a proper \\texttt{copyright} file based on the upstream files" msgstr "" #. type: itemize #: packaging-tutorial.tex:1876 msgid "" "Compare your package with the \\texttt{ruby-peach} package in the Debian " "archive" msgstr "" #. type: frame #: packaging-tutorial.tex:1907 msgid "\\verb|dh-make-perl --cpan Acme|:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1907 msgid "Downloads the tarball from the CPAN" msgstr "" #. type: itemize #: packaging-tutorial.tex:1907 msgid "Creates a suitable .orig.tar.gz archive, and untars it" msgstr "" #. type: itemize #: packaging-tutorial.tex:1907 msgid "Initializes a Debian source package based on the distribution's metadata" msgstr "" #. type: itemize #: packaging-tutorial.tex:1907 msgid "Named \\texttt{lib\\textsl{distname}-perl}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1918 msgid "" "\\texttt{debian/changelog}, \\texttt{debian/compat}, " "\\texttt{debian/libacme-perl.docs}, and \\texttt{debian/watch} should be " "correct" msgstr "" #. type: itemize #: packaging-tutorial.tex:1918 msgid "" "Edit \\texttt{debian/control}: improve \\texttt{Description}, and remove " "boilerplate at the bottom" msgstr "" #. type: itemize #: packaging-tutorial.tex:1918 msgid "" "Edit \\texttt{debian/copyright}: remove boilerplate paragraph at the top, " "add years of copyright to the \\texttt{Files:\\hspace{0.3em}*} stanza" msgstr ""