packaging-tutorial-0.12/0000755000000000000000000000000012234415552012112 5ustar packaging-tutorial-0.12/README.translators0000644000000000000000000000223012233730346015342 0ustar Translating packaging-tutorial ============================== packaging-tutorial is written in LaTeX, and uses po4a. You need some texlive packages to build it. If you are not sure of the packages needed for your language, just install 'texlive-full' (but it's huge). Getting the source: debcheckout packaging-tutorial Generating a translated document: - put the .po file in po4a/po/ - run: dpkg-buildpackage or run: po4a po4a/po4a.cfg --verbose then: pdflatex packaging-tutorial.CODE.tex Two big warnings: 1) LaTeX is very sensitive to escape characters and well-balanced parenthesis. 2) The lstlisting environment, used for code examples in the document, does not support utf8 characters. Generally, it does not make sense to translate most of those parts, as they are code. However, it is still possible to translate the comments, but accented characters must be escaped. See the 'fr' translation, and specifically the 'debian/rules using debhelper' slides, for examples. Crediting your work: See po4a/add_fr/fr.add for an example of adding an additional slide at the end, and the fr.po file for an example of adding your name on the title slide. packaging-tutorial-0.12/packaging-tutorial.tex0000644000000000000000000020006412234411740016416 0ustar \documentclass[10pt,final]{beamer} \mode \usetheme{debian} %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{...} \usepackage{debiantutorial} \hypersetup{bookmarks} \title{Debian Packaging Tutorial} \author[]{Lucas Nussbaum\\{\small\texttt{packaging-tutorial@packages.debian.org}}} %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{\footnotesize version 0.12 -- 2013-10-31} % DATE - use debian/rules update-version-date \begin{document} \frame{\titlepage} \begin{frame}{About this tutorial} \begin{itemize} \item Goal: \textbf{tell you what you really need to know about Debian packaging} \begin{itemize} \hbr \item Modify existing packages \hbr \item Create your own packages \hbr \item Interact with the Debian community \hbr \item Become a Debian power-user \end{itemize} \br \item Covers the most important points, but is not complete \begin{itemize} \item You will need to read more documentation \end{itemize} \br \item Most of the content also applies to Debian derivative distributions \begin{itemize} \hbr \item That includes Ubuntu \end{itemize} \end{itemize} \end{frame} \begin{frame}{Outline} \tableofcontents[hideallsubsections] \end{frame} \section{Introduction} \subsection{Debian} \begin{frame}{Debian} \begin{itemize} \item \textbf{GNU/Linux distribution} \br \item 1st major distro developed ``openly in the spirit of GNU'' \br \item \textbf{Non-commercial}, built collaboratively by over 1,000 volunteers \br \item 3 main features: \begin{itemize} \item \textbf{Quality} -- culture of technical excellence\\ {\small\sl We release when it's ready} \hbr \item \textbf{Freedom} -- devs and users bound by the \textsl{Social Contract}\\ Promoting the culture of Free Software since 1993 \hbr \item \textbf{Independence} -- no (single) company babysitting Debian\\ And open decision-making process (\textsl{do-ocracy} + \textsl{democracy}) \end{itemize} \br \item \textbf{Amateur} in the best sense: done for the love of it \end{itemize} \end{frame} \subsection{Debian packages} \begin{frame}{Debian packages} \begin{itemize} \item \textbf{.deb} files (binary packages) \br \item A very powerful and convenient way to distribute software to users \br \item One of the two most common package formats (with RPM) \br \item Universal: \begin{itemize} \item 30,000 binary packages in Debian\\ $\rightarrow$ most of the available free software is packaged in Debian! \hbr \item For 12 ports (architectures), including 2 non-Linux (Hurd; KFreeBSD) \hbr \item Also used by 120 Debian derivative distributions \end{itemize} \end{itemize} \end{frame} \subsection{The Deb package format} \begin{frame}[fragile=singleslide]{The Deb package format} \begin{itemize} \item \texttt{.deb} file: an \texttt{ar} archive \begin{lstlisting}[basicstyle=\ttfamily\footnotesize] $ ar tv wget_1.12-2.1_i386.deb rw-r--r-- 0/0 4 Sep 5 15:43 2010 debian-binary rw-r--r-- 0/0 2403 Sep 5 15:43 2010 control.tar.gz rw-r--r-- 0/0 751613 Sep 5 15:43 2010 data.tar.gz \end{lstlisting} % $ \begin{itemize} \item \texttt{debian-binary}: version of the deb file format, \texttt{"2.0\textbackslash{}n"} \item \texttt{control.tar.gz}: metadata about the package\\ {\small \texttt{\textbf{control}, md5sums, (pre|post)(rm|inst), triggers, shlibs}, \ldots} \item \texttt{data.tar.gz}: data files of the package \end{itemize} \br \item You could create your \texttt{.deb} files manually\\ {\footnotesize \url{http://tldp.org/HOWTO/html\_single/Debian-Binary-Package-Building-HOWTO/}} \br \item But most people don't do it that way \end{itemize} \br \centerline{\textbf{This tutorial: create Debian packages, the Debian way}} \end{frame} \subsection{Tools you will need} \begin{frame}{Tools you will need} \begin{itemize} \item A Debian (or Ubuntu) system (with root access) \br \item Some packages: \begin{itemize} \item \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) \begin{itemize} \item includes a dependency on \textbf{dpkg-dev}, which contains basic Debian-specific tools to create packages \end{itemize} \hbr \item \textbf{devscripts}: contains many useful scripts for Debian maintainers \end{itemize} \end{itemize} \br 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. \end{frame} \subsection{General packaging workflow} \begin{frame}{General packaging workflow} \begin{center} \begin{tikzpicture}[ node1/.style={shape=rectangle,draw=rouge,fill=debianbackgroundblue,thick}, arr/.style={very thick}, command/.style={text=rouge,font=\ttfamily}, ] \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[arr,->] (bin) -- (-1,-6) node[pos=0.5,left] {upload (\textttc{dput})}; \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); % hack hack hack \end{tikzpicture} \end{center} \end{frame} \subsection{Rebuilding dash} \begin{frame}{Example: rebuilding dash} \begin{enumerate} \item 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}} \hbr \item Create a working directory, and get in it:\\ \texttt{mkdir /tmp/debian-tutorial ; cd /tmp/debian-tutorial} \hbr \item 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})} \hbr \item Build the package\\ {\texttt{cd dash-*\\ debuild -us -uc}} ~~~(\texttt{-us -uc} disables signing the package with GPG) \hbr \item Check that it worked \begin{itemize} \item There are some new \texttt{.deb} files in the parent directory \end{itemize} \hbr \item Look at the \texttt{debian/} directory \begin{itemize} \item That's where the packaging work is done \end{itemize} \end{enumerate} \end{frame} \section{Creating source packages} \subsection{Source packages basics} \begin{frame}{Source package} \begin{itemize} \item 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} \hbr \item Two kinds of packages: (if unsure, use non-native) \begin{itemize} \small \item Native packages: normally for Debian specific software (\textsl{dpkg}, \textsl{apt}) \item Non-native packages: software developed outside Debian \end{itemize} \hbr \item Main file: \texttt{.dsc} (meta-data) \hbr \item Other files depending on the version of the source format \begin{itemize} \item 1.0 or 3.0 (native): \texttt{package\_version.tar.gz} \hbr \item 1.0 (non-native): \begin{itemize} \item \texttt{pkg\_ver.orig.tar.gz}: upstream source \item \texttt{pkg\_debver.diff.gz}: patch to add Debian-specific changes \end{itemize} \hbr \item 3.0 (quilt): \begin{itemize} \item \texttt{pkg\_ver.orig.tar.gz}: upstream source \item \texttt{pkg\_debver.debian.tar.gz}: tarball with the Debian changes \end{itemize} \end{itemize} \end{itemize} \hbr (See \texttt{dpkg-source(1)} for exact details) \end{frame} \begin{frame}[fragile=singleslide]{Source package example (wget\_1.12-2.1.dsc)} \begin{lstlisting}[basicstyle=\ttfamily\small] Format: 3.0 (quilt) Source: wget Binary: wget Architecture: any Version: 1.12-2.1 Maintainer: Noel Kothe Homepage: http://www.gnu.org/software/wget/ Standards-Version: 3.8.4 Build-Depends: debhelper (>> 5.0.0), gettext, texinfo, libssl-dev (>= 0.9.8), dpatch, info2man Checksums-Sha1: 50d4ed2441e67[..]1ee0e94248 2464747 wget_1.12.orig.tar.gz d4c1c8bbe431d[..]dd7cef3611 48308 wget_1.12-2.1.debian.tar.gz Checksums-Sha256: 7578ed0974e12[..]dcba65b572 2464747 wget_1.12.orig.tar.gz 1e9b0c4c00eae[..]89c402ad78 48308 wget_1.12-2.1.debian.tar.gz Files: 141461b9c04e4[..]9d1f2abf83 2464747 wget_1.12.orig.tar.gz e93123c934e3c[..]2f380278c2 48308 wget_1.12-2.1.debian.tar.gz \end{lstlisting} \end{frame} \subsection{Retrieving source packages} \begin{frame}{Retrieving an existing source package} \begin{itemize} \item From the Debian archive: \begin{itemize} \item \texttt{apt-get source \textsl{package}} \item \texttt{apt-get source \textsl{package=version}} \item \texttt{apt-get source \textsl{package/release}} \end{itemize} (You need \texttt{deb-src} lines in \texttt{sources.list}) \br \item From the Internet: \begin{itemize} \item \texttt{dget \textsl{url-to.dsc}} \item \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) \end{itemize} \br \item From the (declared) version control system: \begin{itemize} \item \texttt{debcheckout \textsl{package}} \end{itemize} \br \item Once downloaded, extract with \texttt{dpkg-source -x \textsl{file.dsc}} \end{itemize} \end{frame} \subsection{Creating a basic source package} \begin{frame}{Creating a basic source package} \begin{itemize} \item Download the upstream source\\ (\textsl{upstream source} = the one from the software's original developers) \hbr \item Rename to \texttt{<\textsl{source\_package}>\_<\textsl{upstream\_version}>.orig.tar.gz}\\ (example: \texttt{simgrid\_3.6.orig.tar.gz}) \hbr \item Untar it \hbr \item Rename the directory to \texttt{<\textsl{source\_package}>-<\textsl{upstream\_version}>}\\ (example: \texttt{simgrid-3.6}) \hbr \item \texttt{cd \texttt{<\textsl{source\_package}>-<\textsl{upstream\_version}>} \&\& dh\_make}\\ (from the \textbf{dh-make} package) \hbr \item There are some alternatives to \texttt{dh\_make} for specific sets of packages: \textbf{dh-make-perl}, \textbf{dh-make-php}, \ldots \hbr \item \texttt{debian/} directory created, with a lot of files in it \end{itemize} \end{frame} \subsection{Files in debian/} \begin{frame}{Files in debian/} All the packaging work should be made by modifying files in \texttt{debian/} \hbr \begin{itemize} \item Main files: \begin{itemize} \item \textbf{control} -- meta-data about the package (dependencies, etc.) \item \textbf{rules} -- specifies how to build the package \item \textbf{copyright} -- copyright information for the package \item \textbf{changelog} -- history of the Debian package \end{itemize} \hbr \item Other files: \begin{itemize} \item compat \item watch \item dh\_install* targets\\ {\small *.dirs, *.docs, *.manpages, \ldots} \item maintainer scripts\\ {\small *.postinst, *.prerm, \ldots} \item source/format \item patches/ -- if you need to modify the upstream sources \end{itemize} \hbr \item Several files use a format based on RFC 822 (mail headers) \end{itemize} \end{frame} \begin{frame}[fragile=singleslide]{debian/changelog} \begin{itemize} \item Lists the Debian packaging changes \item Gives the current version of the package \begin{center} \begin{tikzpicture} \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}; \end{tikzpicture} \end{center} %% \item Edited manually or with \textttc{dch} \begin{itemize} \item Create a changelog entry for a new release: \textttc{dch -i} \end{itemize} \item Special format to automatically close Debian or Ubuntu bugs\\ Debian: \texttt{Closes:~\#595268}; Ubuntu: \texttt{LP:~\#616929} \item Installed as \texttt{/usr/share/doc/\textit{package}/changelog.Debian.gz} \end{itemize} \seprule \begin{lstlisting}[basicstyle=\ttfamily\footnotesize] mpich2 (1.2.1.1-5) unstable; urgency=low * Use /usr/bin/python instead of /usr/bin/python2.5. Allow to drop dependency on python2.5. Closes: #595268 * Make /usr/bin/mpdroot setuid. This is the default after the installation of mpich2 from source, too. LP: #616929 + Add corresponding lintian override. -- Lucas Nussbaum Wed, 15 Sep 2010 18:13:44 +0200 \end{lstlisting} \end{frame} \begin{frame}[fragile=singleslide]{debian/control} \hbr \begin{itemize} \item Package metadata \begin{itemize} \item For the source package itself \item For each binary package built from this source \end{itemize} \hbr \item Package name, section, priority, maintainer, uploaders, build-dependencies, dependencies, description, homepage, \ldots \hbr \item Documentation: Debian Policy chapter 5\\ \url{http://www.debian.org/doc/debian-policy/ch-controlfields} \end{itemize} \seprule \begin{lstlisting}[basicstyle=\ttfamily\footnotesize] Source: wget Section: web Priority: important Maintainer: Noel Kothe Build-Depends: debhelper (>> 5.0.0), gettext, texinfo, libssl-dev (>= 0.9.8), dpatch, info2man Standards-Version: 3.8.4 Homepage: http://www.gnu.org/software/wget/ Package: wget Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: retrieves files from the web Wget is a network utility to retrieve files from the Web \end{lstlisting} \end{frame} \begin{frame}{Architecture: all or any} Two kinds of binary packages: \hbr \begin{itemize} \item Packages with different contents on each Debian architecture \begin{itemize} \item Example: C program \item \texttt{Architecture:\ any} in \texttt{debian/control} \begin{itemize} \item Or, if it only works on a subset of architectures:\\ \texttt{Architecture:\ amd64 i386 ia64 hurd-i386} \end{itemize} \item buildd.debian.org: builds all the other architectures for you on upload \item Named \texttt{\textsl{package}\_\textsl{version}\_\textsl{architecture}.deb} \end{itemize} \br \item Packages with the same content on all architectures \begin{itemize} \item Example: Perl library \item \texttt{Architecture:\ all} in \texttt{debian/control} \item Named \texttt{\textsl{package}\_\textsl{version}\_\textbf{all}.deb} \end{itemize} \end{itemize} \br A source package can generate a mix of \texttt{Architecture:\ any} and \texttt{Architecture:\ all} binary packages \end{frame} \begin{frame}[fragile=singleslide]{debian/rules} \hbr \begin{itemize} \item Makefile \br \item Interface used to build Debian packages \br \item Documented in Debian Policy, chapter 4.8\\ {\small \url{http://www.debian.org/doc/debian-policy/ch-source\#s-debianrules}} \br \item Required targets: \begin{itemize} \item \texttt{build, build-arch, build-indep}: should perform all the configuration and compilation \hbr \item \texttt{binary, binary-arch, binary-indep}: build the binary packages \begin{itemize} \item \texttt{dpkg-buildpackage} will call \texttt{binary} to build all the packages, or \texttt{binary-arch} to build only the \texttt{Architecture:~any} packages \end{itemize} \hbr \item \texttt{clean}: clean up the source directory \end{itemize} \end{itemize} \end{frame} \subsection{Packaging helpers} \begin{frame}{Packaging helpers -- debhelper} \begin{itemize} \item You could write shell code in \texttt{debian/rules} directly \begin{itemize} \item See the \texttt{adduser} package for example \end{itemize} \hbr \item Better practice (used by most packages): use a \textsl{Packaging helper} \hbr \item Most popular one: \textbf{debhelper} (used by 98\% of packages) \hbr \item Goals: \begin{itemize} \item Factor the common tasks in standard tools used by all packages \item Fix some packaging bugs once for all packages \end{itemize} {\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} \begin{itemize} \item Called from \texttt{debian/rules} \item Configurable using command parameters or files in \texttt{debian/} \end{itemize} {\footnotesize \ttfamily \textsl{package}.docs, \textsl{package}.examples, \textsl{package}.install, \textsl{package}.manpages, \ldots} \hbr \item Third-party helpers for sets of packages: \textbf{python-support}, \textbf{dh\_ocaml}, \ldots \hbr \item Gotcha: \texttt{debian/compat}: Debhelper compatibility version (use "7") \end{itemize} \end{frame} \begin{frame}[fragile=singleslide]{debian/rules using debhelper (1/2)} \begin{lstlisting}[basicstyle=\ttfamily\footnotesize,escapeinside=\{\}] #!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 build: $(MAKE) #docbook-to-man debian/packagename.sgml > packagename.1 clean: dh_testdir dh_testroot rm -f build-stamp configure-stamp $(MAKE) clean dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/packagename. $(MAKE) DESTDIR=$(CURDIR)/debian/packagename install \end{lstlisting} \end{frame} \begin{frame}[fragile=singleslide]{debian/rules using debhelper (2/2)} \begin{lstlisting}[basicstyle=\ttfamily\footnotesize,escapeinside=\{\}] # Build architecture-independent files here. binary-indep: build install # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot dh_installchangelogs dh_installdocs dh_installexamples dh_install dh_installman dh_link dh_strip dh_compress dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install configure \end{lstlisting} \end{frame} \begin{frame}[fragile=singleslide]{CDBS} \hbr \begin{itemize} \item With debhelper, still a lot of redundancy between packages \hbr \item Second-level helpers that factor common functionality \begin{itemize} \item E.g. building with \texttt{./configure \&\& make \&\& make install} or CMake \end{itemize} \hbr \item CDBS: \begin{itemize} \item Introduced in 2005, based on advanced \textsl{GNU make} magic \item Documentation: \texttt{/usr/share/doc/cdbs/} \item Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \ldots \item But some people hate it: \begin{itemize} \item Sometimes difficult to customize package builds:\\ "\textsl{twisty maze of makefiles and environment variables}" \item Slower than plain debhelper (many useless calls to \texttt{dh\_*}) \end{itemize} \end{itemize} \end{itemize} \seprule \begin{lstlisting}[basicstyle=\ttfamily\footnotesize,escapeinside=\{\}] #!/usr/bin/make -f include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/autotools.mk # add an action after the build build/mypackage:: /bin/bash debian/scripts/foo.sh \end{lstlisting} \end{frame} \begin{frame}[fragile=singleslide]{Dh (aka Debhelper 7, or dh7)} \begin{itemize} \item Introduced in 2008 as a \textsl{CDBS killer} \hbr \item \textbf{dh} command that calls \texttt{dh\_*} \hbr \item Simple \textsl{debian/rules}, listing only overrides \hbr \item Easier to customize than CDBS \hbr \item Doc: manpages (\texttt{debhelper(7)}, \texttt{dh(1)}) + slides from DebConf9 talk\\ \url{http://kitenet.net/~joey/talks/debhelper/debhelper-slides.pdf} \end{itemize} \seprule \begin{lstlisting}[basicstyle=\ttfamily\footnotesize] #!/usr/bin/make -f %: dh $@ override_dh_auto_configure: dh_auto_configure -- --with-kitchen-sink override_dh_auto_build: make world \end{lstlisting} \end{frame} \begin{frame}{Classic debhelper vs CDBS vs dh} \hbr \begin{itemize} \item Mind shares:\\ Classic debhelper: 27\% \hskip 1em CDBS: 18\% \hskip 1em dh: 54\% \hbr \item Which one should I learn? \begin{itemize} \item Probably a bit of all of them \item You need to know debhelper to use dh and CDBS \item You might have to modify CDBS packages \end{itemize} \hbr \item Which one should I use for a new package? \begin{itemize} \item \textbf{dh} (only solution with an increasing mind share) \end{itemize} \end{itemize} \hbr \begin{center} \begin{tikzpicture} \begin{axis}[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] \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} \end{axis} \end{tikzpicture} \end{center} \end{frame} \section{Building and testing packages} \subsection{Building packages} \begin{frame}{Building packages} \begin{itemize} \item \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) \br \item \textttc{debuild}: build, test with \texttt{lintian}, sign with GPG \br \item Also possible to call \textttc{dpkg-buildpackage} directly \begin{itemize} \item Usually with \texttt{dpkg-buildpackage -us -uc} \end{itemize} \br \item It is better to build packages in a clean \& minimal environment \begin{itemize} \item \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}) \hbr \item \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} ) \end{itemize} \br \item Generates \texttt{.deb} files and a \texttt{.changes} file \begin{itemize} \item \texttt{.changes}: describes what was built; used to upload the package \end{itemize} \end{itemize} \end{frame} \subsection{Installing and testing packages} \begin{frame}{Installing and testing packages} \begin{itemize} \item Install the package locally: \textttc{debi} (will use \texttt{.changes} to know what to install) \br \item List the content of the package: \texttt{{\color{rouge}debc} ../mypackage.changes} \br \item 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}\\ \br \item Check the package with \texttt{lintian} (static analyzer):\\ \texttt{{\color{rouge}lintian} ../mypackage.changes}\\ \texttt{lintian -i}: gives more information about the errors \\ \texttt{lintian -EviIL +pedantic}: shows more problems\br \item Upload the package to Debian (\textttc{dput}) (needs configuration) \br \item Manage a private Debian archive with \textttc{reprepro}\\ Documentation: \url{http://mirrorer.alioth.debian.org/} \end{itemize} \end{frame} \section{Practical session 1: modifying the grep package} \begin{frame}{Practical session 1: modifying the grep package} \begin{enumerate} \item Go to \url{http://ftp.debian.org/debian/pool/main/g/grep/} and download version 2.6.3-3 of the package (if you use Ubuntu 11.10 or later, or Debian testing or unstable, use version 2.9-1 or 2.9-2 instead) \begin{itemize} \item If the source package is not unpacked automatically, unpack it with \texttt{dpkg-source~-x~grep\_*.dsc} \end{itemize} \item Look at the files in \texttt{debian/}. \begin{itemize} \item How many binary packages are generated by this source package? \item Which packaging helper does this package use? \end{itemize} \hbr \item Build the package \hbr \item We are now going to modify the package. Add a changelog entry and increase the version number. \hbr \item Now disable perl-regexp support (it is a \texttt{./configure} option) \hbr \item Rebuild the package \hbr \item Compare the original and the new package with debdiff \hbr \item Install the newly built package \hbr \item Cry if you messed up ;) \end{enumerate} \end{frame} \section{Advanced packaging topics} \subsection{debian/copyright} \begin{frame}[fragile=singleslide]{debian/copyright} \hbr \begin{itemize} \item Copyright and license information for the source and the packaging \item Traditionally written as a text file \item New machine-readable format: {\small\url{http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/}} \end{itemize} \seprule \begin{lstlisting}[basicstyle=\ttfamily\scriptsize] Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: X Solitaire Source: ftp://ftp.example.com/pub/games Files: * Copyright: Copyright 1998 John Doe License: GPL-2+ This program is free software; you can redistribute it [...] . On Debian systems, the full text of the GNU General Public License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. Files: debian/* Copyright: Copyright 1998 Jane Smith License: [LICENSE TEXT] \end{lstlisting} \end{frame} \subsection{Modifying the upstream source} \begin{frame}{Modifying the upstream source} Often needed: \begin{itemize} \item Fix bugs or add customizations that are specific to Debian \hbr \item Backport fixes from a newer upstream release \end{itemize} \br Several methods to do it: \begin{itemize} \item Modifying the files directly \begin{itemize} \item Simple \item But no way to track and document the changes \end{itemize} \hbr \item Using patch systems \begin{itemize} \item Eases contributing your changes to upstream \item Helps sharing the fixes with derivatives \item Gives more exposure to the changes\\ \url{http://patch-tracker.debian.org/} \end{itemize} \end{itemize} \end{frame} \begin{frame}{Patch systems} \begin{itemize} \item Principle: changes are stored as patches in \texttt{debian/patches/} \br \item Applied and unapplied during build \br \item Past: several implementations -- \textsl{simple-patchsys} (\textsl{cdbs}), \textsl{dpatch}, \textbf{\textsl{quilt}} \begin{itemize} \item Each supports two \texttt{debian/rules} targets: \begin{itemize} \item \texttt{debian/rules patch}: apply all patches \item \texttt{debian/rules unpatch}: de-apply all patches \end{itemize} \hbr \item More documentation: \url{http://wiki.debian.org/debian/patches} \end{itemize} \br \item \textbf{New source package format with built-in patch system: 3.0 (quilt)} \begin{itemize} \item Recommended solution \hbr \item You need to learn \textsl{quilt}\\ \url{http://pkg-perl.alioth.debian.org/howto/quilt.html} \hbr \item Patch-system-agnostic tool in \texttt{devscripts}: \texttt{edit-patch} \end{itemize} \end{itemize} \end{frame} \begin{frame}[fragile=singleslide]{Documentation of patches} \begin{itemize} \item Standard headers at the beginning of the patch \br \item Documented in DEP-3 - Patch Tagging Guidelines\\ \url{http://dep.debian.net/deps/dep3/} \end{itemize} \vfill \seprule \begin{lstlisting}[basicstyle=\ttfamily\footnotesize] Description: Fix widget frobnication speeds Frobnicating widgets too quickly tended to cause explosions. Forwarded: http://lists.example.com/2010/03/1234.html Author: John Doe Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123 Last-Update: 2010-03-29 --- a/src/widgets.c +++ b/src/widgets.c @@ -101,9 +101,6 @@ struct { \end{lstlisting} \end{frame} \subsection{Doing things during installation and removal} \begin{frame}{Doing things during installation and removal} \begin{itemize} \item Decompressing the package is sometimes not enough \hbr \item Create/remove system users, start/stop services, manage \textsl{alternatives} \hbr \item Done in \textsl{maintainer scripts}\\ \texttt{preinst, postinst, prerm, postrm} \begin{itemize} \item Snippets for common actions can be generated by debhelper \end{itemize} \hbr \item Documentation: \begin{itemize} \item Debian Policy Manual, chapter 6\\ {\footnotesize \url{http://www.debian.org/doc/debian-policy/ch-maintainerscripts}} \hbr \item Debian Developer's Reference, chapter 6.4\\ {\scriptsize \url{http://www.debian.org/doc/developers-reference/best-pkging-practices.html}} \hbr \item {\footnotesize \url{http://people.debian.org/~srivasta/MaintainerScripts.html}} \end{itemize} \br \item Prompting the user \begin{itemize} \item Must be done with \textbf{debconf} \hbr \item Documentation: \texttt{debconf-devel(7)} (\texttt{debconf-doc} package) \end{itemize} \end{itemize} \end{frame} \begin{frame}[fragile=singleslide]{Monitoring upstream versions} \begin{itemize} \item Specify where to look in \texttt{debian/watch} (see \texttt{uscan(1)}) \begin{lstlisting}[basicstyle=\ttfamily\footnotesize] version=3 http://tmrc.mit.edu/mirror/twisted/Twisted/(\d\.\d)/ \ Twisted-([\d\.]*)\.tar\.bz2 \end{lstlisting} \br \item Debian infrastructure that makes use of \texttt{debian/watch}:\\ \textbf{Debian External Health Status}\\ \url{http://dehs.alioth.debian.org/} \br \item Maintainer warned by emails sent to the Package Tracking System\\ \url{http://packages.qa.debian.org/} \br \item \texttt{uscan}: run a manual check \br \item \texttt{uupdate}: try to update your package to the latest upstream version \end{itemize} \end{frame} \subsection{Packaging with a Version Control System (SVN, Git)} \begin{frame}[fragile=singleslide]{Packaging with a Version Control System} \begin{itemize} \item Several tools to help manage branches and tags for your packaging work:\\ \texttt{svn-buildpackage}, \texttt{git-buildpackage} \hbr \item Example: \texttt{git-buildpackage} \begin{itemize} \item \texttt{upstream} branch to track upstream with \texttt{upstream/\textsl{version}} tags \item \texttt{master} branch tracks the Debian package \item \texttt{debian/\textsl{version}} tags for each upload \item \texttt{pristine-tar} branch to be able to rebuild the upstream tarball \end{itemize} \hbr \item \texttt{Vcs-*} fields in \texttt{debian/control} to locate the repository \begin{itemize} \item \url{http://wiki.debian.org/Alioth/Git} \item \url{http://wiki.debian.org/Alioth/Svn} \end{itemize} \end{itemize} \begin{lstlisting}[basicstyle=\ttfamily\scriptsize] Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/devscripts.git Vcs-Git: git://anonscm.debian.org/collab-maint/devscripts.git \end{lstlisting} \begin{lstlisting}[basicstyle=\ttfamily\scriptsize] Vcs-Browser: http://svn.debian.org/viewsvn/pkg-perl/trunk/libwww-perl/ Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libwww-perl \end{lstlisting} \begin{itemize} \item VCS-agnostic interface: \texttt{debcheckout}, \texttt{debcommit}, \texttt{debrelease}\\ \begin{itemize} \item \texttt{debcheckout grep} $\rightarrow$ checks out the source package from Git \end{itemize} \end{itemize} \end{frame} \subsection{Backporting packages} \begin{frame}{Backporting packages} \begin{itemize} \item 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} \br \item General idea: \begin{itemize} \item Take the source package from Debian unstable \hbr \item Modify it so that it builds and works fine on Debian stable \begin{itemize} \item Sometimes trivial (no changes needed) \item Sometimes difficult \item Sometimes impossible (many unavailable dependencies) \end{itemize} \end{itemize} \br \item Some backports are provided and supported by the Debian project\\ \url{http://backports.debian.org/} \end{itemize} \end{frame} \section{Maintaining packages in Debian} \subsection{Several ways to contribute to Debian} \begin{frame}{Several ways to contribute to Debian} \begin{itemize} \item \textbf{Worst} way to contribute: \begin{enumerate} \item Package your own application \item Get it into Debian \item Disappear \end{enumerate} \br \item \textbf{Better} ways to contribute: \begin{itemize} \item Get involved in packaging teams \begin{itemize} \item Many teams that focus on set of packages, and need help \item List available at \url{http://wiki.debian.org/Teams} \item An excellent way to learn from more experienced contributors \end{itemize} \br \item Adopt existing unmaintained packages (\textsl{orphaned packages}) \br \item Bring new software to Debian \begin{itemize} \item Only if it's interesting/useful enough, please \item Are there alternatives already packaged in Debian? \end{itemize} \end{itemize} \end{itemize} \end{frame} \subsection{Adopting orphaned packages} \begin{frame}{Adopting orphaned packages} \hbr \begin{itemize} \item Many unmaintained packages in Debian \hbr \item Full list + process: \url{http://www.debian.org/devel/wnpp/} \hbr \item Installed on your machine: \texttt{wnpp-alert} \hbr \item Different states: \begin{itemize} \small \item \textbf{O}rphaned: the package is unmaintained\\ Feel free to adopt it \hbr \item \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 \hbr \item \textbf{ITA}: \textbf{I}ntent \textbf{T}o \textbf{A}dopt\\ Someone intends to adopt the package\\ You could propose your help! \hbr \item \textbf{RFH}: \textbf{R}equest \textbf{F}or \textbf{H}elp\\ The maintainer is looking for help \end{itemize} \hbr \item Some unmaintained packages not detected \arr not orphaned yet \hbr \item When in doubt, ask \texttt{debian-qa@lists.debian.org} \\ or \texttt{\#debian-qa} on \texttt{irc.debian.org} \end{itemize} \end{frame} \begin{frame}[fragile=singleslide]{Adopting a package: example} \begin{lstlisting}[basicstyle=\ttfamily\footnotesize] From: You To: 640454@bugs.debian.org, control@bugs.debian.org Cc: Francois Marier Subject: ITA: verbiste -- French conjugator retitle 640454 ITA: verbiste -- French conjugator owner 640454 ! thanks Hi, I am using verbiste and I am willing to take care of the package. Cheers, You \end{lstlisting} \begin{itemize} \item Polite to contact the previous maintainer (especially if the package was RFAed, not orphaned) \item Very good idea to contact the upstream project \end{itemize} \end{frame} \subsection{Getting your package in Debian} \begin{frame}{Getting your package in Debian} \begin{itemize} \item You do not need any official status to get your package into Debian \begin{enumerate} \item Submit an \textbf{ITP} bug (\textbf{I}ntend \textbf{T}o \textbf{P}ackage) using \texttt{reportbug wnpp} \hbr \item Prepare a source package \hbr \item Find a Debian Developer that will sponsor your package \end{enumerate} \br \item Official status (when you are an experienced package maintainer): \begin{itemize} \item \textbf{Debian Maintainer (DM):}\\ Permission to upload your own packages\\ See \url{http://wiki.debian.org/DebianMaintainer} \hbr \item \textbf{Debian Developer (DD):}\\ Debian project member; can vote and upload any package \end{itemize} \end{itemize} \end{frame} \begin{frame}{Things to check before asking for sponsorship} \begin{itemize} \item Debian puts \textbf{a lot of focus on quality} \hbr \item Generally, \textbf{sponsors are hard to find and busy} \begin{itemize} \item Make sure your package is ready before asking for sponsorship \end{itemize} \hbr \item Things to check: \begin{itemize} \item Avoid missing build-dependencies: make sure that your package build fine in a clean \textsl{sid} \textsl{chroot} \begin{itemize} \item Using \texttt{pbuilder} is recommended \end{itemize} \hbr \item Run \texttt{lintian -EviIL +pedantic} on your package \begin{itemize} \item Errors must be fixed, all other problems should be fixed \end{itemize} \hbr \item Do extensive testing of your package, of course \end{itemize} \hbr \item In doubt, ask for help \end{itemize} \end{frame} \subsection{Where to find help?} \begin{frame}{Where to find help?} \hbr Help you will need: \begin{itemize} \item Advice and answers to your questions, code reviews \item Sponsorship for your uploads, once your package is ready \end{itemize} \hbr You can get help from: \begin{itemize} \item \textbf{Other members of a packaging team} \begin{itemize} \item List of teams: \url{http://wiki.debian.org/Teams} \end{itemize} \hbr \item The \textbf{Debian Mentors group} (if your package does not fit in a team) \begin{itemize} \item \url{http://wiki.debian.org/DebianMentorsFaq} \item Mailing list: \url{debian-mentors@lists.debian.org}\\ {\small (also a good way to learn by accident)} \item IRC: \texttt{\#debian-mentors} on \texttt{irc.debian.org} \item \url{http://mentors.debian.net/} \item Documentation: \url{http://mentors.debian.net/intro-maintainers} \end{itemize} \hbr \item \textbf{Localized mailing lists} (get help in your language) \begin{itemize} \item \texttt{debian-devel-\{french,italian,portuguese,spanish\}@lists.d.o} \item Full list: \url{https://lists.debian.org/devel.html} \item Or users lists: \url{https://lists.debian.org/users.html} \end{itemize} \end{itemize} \end{frame} \subsection{More documentation} \begin{frame}{More documentation} \begin{itemize} \item Debian Developers' Corner\\ \url{http://www.debian.org/devel/}\\ {\small Links to many resources about Debian development} \hbr \item Debian New Maintainers' Guide\\ \url{http://www.debian.org/doc/maint-guide/}\\ {\small An introduction to Debian packaging, but could use an update} \hbr \item Debian Developer's Reference\\ \url{http://www.debian.org/doc/developers-reference/}\\ {\small Mostly about Debian procedures, but also some best packaging practices (part 6)} \hbr \item Debian Policy\\ \url{http://www.debian.org/doc/debian-policy/}\\ {\small \begin{itemize} \item \small All the requirements that every package must satisfy \item \small Specific policies for Perl, Java, Python, \ldots \end{itemize}} \hbr \item Ubuntu Packaging Guide\\ \url{http://developer.ubuntu.com/resources/tools/packaging/} \end{itemize} \end{frame} \subsection{Debian dashboards for maintainers} \begin{frame}{Debian dashboards for maintainers} \begin{itemize} \item \textbf{Source package centric}: Package Tracking System (PTS)\\ \url{http://packages.qa.debian.org/dpkg} \br \item \textbf{Maintainer/team centric}: Developer's Packages Overview (DDPO)\\ \url{http://qa.debian.org/developer.php?login=pkg-ruby-extras-maintainers@lists.alioth.debian.org} \br \item \textbf{TODO-list oriented}: Debian Maintainer Dashboard (DMD)\\ \url{http://udd.debian.org/dmd.cgi} \end{itemize} \end{frame} \begin{frame}{Using the Debian Bug Tracking System (BTS)} \begin{itemize} \item A quite unique way to manage bugs \begin{itemize} \item Web interface to view bugs \item Email interface to make changes to bugs \end{itemize} \hbr \item Adding information to bugs: \begin{itemize} \item Write to \texttt{123456@bugs.debian.org} (does not include the submitter, you need to add \texttt{123456-submitter@bugs.debian.org}) \end{itemize} \hbr \item Changing bug status: \begin{itemize} \item Send commands to \texttt{control@bugs.debian.org} \item Command-line interface: \texttt{bts} command in \texttt{devscripts} \item Documentation: \url{http://www.debian.org/Bugs/server-control} \end{itemize} \hbr \item Reporting bugs: use \texttt{reportbug} \begin{itemize} \item Normally used with a local mail server: install \texttt{ssmtp} or \texttt{nullmailer} \item Or use \texttt{reportbug -\@-template}, then send (manually) to \texttt{submit@bugs.debian.org} \end{itemize} \end{itemize} \end{frame} \begin{frame}{Using the BTS: examples} \begin{itemize} \item Sending an email to the bug and the submitter:\\ \url{http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\#10} \hbr \item Tagging and changing the severity:\\ \url{http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680227\#10} \hbr \item Reassigning, changing the severity, retitling \ldots: \\ \url{http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\#93} \begin{itemize} \item \texttt{notfound}, \texttt{found}, \texttt{notfixed}, \texttt{fixed} are for \textbf{version-tracking} \\ See \url{https://wiki.debian.org/HowtoUseBTS\#Version\_tracking} \end{itemize} \hbr \item Using usertags: \url{http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;bug=642267}\\ See \url{https://wiki.debian.org/bugs.debian.org/usertags} \hbr \item BTS Documentation: \begin{itemize} \item \url{http://www.debian.org/Bugs/} \item \url{https://wiki.debian.org/HowtoUseBTS} \end{itemize} \end{itemize} \end{frame} \subsection{More interested in Ubuntu?} \begin{frame}{More interested in Ubuntu?} \begin{itemize} \item Ubuntu mainly manages the divergence with Debian \br \item No real focus on specific packages\\ Instead, collaboration with Debian teams \br \item Usually recommend uploading new packages to Debian first\\ \url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages} \br \item Possibly a better plan: \begin{itemize} \item Get involved in a Debian team and act as a bridge with Ubuntu \hbr \item Help reduce divergence, triage bugs in Launchpad \hbr \item Many Debian tools can help: \begin{itemize} \item Ubuntu column on the Developer's packages overview \item Ubuntu box on the Package Tracking System \item Receive launchpad bugmail via the PTS \end{itemize} \end{itemize} \end{itemize} \end{frame} \section{Conclusions} \subsection{Conclusions} \begin{frame}{Conclusions} \begin{itemize} \item You now have a full overview of Debian packaging \br \item But you will need to read more documentation \br \item Best practices have evolved over the years \begin{itemize} \item If not sure, use the \textbf{dh} packaging helper, and the \textbf{3.0 (quilt)} format \end{itemize} \br \item Things that were not covered in this tutorial: \begin{itemize} \item UCF -- manage user changes to configuration files when upgrading \hbr \item dpkg triggers -- group similar maintainer scripts actions together \hbr \item Debian development organization: \begin{itemize} \item Suites: stable, testing, unstable, experimental, security, *-updates, backports, \ldots \item Debian Blends -- subsets of Debian targeting specific groups \end{itemize} \end{itemize} \end{itemize} \vfill \centerline{\large Feedback: \textbf{packaging-tutorial@packages.debian.org}} \end{frame} \subsection{Legal stuff} \begin{frame}{Legal stuff} Copyright \copyright 2011--2013 Lucas Nussbaum -- lucas@debian.org \br {\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} } \end{frame} \subsection{Contribute to this tutorial} \begin{frame}{Contribute to this tutorial} \begin{itemize} \item Contribute: \begin{itemize} \item {\small \texttt{apt-get source packaging-tutorial}} \hbr \item {\small \texttt{debcheckout packaging-tutorial}} \hbr \item {\small \texttt{git clone\\ git://git.debian.org/collab-maint/packaging-tutorial.git}} \hbr \item {\small \url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}} \hbr \item {\small Open bugs: \url{bugs.debian.org/src:packaging-tutorial}} \end{itemize} \br \item Provide feedback: \begin{itemize} \item \href{mailto:packaging-tutorial@packages.debian.org}{\textbf{\texttt{mailto:packaging-tutorial@packages.debian.org}}} \begin{itemize} \item {\small What should be added to this tutorial?} \item {\small What should be improved?} \end{itemize} \hbr \item {\small \texttt{reportbug packaging-tutorial}} \end{itemize} \end{itemize} \end{frame} \section{Practical session 2: packaging GNUjump} \begin{frame}{Practical session 2: packaging GNUjump} \begin{enumerate} \item Download GNUjump 1.0.8 from \url{http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz} \br \item Create a Debian package for it \begin{itemize} \item Install build-dependencies so that you can build the package \item Get a basic working package \item Finish filling \texttt{debian/control} and other files \end{itemize} \br \item Enjoy \end{enumerate} \centerline{\includegraphics[width=5cm]{figs/gnujump.png}} \end{frame} \section{Practical session 3: packaging a Java library} \begin{frame}{Practical session 3: packaging a Java library} \begin{enumerate} \item Take a quick look at some documentation about Java packaging:\\ \begin{itemize} \item \url{http://wiki.debian.org/Java} \hbr \item \url{http://wiki.debian.org/Java/Packaging} \hbr \item \url{http://www.debian.org/doc/packaging-manuals/java-policy/} \hbr \item \url{http://pkg-java.alioth.debian.org/docs/tutorial.html} \hbr \item 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}} \end{itemize} \br \item Download IRClib from \url{http://moepii.sourceforge.net/} \br \item Package it \end{enumerate} \end{frame} \section{Practical session 4: packaging a Ruby gem} \begin{frame}{Practical session 4: packaging a Ruby gem} \begin{enumerate} \item Take a quick look at some documentation about Ruby packaging:\\ \begin{itemize} \item \url{http://wiki.debian.org/Ruby} \hbr \item \url{http://wiki.debian.org/Teams/Ruby} \hbr \item \url{http://wiki.debian.org/Teams/Ruby/Packaging} \hbr \item \texttt{gem2deb(1)}, \texttt{dh\_ruby(1)} (in the \texttt{gem2deb} package) \end{itemize} \hbr \item Create a basic Debian source package from the \texttt{net-ssh} gem:\\ \texttt{gem2deb net-ssh} \hbr \item Improve it so that it becomes a proper Debian package \end{enumerate} \end{frame} \section{Answers to practical sessions} \begin{frame} \begin{center} \LARGE Answers to\\[0.5em] practical sessions \end{center} \end{frame} \subsection{Practical session 1: modifying the grep package} \begin{frame}{Practical session 1: modifying the grep package} \begin{enumerate} \item Go to \url{http://ftp.debian.org/debian/pool/main/g/grep/} and download version 2.6.3-3 of the package (if you use Ubuntu 11.10 or later, or Debian testing or unstable, use version 2.9-1 or 2.9-2 instead) \item Look at the files in \texttt{debian/}. \begin{itemize} \item How many binary packages are generated by this source package? \item Which packaging helper does this package use? \end{itemize} \hbr \item Build the package \hbr \item We are now going to modify the package. Add a changelog entry and increase the version number. \hbr \item Now disable perl-regexp support (it is a \texttt{./configure} option) \hbr \item Rebuild the package \hbr \item Compare the original and the new package with debdiff \hbr \item Install the newly built package \hbr \item Cry if you messed up ;) \end{enumerate} \end{frame} \begin{frame}{Fetching the source} \begin{enumerate} \item Go to \url{http://ftp.debian.org/debian/pool/main/g/grep/} and download version 2.6.3-3 of the package \end{enumerate} \begin{itemize} \item 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}} \hbr \item According to \url{http://packages.qa.debian.org/grep}, \texttt{grep} version 2.6.3-3 is currently in \textsl{stable} (\textsl{squeeze}). 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.6.3-3}\\ or \texttt{apt-get source grep/stable}\\ or, if you feel lucky: \texttt{apt-get source grep} \hbr \item The \texttt{grep} source package is composed of three files: \begin{itemize} \item \texttt{grep\_2.6.3-3.dsc} \item \texttt{grep\_2.6.3-3.debian.tar.bz2} \item \texttt{grep\_2.6.3.orig.tar.bz2} \end{itemize} This is typical of the "3.0 (quilt)" format. \hbr \item If needed, uncompress the source with\\ \texttt{dpkg-source -x grep\_2.6.3-3.dsc} \end{itemize} \end{frame} \begin{frame}{Looking around and building the package} \begin{enumerate} \setcounter{enumi}{1} \item Look at the files in \texttt{debian/}. \begin{itemize} \item How many binary packages are generated by this source package? \item Which packaging helper does this package use? \end{itemize} \end{enumerate} \hbr \begin{itemize} \item According to \texttt{debian/control}, this package only generates one binary package, named \texttt{grep}. \hbr \item 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}. \end{itemize} \hbr \begin{enumerate} \setcounter{enumi}{2} \item Build the package \end{enumerate} \hbr \begin{itemize} \item Use \texttt{apt-get build-dep grep} to fetch the build-dependencies \item Then \texttt{debuild} or \texttt{dpkg-buildpackage -us -uc} (Takes about 1 min) \end{itemize} \end{frame} \begin{frame}{Editing the changelog} \begin{enumerate} \setcounter{enumi}{3} \item We are now going to modify the package. Add a changelog entry and increase the version number. \end{enumerate} \hbr \begin{itemize} \item \texttt{debian/changelog} is a text file. You could edit it and add a new entry manually. \hbr \item Or you can use \texttt{dch -i}, which will add an entry and open the editor \hbr \item The name and email can be defined using the \texttt{DEBFULLNAME} and \texttt{DEBEMAIL} environment variables \hbr \item After that, rebuild the package: a new version of the package is built \hbr \item Package versioning is detailed in section 5.6.12 of the Debian policy\\ \url{http://www.debian.org/doc/debian-policy/ch-controlfields} \end{itemize} \end{frame} \begin{frame}{Disabling Perl regexp support and rebuilding} \begin{enumerate} \setcounter{enumi}{4} \item Now disable perl-regexp support (it is a \texttt{./configure} option) \item Rebuild the package \end{enumerate} \hbr \begin{itemize} \item Check with \texttt{./configure -{}-help}: the option to disable Perl regexp is \texttt{-{}-disable-perl-regexp} \hbr \item Edit \texttt{debian/rules} and find the \texttt{./configure} line \hbr \item Add \texttt{-{}-disable-perl-regexp} \hbr \item Rebuild with \texttt{debuild} or \texttt{dpkg-buildpackage -us -uc} \end{itemize} \end{frame} \begin{frame}{Comparing and testing the packages} \begin{enumerate} \setcounter{enumi}{6} \item Compare the original and the new package with debdiff \item Install the newly built package \end{enumerate} \hbr \begin{itemize} \item Compare the binary packages: \texttt{debdiff ../*changes} \hbr \item Compare the source packages: \texttt{debdiff ../*dsc} \hbr \item Install the newly built package: \texttt{debi}\\ Or \texttt{dpkg -i ../grep\_} \hbr \item \texttt{grep -P foo} no longer works! \end{itemize} \br \begin{enumerate} \setcounter{enumi}{8} \item Cry if you messed up ;) \end{enumerate} \hbr Or not: reinstall the previous version of the package: \begin{itemize} \item \texttt{apt-get install -{}-reinstall grep=2.6.3-3} \textit{(= previous version)} \end{itemize} \end{frame} \subsection{Practical session 2: packaging GNUjump} \begin{frame}{Practical session 2: packaging GNUjump} \begin{enumerate} \item Download GNUjump 1.0.8 from \url{http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz} \br \item Create a Debian package for it \begin{itemize} \item Install build-dependencies so that you can build the package \item Get a basic working package \item Finish filling \texttt{debian/control} and other files \end{itemize} \br \item Enjoy \end{enumerate} \centerline{\includegraphics[width=5cm]{figs/gnujump.png}} \end{frame} \begin{frame}[fragile=singleslide]{Step by step\ldots} \begin{itemize} \item \texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz} \hbr \item \texttt{mv gnujump-1.0.8.tar.gz gnujump\_1.0.8.orig.tar.gz} \hbr \item \texttt{tar xf gnujump\_1.0.8.orig.tar.gz} \hbr \item \texttt{cd gnujump-1.0.8/} \hbr \item \texttt{dh\_make} \begin{itemize} \item \small Type of package: single binary (for now) \end{itemize} \end{itemize} \begin{lstlisting}[basicstyle=\ttfamily\small] gnujump-1.0.8$ ls debian/ changelog gnujump.default.ex preinst.ex compat gnujump.doc-base.EX prerm.ex control init.d.ex README.Debian copyright manpage.1.ex README.source docs manpage.sgml.ex rules emacsen-install.ex manpage.xml.ex source emacsen-remove.ex menu.ex watch.ex emacsen-startup.ex postinst.ex gnujump.cron.d.ex postrm.ex \end{lstlisting} \end{frame} \begin{frame}[fragile=singleslide]{Step by step\ldots (2)} \begin{itemize} \item Look at \texttt{debian/changelog}, \texttt{debian/rules}, \texttt{debian/control}\\ (auto-filled by \textbf{dh\_make}) \hbr \item In \texttt{debian/control}:\\ \texttt{Build-Depends: debhelper (>= 7.0.50~), autotools-dev}\\ Lists the \textsl{build-dependencies} = packages needed to build the package \hbr \item Try to build the package as-is (thanks to \textbf{dh} magic) \begin{itemize} \item And add build-dependencies, until it builds \item Hint: use \texttt{apt-cache search} and \texttt{apt-file} to find the packages \item Example: \begin{lstlisting}[basicstyle=\ttfamily\footnotesize] checking for sdl-config... no checking for SDL - version >= 1.2.0... no [...] configure: error: *** SDL version 1.2.0 not found! \end{lstlisting} $\rightarrow$ Add \textbf{libsdl1.2-dev} to Build-Depends and install it. \hbr \item Better: use \textbf{pbuilder} to build in a clean environment \end{itemize} \end{itemize} \end{frame} \begin{frame}{Step by step\ldots (3)} \begin{itemize} \item After installing \texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev}, the package builds fine. \hbr \item Use \texttt{debc} to list the content of the generated package. \hbr \item Use \texttt{debi} to install it and test it. \hbr \item Test the package with \texttt{lintian} \begin{itemize} \item While not a strict requirement, it is recommended that packages uploaded to Debian are \textsl{lintian-clean} \hbr \item More problems can be listed using \texttt{lintian -EviIL +pedantic} \hbr \item Some hints: \begin{itemize} \item Remove the files that you don't need in \texttt{debian/} \hbr \item Fill in \texttt{debian/control} \hbr \item Install the executable to \texttt{/usr/games} by overriding \texttt{dh\_auto\_configure} \hbr \item Use \textsl{hardening} compiler flags to increase security.\\ See \url{http://wiki.debian.org/Hardening} \end{itemize} \end{itemize} \end{itemize} \end{frame} \begin{frame}{Step by step\ldots (4)} \begin{itemize} \item Compare your package with the one already packaged in Debian: \begin{itemize} \item It splits the data files to a second package, that is the same across all architectures ($\rightarrow$ saves space in the Debian archive) \hbr \item It installs a .desktop file (for the GNOME/KDE menus) and also integrates into the Debian menu \hbr \item It fixes a few minor problems using patches \end{itemize} \end{itemize} \end{frame} \subsection{Practical session 3: packaging a Java library} \begin{frame}{Practical session 3: packaging a Java library} \begin{enumerate} \item Take a quick look at some documentation about Java packaging:\\ \begin{itemize} \item \url{http://wiki.debian.org/Java} \hbr \item \url{http://wiki.debian.org/Java/Packaging} \hbr \item \url{http://www.debian.org/doc/packaging-manuals/java-policy/} \hbr \item \url{http://pkg-java.alioth.debian.org/docs/tutorial.html} \hbr \item 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}} \end{itemize} \br \item Download IRClib from \url{http://moepii.sourceforge.net/} \br \item Package it \end{enumerate} \end{frame} \begin{frame}{Step by step\ldots} \begin{itemize} \item \texttt{apt-get install javahelper} \hbr \item Create a basic source package: \texttt{jh\_makepkg} \begin{itemize} \item Library \item None \item Default Free compiler/runtime \end{itemize} \hbr \item Look at and fix \texttt{debian/*} \hbr \item \texttt{dpkg-buildpackage -us -uc} or \texttt{debuild} \hbr \item \texttt{lintian}, \texttt{debc}, etc. \hbr \item Compare your result with the \texttt{libirclib-java} source package \end{itemize} \end{frame} \subsection{Practical session 4: packaging a Ruby gem} \begin{frame}{Practical session 4: packaging a Ruby gem} \begin{enumerate} \item Take a quick look at some documentation about Ruby packaging:\\ \begin{itemize} \item \url{http://wiki.debian.org/Ruby} \hbr \item \url{http://wiki.debian.org/Teams/Ruby} \hbr \item \url{http://wiki.debian.org/Teams/Ruby/Packaging} \hbr \item \texttt{gem2deb(1)}, \texttt{dh\_ruby(1)} (in the \texttt{gem2deb} package) \end{itemize} \hbr \item Create a basic Debian source package from the \texttt{net-ssh} gem:\\ \texttt{gem2deb net-ssh} \hbr \item Improve it so that it becomes a proper Debian package \end{enumerate} \end{frame} \begin{frame}{Step by step\ldots} \texttt{gem2deb net-ssh}: \begin{itemize} \item Downloads the gem from rubygems.org \item Creates a suitable .orig.tar.gz archive, and untar it \item Initializes a Debian source package based on the gem's metadata \begin{itemize} \item Named \texttt{ruby-\textsl{gemname}} \end{itemize} \item Tries to build the Debian binary package (this might fail) \end{itemize} \br \texttt{dh\_ruby} (included in \textsl{gem2deb}) does the Ruby-specific tasks: \begin{itemize} \item Build C extensions for each Ruby version \item Copy files to their destination directory \item Update shebangs in executable scripts \item Run tests defined in \texttt{debian/ruby-tests.rb} or \texttt{debian/ruby-test-files.yaml}, as well as various other checks \end{itemize} \end{frame} \begin{frame}[fragile=singleslide]{Step by step\ldots (2)} Improve the generated package: \begin{itemize} \item Run \texttt{debclean} to clean the source tree. Look at \texttt{debian/}. \hbr \item \texttt{changelog} and \texttt{compat} should be correct \hbr \item Edit \texttt{debian/control}: uncomment \texttt{Homepage}, improve \texttt{Description} \hbr \item Write a proper \texttt{copyright} file based on the upstream files \hbr \item \texttt{ruby-net-ssh.docs}: install \texttt{README.rdoc} \hbr %Translators: %This context is very sensitive to line length. If you %hit errors building the package around this line in your translated version %see, e.g. in the Spanish or German version for versions with explicit line %breaks for the translation \item \texttt{ruby-tests.rb}: run the tests. In that case, it is enough to do:\\ \verb+$: << 'test' << 'lib' << '.'+\\ \verb+require 'test/test_all.rb'+ \end{itemize} \end{frame} \begin{frame}[fragile=singleslide]{Step by step\ldots (3)} Build the package. It fails to build. There are two problems: \begin{itemize} \item You need to disable the \texttt{gem} call in the test suite.\\ In \texttt{test/common.rb}, remove the \verb+gem "test-unit"+ line: \begin{itemize} \item \texttt{edit-patch disable-gem.patch} \item Edit \texttt{test/common.rb}, remove the \texttt{gem} line. Exit the sub-shell \item Describe the changes in \texttt{debian/changelog} \item Document the patch in \texttt{debian/patches/disable-gem.patch} \end{itemize} \hbr \item The package lacks a build-dependency on \texttt{ruby-mocha}, which is used by the test suite (you might need to build your package in a clean environment, using \texttt{pbuilder}, to reproduce that problem) \begin{itemize} \item Add \texttt{ruby-mocha} to the package's \texttt{Build-Depends} \item \textsl{gem2deb} copies the dependencies documented in the \textsl{gem} as comments in \texttt{debian/control}, but \textsl{mocha} is not listed as a development dependency by the gem (that's a bug in the gem) \end{itemize} \end{itemize} \hbr Compare your package with the \texttt{ruby-net-ssh} package in the Debian archive \end{frame} \end{document} packaging-tutorial-0.12/debiantutorial.sty0000644000000000000000000000305311773663655015702 0ustar \usepackage{wasysym} \definecolor{darkgreen}{rgb}{0,.7,0} \definecolor{darkred}{rgb}{.7,0,0} \newcommand{\Smiley}{{\color{darkgreen}\smiley}} \newcommand{\Frownie}{{\color{darkred}\frownie}} \usepackage[utf8]{inputenc} \usepackage{helvet} \usepackage[T1]{fontenc} \usepackage{xspace} \usepackage{verbatim} \usepackage{tabularx} \usepackage{listings} \usepackage{hyperref} \lstset{basicstyle=\ttfamily} \beamertemplatetransparentcovereddynamic \setbeamercovered{invisible} \newcommand{\br}{\vskip 1em} \newcommand{\hbr}{\vskip 0.5em} \newcommand{\hhbr}{\vskip 0.25em} \newcommand{\Arr}{\textbf{$\Rightarrow$}\xspace} \newcommand{\arr}{\textbf{$\rightarrow$}\xspace} \newcommand{\fixme}[1]{ {\color{red}\footnotesize\bf #1}} \usepackage{tikz} \usepackage{pgfplots} \usetikzlibrary{dateplot} \newcommand{\textttc}[1]{\texttt{\color{rouge}#1}} \renewcommand{\ttdefault}{aett} \usepackage{aecompl} \newcommand{\pedp}{\NoAutoSpaceBeforeFDP} \pgfdeclareimage[width=0.5cm]{openlogo}{figs/openlogo-nd.pdf} \logo{\pgfuseimage{openlogo}} \newcommand{\nospace}[1]{{\NoAutoSpaceBeforeFDP{}#1}}% \AtBeginSection[] { \begin{frame}{Outline} \tableofcontents[currentsection,hideallsubsections] \end{frame} } \newcommand{\backupbegin}{ \newcounter{framenumbervorappendix} \setcounter{framenumbervorappendix}{\value{framenumber}} } \newcommand{\backupend}{ \addtocounter{framenumbervorappendix}{-\value{framenumber}} \addtocounter{framenumber}{\value{framenumbervorappendix}} } \newcommand{\seprule}{\vspace*{-0.5em}\centerline{\rule{\linewidth}{0.3pt}}\vspace*{-0.5em}} packaging-tutorial-0.12/README0000644000000000000000000000324011647327374013004 0ustar Debian Packaging Tutorial ========================= Contact: Lucas Nussbaum This tutorial is an introduction to Debian packaging. It teaches prospective developers how to modify existing packages, how to create their own packages, and how to interact with the Debian community. It includes a tutorial and three practical sessions: - modifying the 'grep' package - packaging the 'gnujump' game from scratch - packaging a Java library Contributing to this tutorial ----------------------------- This tutorial is available on git.debian.org: Gitweb: http://git.debian.org/?p=collab-maint/packaging-tutorial.git or git clone git://git.debian.org/collab-maint/packaging-tutorial.git Thanks ------ Many people have contributed to this tutorial, and it would not be possible to list them all there. In particular: - Phil Hands contributed to the slides while preparing a tutorial for UKUUG; see http://www.ukuug.org/events/debian2011/ Legal stuff ----------- This tutorial is Copyright (c) 2011 Lucas Nussbaum This document is free software: you can redistribute it and/or modify it under either (at your option): - 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. On Debian systems, the complete text of the GNU General Public License version 3 can be found in `/usr/share/common-licenses/GPL-3'. It can also be found on the web: http://www.gnu.org/licenses/gpl.html - The terms of the Creative Commons Attribution-ShareAlike 3.0 Unported License, which can be found at http://creativecommons.org/licenses/by-sa/3.0/legalcode. packaging-tutorial-0.12/beamerthemedebian.sty0000644000000000000000000001126411647327374016313 0ustar \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/compatibility/beamerthemedebian.sty,v 1.8 2004/10/07 20:53:10 tantau Exp $ \mode \setbeamersize{text margin left=3mm,text margin right=3mm} \useinnertheme{rounded} \useinnertheme{circles} \setbeamertemplate{itemize items}[default] \setbeamertemplate{blocks}[rounded] \setbeamertemplate{navigation symbols}{} \setbeamertemplate{sections/subsections in toc shaded}[default][50] %%% FONTS \setbeamerfont{frametitle}{parent=structure,size=\Large} \setbeamerfont{framesubtitle}{parent=frametitle,size=\large} % do not reduce size of subitems \setbeamerfont{itemize/enumerate subbody}{size=\normalsize} \setbeamerfont{itemize/enumerate subsubbody}{size=\normalsize} %%% COLORS \definecolor{debianred}{rgb}{.780,.000,.211} % 199,0,54 \definecolor{debianblue}{rgb}{0,.208,.780} % 0,53,199 \definecolor{debianlightbackgroundblue}{rgb}{.941,.941,.957} % 240,240,244 \definecolor{debianbackgroundblue}{rgb}{.776,.784,.878} % 198,200,224 \definecolor{noir}{RGB}{3,3,36} \definecolor{bleu}{RGB}{10,10,120} \definecolor{bleuclair}{RGB}{17,17,150} \definecolor{rouge}{RGB}{200,0,0} \definecolor{jaune}{RGB}{255,255,0} \definecolor{vert}{RGB}{0,255,0} \definecolor{rougebg}{RGB}{160,0,0} \setbeamercolor{alerted text}{fg=rouge} \setbeamercolor*{palette primary}{fg=jaune,bg=vert} \setbeamercolor*{palette secondary}{fg=jaune,bg=vert} \setbeamercolor*{palette tertiary}{fg=jaune,bg=vert} \setbeamercolor*{palette quaternary}{fg=jaune,bg=vert} \setbeamercolor*{palette sidebar primary}{fg=jaune,bg=vert} \setbeamercolor*{palette sidebar secondary}{fg=jaune,bg=vert} \setbeamercolor*{palette sidebar tertiary}{fg=jaune,bg=vert} \setbeamercolor*{palette sidebar quaternary}{fg=jaune,bg=vert} \setbeamercolor{section in head/foot}{fg=white,bg=noir} \setbeamercolor{subsection in head/foot}{fg=white,bg=noir} \setbeamercolor{author in head/foot}{fg=black,bg=white} \setbeamercolor{title in head/foot}{fg=black,bg=white} \setbeamercolor*{titlelike}{fg=white,bg=rougebg} \setbeamercolor{frametitle}{fg=rougebg,bg=white} \setbeamercolor{item projected}{fg=white,bg=rougebg} \setbeamercolor{item}{fg=rougebg} \setbeamercolor{block title}{fg=white,bg=rougebg} \setbeamercolor{block body}{parent=normal text, bg=rougebg!5!white} \setbeamercolor{section in toc}{fg=black,bg=white} \setbeamercolor{subsection in toc}{fg=black,bg=white} %\definecolor{altext}{rgb}{0.90,0.60,0.00} %\definecolor{altext}{rgb}{1.00,1.00,0.00} %\setbeamercolor{alerted text}{fg=altext} %%% OUTER THEME \usesectionheadtemplate {\hfill\insertsectionhead} {\hfill\color{fg!50!bg}\insertsectionhead} % Head \setbeamertemplate{frametitle}{% \ifbeamer@plainframe% \else% \vskip0.1em% {\leftskip-\beamer@leftmargin\advance\leftskip by0.3cm% \rightskip-\beamer@rightmargin plus1fil\advance\rightskip by0.3cm\leavevmode {\usebeamercolor{frametitle}\usebeamerfont{frametitle} \Large\bfseries{\underline{\insertframetitle}}}\par}% \vskip-.3cm \fi% } \defbeamertemplate*{footline}{split theme} {% \leavevmode% \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.1cm plus1fill,rightskip=.1cm]{author in head/foot}% \usebeamerfont{author in head/foot}\insertshortauthor \end{beamercolorbox}% \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.1cm,rightskip=.1cm plus1fil]{title in head/foot}% \hfill \usebeamerfont{title in head/foot}\insertshorttitle \hskip 2em \insertframenumber{} / \inserttotalframenumber{} \end{beamercolorbox}}% \vskip0pt% } \setbeamerfont{block title}{size={}} % define sectionintoc (found in /usr/share/texmf/tex/latex/beamer/base/beamerbasetoc.sty) % to change vskip1.5em into vskip1em \def\beamer@sectionintoc#1#2#3#4#5{% \ifnum\c@tocdepth>0% \ifnum#4=\beamer@showpartnumber% { \beamer@saveanother% \gdef\beamer@todo{}% \beamer@slideinframe=#1\relax% \expandafter\only\beamer@tocsections{\gdef\beamer@todo{% \beamer@tempcount=#5\relax% \advance\beamer@tempcount by\beamer@sectionadjust% \edef\inserttocsectionnumber{\the\beamer@tempcount}% \def\inserttocsection{\hyperlink{Navigation#3}{#2}}% \beamer@tocifnothide{\ifnum\c@section=#1\beamer@toc@cs\else\beamer@toc@os\fi}% { \ifbeamer@pausesections\pause\fi% \ifx\beamer@toc@ooss\beamer@hidetext \vskip1em \else \vfill \fi {% \hbox{\vbox{% \def\beamer@breakhere{\\}% \beamer@tocact{\ifnum\c@section=#1\beamer@toc@cs\else\beamer@toc@os\fi}{section in toc}}}% \par% }% }% } }% \beamer@restoreanother% } \beamer@todo% \fi\fi% } \mode packaging-tutorial-0.12/po4a/0000755000000000000000000000000012234410763012754 5ustar packaging-tutorial-0.12/po4a/add_fr/0000755000000000000000000000000011647327374014207 5ustar packaging-tutorial-0.12/po4a/add_fr/fr.add0000644000000000000000000000076311647327374015276 0ustar PO4A-HEADER:mode=before;position=\\end{document};beginboundary=NoT_In_ThE_DocUMEnt \section*{Traduction} \begin{frame}{Traduction} Ce tutoriel a été traduit de l'anglais par Cédric Boutillier, Jean-Philippe\ Mengual et l'équipe francophone de traduction. \hbr Veuillez signaler toute erreur de traduction ou adresser vos commentaires par courrier électronique, à l'adresse \href{mailto:debian-l10n-french@lists.debian.org}{\texttt{}}. \end{frame} packaging-tutorial-0.12/po4a/po4a.cfg0000644000000000000000000000044611647327374014320 0ustar [po_directory] po4a/po/ [type: latex] packaging-tutorial.tex \ $lang:packaging-tutorial.$lang.tex \ add_$lang:?po4a/add_$lang/$lang.add \ opt:"-o definitions=po4a/definitions" [type: latex] debiantutorial.sty \ $lang:debiantutorial.$lang.sty \ opt:"-o definitions=po4a/definitions_sty" packaging-tutorial-0.12/po4a/po/0000755000000000000000000000000012234415553013374 5ustar packaging-tutorial-0.12/po4a/po/ja.po0000644000000000000000000042610512234415553014336 0ustar # Japanese translations for po package # po パッケージに対する英訳 # Copyright (C) 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the po package. # nabetaro , 2012. # msgid "" msgstr "" "Project-Id-Version: po 4a\n" "POT-Creation-Date: 2013-09-19 07:44+0900\n" "PO-Revision-Date: 2013-09-15 23:35+0900\n" "Last-Translator: KURASAWA Nozomu (nabetaro) \n" "Language-Team: Japanese\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.5.4\n" #. type: Plain text #: packaging-tutorial.tex:4 msgid "\\mode \\usetheme{debian}" msgstr "\\mode \\usetheme{debian}" #. 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 "" "\\usepackage{debiantutorial.ja}\\hypersetup{unicode}\\usepackage[whole]" "{bxcjkjatype}" #. type: title{#2} #: packaging-tutorial.tex:14 msgid "Debian Packaging Tutorial" msgstr "Debian パッケージングチュートリアル" #. type: author{#2} #: packaging-tutorial.tex:14 msgid "" "Lucas Nussbaum\\\\{\\small\\texttt{packaging-tutorial@packages.debian.org}}" msgstr "" "Lucas Nussbaum\\\\{\\small\\texttt{packaging-tutorial@packages.debian.org}}" #. 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.10 -- 2013-08-20" msgstr "version 0.10 -- 2013-08-20" #. 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 "" "目的: \\textbf{Debianのパッケージ作成について、知る必要のあることの提供}" #. 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 "Debian コミュニティとのやりとり" #. type: itemize #: packaging-tutorial.tex:52 msgid "Become a Debian power-user" msgstr "Debian のパワーユーザーになる" #. 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 "ほとんどの内容は Debian 派生ディストリビューションにも適用可能" #. type: itemize #: packaging-tutorial.tex:52 msgid "That includes Ubuntu" msgstr "Ubuntu を含む" #. 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 "Debian" #. type: textbf{#1} #: packaging-tutorial.tex:84 msgid "GNU/Linux distribution" msgstr "GNU/Linux ディストリビューション" #. type: itemize #: packaging-tutorial.tex:84 msgid "1st major distro developed ``openly in the spirit of GNU''" msgstr "" "「GNU の精神でオープンに」開発している\\\\第一のメジャーディストリビューショ" "ン" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Non-commercial}, built collaboratively by over 1,000 volunteers" msgstr "\\textbf{非商用}: 1,000 人以上のボランティアが協力して開発" #. type: itemize #: packaging-tutorial.tex:84 msgid "3 main features:" msgstr "3つの主要機能" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Quality} -- culture of technical excellence\\\\ {\\small\\sl We " "release when it's ready}" msgstr "" "\\textbf{品質} -- 技術的利点の文化\\\\ {\\small\\sl 準備できた時にリリース}" #. 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 "" "\\textbf{自由} -- 開発者とユーザーは、1993 年に成立した、\\\\フリーソフトウェ" "アの文化を促す\\textsl{社会契約}で結ばれている。" #. 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 "" "\\textbf{独立} -- Debian のお守りをしている (単一) 企業はない\\\\ また、オー" "プンな意思決定プロセス (\\textsl{実行主義} + \\textsl{民主主義})" #. type: itemize #: packaging-tutorial.tex:84 msgid "\\textbf{Amateur} in the best sense: done for the love of it" msgstr "最高の \\textbf{アマチュア} が、好きだからこそ成し遂げた" #. type: frame{#2} #: packaging-tutorial.tex:105 msgid "Debian packages" msgstr "Debian パッケージ" #. type: itemize #: packaging-tutorial.tex:105 msgid "\\textbf{.deb} files (binary packages)" msgstr "\\textbf{.deb} ファイル (バイナリパッケージ)" #. 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 "もっとも一般的なパッケージフォーマットのひとつ (もうひとつは RPM)" #. 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 "" "30,000 のバイナリーパッケージ\\\\ $\\rightarrow$ ほとんどのフリーソフトウェア" "がDebianでパッケージ化" #. type: itemize #: packaging-tutorial.tex:105 msgid "For 12 ports (architectures), including 2 non-Linux (Hurd; KFreeBSD)" msgstr "2 つの 非 Linux (Hurd, KFreeBSD) を含む 12 の移植版 (アーキテクチャ)" #. type: itemize #: packaging-tutorial.tex:105 msgid "Also used by 120 Debian derivative distributions" msgstr "120 の Debian 派生ディストリビューションでも使用" #. type: frame{#2} #: packaging-tutorial.tex:108 packaging-tutorial.tex:133 msgid "The Deb package format" msgstr "deb パッケージフォーマット" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{.deb} file: an \\texttt{ar} archive" msgstr "\\texttt{.deb} ファイル: \\texttt{ar} アーカイブ" #. 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 "" "[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" " " #. $ #. type: itemize #: packaging-tutorial.tex:133 msgid "" "\\texttt{debian-binary}: version of the deb file format, " "\\texttt{\"2.0\\textbackslash{}n\"}" msgstr "" "\\texttt{debian-binary}: deb ファイルフォーマットのバージョン " "\\texttt{\"2.0\\textbackslash{}n\"}" #. 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 "" "\\texttt{control.tar.gz}: パッケージについてのメタデータ\\\\ {\\small " "\\texttt{\\textbf{control}, md5sums, (pre|post)(rm|inst), triggers, shlibs}, " "\\ldots}" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{data.tar.gz}: data files of the package" msgstr "\\texttt{data.tar.gz}: パッケージのデータファイル" #. 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 "" "\\texttt{.deb} ファイルを手で作ることも可能\\\\ {\\footnotesize \\url{http://" "tldp.org/HOWTO/html\\_single/Debian-Binary-Package-Building-HOWTO/}}" #. 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 "本チュートリアル: Debian のパッケージを Debian 流に作成" #. type: frame{#2} #: 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 "Debian (ないし Ubuntu) システム (要 root アクセス)" #. 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 "" "\\textbf{build-essential}: 開発者のマシンで利用前提となるパッケージに依存 " "(パッケージの \\texttt{Build-Depends:} コントロールフィールドに指定不要)" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "includes a dependency on \\textbf{dpkg-dev}, which contains basic Debian-" "specific tools to create packages" msgstr "" "パッケージを作成する、基本的な Debian 特化ツールである \\textbf{dpkg-dev} へ" "の依存関係を含む" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "\\textbf{devscripts}: contains many useful scripts for Debian maintainers" msgstr "\\textbf{devscripts}: Debian メンテナにとって便利なスクリプト群" #. 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 "" "\\textbf{debhelper}, \\textbf{cdbs}, \\textbf{quilt}, \\textbf{pbuilder}, " "\\textbf{sbuild}, \\textbf{lintian}, \\textbf{svn-buildpackage}, " "\\textbf{git-buildpackage}, \\ldots といった、その他たくさんのパッケージ (後" "述)\\\\ 必要に応じてインストール。" #. type: frame{#2} #: 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 "" "\\node[node1] (www) at (0, 0) {Web}; \\node[node1] (us) at (2.5, 0) " "{upstream ソース}; \\node[node1] (da) at (-2.5, 0) {Debian ミラーサイト}; " "\\node[node1] (sp) at (0, -2) {ソースパッケージ}; \\draw[arr,<-,dashed," "thick] (sp) -- (2.5,-2) node[right=0cm,text width=2.98cm,text centered,font=" "\\small\\sl] {ここでほとんどの手作業を実行}; \\node[node1] (bin) at (0, -4) " "{単一/複数のバイナリーパッケージ}; \\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} (構築と \\textttc{lintian} によるテスト) または " "\\textttc{dpkg-buildpackage}}; \\draw[arr,->] (bin) -- (1,-6) node[pos=0.5," "right] {インストール (\\textttc{debi})}; \\draw[transparent] (bin) -- " "(-1,-6) node[pos=0.5,left,opaque] {アップロード (\\textttc{dput})}; " "\\draw[arr,->,rounded corners] (bin) -- (-1,-6) -- (-4.5,-6) -- (-4.5,0) -- " "(da); \\useasboundingbox (-4,-6) rectangle (6,0);" #. type: subsection{#2} #: packaging-tutorial.tex:205 msgid "Rebuilding dash" msgstr "dash の再構築" #. type: frame{#2} #: packaging-tutorial.tex:205 msgid "Example: rebuilding dash" msgstr "例: dash の再構築" #. 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 "" "dash を構築するのに必要なパッケージと devscripts のインストール\\\\ " "{\\texttt{sudo apt-get build-dep dash}\\\\ (\\texttt{/etc/apt/sources.list} " "に \\texttt{deb-src} 行が必要)}\\\\ {\\texttt{sudo apt-get install -{}-no-" "install-recommends devscripts fakeroot}}" #. 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 "" "作業ディレクトリーを作成し、そこに移動\\\\ \\texttt{mkdir /tmp/debian-" "tutorial ; cd /tmp/debian-tutorial}" #. 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 "" "\\texttt{dash} のソースパッケージを入手\\\\ \\texttt{apt-get source dash}\\" "\\ {\\small (\\texttt{/etc/apt/sources.list} に \\texttt{deb-src} 行が必要)}" #. 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 "" "パッケージの構築\\\\ {\\texttt{cd dash-*\\\\ debuild -us -uc}} ~~~(\\texttt{-" "us -uc} は GPG によるパッケージ署名を無効化)" #. 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 "新しい \\texttt{.deb} ファイルが親ディレクトリーに" #. type: enumerate #: packaging-tutorial.tex:218 msgid "Look at the \\texttt{debian/} directory" msgstr "\\texttt{debian/} ディレクトリーを参照" #. 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 "" "1 つのソースパッケージから複数のバイナリーパッケージを生成\\\\ {\\small 例: " "\\texttt{\\bfseries libtar} のソースから \\texttt{\\bfseries libtar0} と " "\\texttt{\\bfseries libtar-dev} のバイナリーパッケージを生成}" #. type: itemize #: packaging-tutorial.tex:256 msgid "Two kinds of packages: (if unsure, use non-native)" msgstr "2種類のパッケージ: (よく判らなければ非ネイティブで)" #. type: itemize #: packaging-tutorial.tex:256 msgid "" "Native packages: normally for Debian specific software (\\textsl{dpkg}, " "\\textsl{apt})" msgstr "" "ネイティブパッケージ: 通常 Debian 固有ソフトウェア (\\textsl{dpkg}, " "\\textsl{apt})" #. type: itemize #: packaging-tutorial.tex:256 msgid "Non-native packages: software developed outside Debian" msgstr "非ネイティブパッケージ: Debian 外で開発されたソフトウェア" #. type: itemize #: packaging-tutorial.tex:256 msgid "Main file: \\texttt{.dsc} (meta-data)" msgstr "メインファイル: \\texttt{.dsc} (メタデータ)" #. 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 "1.0, 3.0 (ネイティブ): \\texttt{package\\_version.tar.gz}" #. type: itemize #: packaging-tutorial.tex:256 msgid "1.0 (non-native):" msgstr "1.0 (非ネイティブ):" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_ver.orig.tar.gz}: upstream source" msgstr "\\texttt{pkg\\_ver.orig.tar.gz}: 上流ソース" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.diff.gz}: patch to add Debian-specific changes" msgstr "\\texttt{pkg\\_debver.diff.gz}: Debian 固有の変更を加えるパッチ" #. type: itemize #: packaging-tutorial.tex:256 msgid "3.0 (quilt):" msgstr "3.0 (quilt):" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.debian.tar.gz}: tarball with the Debian changes" msgstr "\\texttt{pkg\\_debver.debian.tar.gz}: Debian の変更を格納した tarball" #. type: frame #: packaging-tutorial.tex:256 msgid "(See \\texttt{dpkg-source(1)} for exact details)" msgstr "(詳細は \\texttt{dpkg-source(1)} を参照)" #. type: frame{#2} #: packaging-tutorial.tex:280 msgid "Source package example (wget\\_1.12-2.1.dsc)" msgstr "ソースパッケージの例 (wget\\_1.12-2.1.dsc)" #. 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" "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 "" "[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" "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" #. 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 "Debian のアーカイブから:" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package}}" msgstr "\\texttt{apt-get source \\textsl{package}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package=version}}" msgstr "\\texttt{apt-get source \\textsl{package=version}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package/release}}" msgstr "\\texttt{apt-get source \\textsl{package/release}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "(You need \\texttt{deb-src} lines in \\texttt{sources.list})" msgstr "(\\texttt{sources.list} に \\texttt{deb-src} 行が必要)" #. 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 "\\texttt{dget \\textsl{url-to.dsc}}" #. 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 "" "\\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} では、2005 " "年以降の Debian からのすべてのパッケージを提供)" #. 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 "\\texttt{debcheckout \\textsl{package}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "" "Once downloaded, extract with \\texttt{dpkg-source -x \\textsl{file.dsc}}" msgstr "ダウンロードしたら \\texttt{dpkg-source -x \\textsl{file.dsc}} で展開" #. type: frame{#2} #: 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 "" "上流ソースのダウンロード\\\\ (\\textsl{上流ソース} = ソフトウェアのオリジナル" "開発者からのもの)" #. 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 "" "\\texttt{<\\textsl{source\\_package}>\\_<\\textsl{upstream\\_version}>.orig." "tar.gz} に名前の変更\\\\ (例: \\texttt{simgrid\\_3.6.orig.tar.gz})" #. type: itemize #: packaging-tutorial.tex:331 msgid "Untar it" msgstr "tar を展開" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "Rename the directory to \\texttt{<\\textsl{source\\_package}>-<" "\\textsl{upstream\\_version}>}\\\\ (example: \\texttt{simgrid-3.6})" msgstr "" "ディレクトリーを \\texttt{<\\textsl{source\\_package}>-<\\textsl{upstream" "\\_version}>} に変更\\\\ (例: \\texttt{simgrid-3.6})" #. 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 "" "\\texttt{cd \\texttt{<\\textsl{source\\_package}>-<\\textsl{upstream" "\\_version}>} \\&\\& dh\\_make}\\\\ (\\textbf{dh-make} パッケージに収録)" #. 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 "" "\\texttt{dh\\_make} の代わりに特定のパッケージ向けのものも:\\\\\\textbf{dh-" "make-perl}, \\textbf{dh-make-php}, \\ldots" #. type: itemize #: packaging-tutorial.tex:331 msgid "\\texttt{debian/} directory created, with a lot of files in it" msgstr "\\texttt{debian/} ディレクトリーにたくさんのファイルが作成" #. type: frame{#2} #: packaging-tutorial.tex:360 msgid "Files in debian/" msgstr "debian/ 内のファイル" #. type: frame #: packaging-tutorial.tex:360 msgid "" "All the packaging work should be made by modifying files in \\texttt{debian/}" msgstr "パッケージングの作業は、すべて \\texttt{debian/} 以下の変更で行う" #. 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 "\\textbf{control} -- パッケージに関するメタデータ (依存関係 etc.)" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{rules} -- specifies how to build the package" msgstr "\\textbf{rules} -- パッケージの構築方法を記載" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{copyright} -- copyright information for the package" msgstr "\\textbf{copyright} -- パッケージの著作権情報" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{changelog} -- history of the Debian package" msgstr "\\textbf{changelog} -- Debian パッケージの履歴" #. type: itemize #: packaging-tutorial.tex:360 msgid "Other files:" msgstr "その他のファイル:" #. type: itemize #: packaging-tutorial.tex:360 msgid "compat" msgstr "compat" #. type: itemize #: packaging-tutorial.tex:360 msgid "watch" msgstr "watch" #. type: itemize #: packaging-tutorial.tex:360 msgid "dh\\_install* targets\\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}" msgstr "" "dh\\_install* targets\\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}" #. type: itemize #: packaging-tutorial.tex:360 msgid "maintainer scripts\\\\ {\\small *.postinst, *.prerm, \\ldots}" msgstr "メンテナースクリプト\\\\ {\\small *.postinst, *.prerm, \\ldots}" #. type: itemize #: packaging-tutorial.tex:360 msgid "source/format" msgstr "source/format" #. type: itemize #: packaging-tutorial.tex:360 msgid "patches/ -- if you need to modify the upstream sources" msgstr "patches/ -- 上流ソースを変更する必要がある際に使用" #. type: itemize #: packaging-tutorial.tex:360 msgid "Several files use a format based on RFC 822 (mail headers)" msgstr "ファイルのフォーマットは RFC 822 (メールヘッダー) を基にしたものも" #. type: frame{#2} #: packaging-tutorial.tex:372 msgid "debian/changelog" msgstr "debian/changelog" #. type: itemize #: packaging-tutorial.tex:372 msgid "Lists the Debian packaging changes" msgstr "Debian パッケージの変更点一覧" #. 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 "" "\\draw (0,0) node[above right] {\\large 1.2.1.1-5}; \\draw [decorate," "decoration={brace}] (2.25,0) -- (1.45,0) node[at start,below,text " "width=1.6cm,text centered] {\\small Debian\\\\リビジョン}; \\draw [decorate," "decoration={brace}] (1.4,0) -- (-0.25,0) node[midway,below,text width=2.0cm," "text centered] { \\small 上流\\\\バージョン};" #. % #. type: itemize #: packaging-tutorial.tex:386 msgid "Edited manually or with \\textttc{dch}" msgstr "手で編集するか \\textttc{dch} を使用" #. type: itemize #: packaging-tutorial.tex:386 msgid "Create a changelog entry for a new release: \\textttc{dch -i}" msgstr "新リリースの changelog エントリ作成: \\textttc{dch -i}" #. 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 "" "Debian や Ubuntu のバグ報告をクローズする特殊フォーマット\\\\ Debian: " "\\texttt{Closes:~\\#595268}; Ubuntu: \\texttt{LP:~\\#616929}" #. type: itemize #: packaging-tutorial.tex:386 msgid "" "Installed as \\texttt{/usr/share/doc/\\textit{package}/changelog.Debian.gz}" msgstr "" "\\texttt{/usr/share/doc/\\textit{package}/changelog.Debian.gz} にインストール" #. 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 "" "[basicstyle=\\ttfamily\\footnotesize]\n" "mpich2 (1.2.1.1-5) unstable; urgency=low\n" "\n" #. 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 "" " * 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" #. type: lstlisting #: packaging-tutorial.tex:394 #, no-wrap msgid " -- Lucas Nussbaum Wed, 15 Sep 2010 18:13:44 +0200" msgstr " -- Lucas Nussbaum Wed, 15 Sep 2010 18:13:44 +0200" #. type: frame{#2} #: packaging-tutorial.tex:421 msgid "debian/control" msgstr "debian/control" #. 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 "" "パッケージ名、セクション、優先度、メンテナー、アップロード担当、構築依存関" "係、依存関係、説明、ホームページ \\ldots" #. type: itemize #: packaging-tutorial.tex:421 msgid "" "Documentation: Debian Policy chapter 5\\\\ \\url{http://www.debian.org/doc/" "debian-policy/ch-controlfields}" msgstr "" "ドキュメント: Debian ポリシー 5 章\\\\ \\url{http://www.debian.org/doc/" "debian-policy/ch-controlfields}" #. 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" "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 "" "[basicstyle=\\ttfamily\\footnotesize]\n" "Source: wget\n" "Section: web\n" "Priority: important\n" "Maintainer: Noel Kothe \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" #. 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 "" "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" #. type: frame{#2} #: packaging-tutorial.tex:456 msgid "Architecture: all or any" msgstr "Architecture: all か any" #. type: frame #: packaging-tutorial.tex:456 msgid "Two kinds of binary packages:" msgstr "2 種類のバイナリーパッケージ:" #. type: itemize #: packaging-tutorial.tex:456 msgid "Packages with different contents on each Debian architecture" msgstr "Debian のアーキテクチャごとに異なる内容のパッケージ" #. type: itemize #: packaging-tutorial.tex:456 msgid "Example: C program" msgstr "例: C プログラム" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ any} in \\texttt{debian/control}" msgstr "\\texttt{debian/control} に \\texttt{Architecture:\\ any}" #. 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 "" "または動作するアーキテクチャのみ:\\\\ \\texttt{Architecture:\\ amd64 i386 " "ia64 hurd-i386}" #. type: itemize #: packaging-tutorial.tex:456 msgid "buildd.debian.org: builds all the other architectures for you on upload" msgstr "buildd.debian.org: アップロードした以外の全アーキテクチャを構築" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_" "\\textsl{architecture}.deb}" msgstr "" "\\texttt{\\textsl{package}\\_\\textsl{version}\\_\\textsl{architecture}.deb} " "という名前" #. 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 "例: Perl ライブラリー" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ all} in \\texttt{debian/control}" msgstr "\\texttt{debian/control} に \\texttt{Architecture:\\ all}" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_\\textbf{all}.deb}" msgstr "" "\\texttt{\\textsl{package}\\_\\textsl{version}\\_\\textbf{all}.deb} という名" "前" #. 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 "" "ソースパッケージは、\\texttt{Architecture:\\ any} と \\texttt{Architecture:" "\\ all} のバイナリーパッケージが混在しても生成可能" #. type: frame{#2} #: packaging-tutorial.tex:482 msgid "debian/rules" msgstr "debian/rules" #. type: itemize #: packaging-tutorial.tex:482 msgid "Makefile" msgstr "Makefile" #. type: itemize #: packaging-tutorial.tex:482 msgid "Interface used to build Debian packages" msgstr "Debian パッケージを構築するインターフェース" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "Documented in Debian Policy, chapter 4.8\\\\ {\\small \\url{http://www." "debian.org/doc/debian-policy/ch-source\\#s-debianrules}}" msgstr "" "Debian ポリシーの 4.8 章に記述\\\\ {\\small \\url{http://www.debian.org/doc/" "debian-policy/ch-source\\#s-debianrules}}" #. 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 "" "\\texttt{build, build-arch, build-indep}: すべての設定とコンパイルを実行" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{binary, binary-arch, binary-indep}: build the binary packages" msgstr "\\texttt{binary, binary-arch, binary-indep}: バイナリーパッケージ構築" #. 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 "" "\\texttt{dpkg-buildpackage} は、\\texttt{binary} を呼び出して全パッケージの構" "築、\\texttt{binary-arch} を呼び出して \\texttt{Architecture:~any} パッケージ" "のみの構築" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{clean}: clean up the source directory" msgstr "\\texttt{clean}: ソースディレクトリーのクリーンナップ" #. type: subsection{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers" msgstr "パッケージングヘルパー" #. type: frame{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers -- debhelper" msgstr "パッケージングヘルパー -- debhelper" #. type: itemize #: packaging-tutorial.tex:516 msgid "You could write shell code in \\texttt{debian/rules} directly" msgstr "\\texttt{debian/rules} に直接シェルのコードを記述可能" #. type: itemize #: packaging-tutorial.tex:516 msgid "See the \\texttt{adduser} package for example" msgstr "\\texttt{adduser} パッケージを参考に" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Better practice (used by most packages): use a \\textsl{Packaging helper}" msgstr "" "よりよい方法 (多くのパッケージが採用): \\textsl{パッケージングヘルパー} 利用" #. type: itemize #: packaging-tutorial.tex:516 msgid "Most popular one: \\textbf{debhelper} (used by 98\\% of packages)" msgstr "一番人気: \\textbf{debhelper} (98\\% のパッケージが採用)" #. 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 "" "{\\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}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Called from \\texttt{debian/rules}" msgstr "\\texttt{debian/rules} から呼ばれる" #. type: itemize #: packaging-tutorial.tex:516 msgid "Configurable using command parameters or files in \\texttt{debian/}" msgstr "コマンドパラメーターや \\texttt{debian/} のファイルで設定可能" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "{\\footnotesize \\ttfamily \\textsl{package}.docs, \\textsl{package}." "examples, \\textsl{package}.install, \\textsl{package}.manpages, \\ldots}" msgstr "" "{\\footnotesize \\ttfamily \\textsl{package}.docs, \\textsl{package}." "examples, \\textsl{package}.install, \\textsl{package}.manpages, \\ldots}" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Third-party helpers for sets of packages: \\textbf{python-support}, " "\\textbf{dh\\_ocaml}, \\ldots" msgstr "" "パッケージセット用のサードパーティーヘルパー: \\textbf{python-support}, " "\\textbf{dh\\_ocaml}, \\ldots" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Gotcha: \\texttt{debian/compat}: Debhelper compatibility version (use \"7\")" msgstr "Gotcha: \\texttt{debian/compat}: Debhelper 互換性バージョン (\"7\" に)" #. type: frame{#2} #: packaging-tutorial.tex:520 msgid "debian/rules using debhelper (1/2)" msgstr "debhelper を用いた debian/rules (1/2)" #. type: lstlisting #: packaging-tutorial.tex:520 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "#!/usr/bin/make -f\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "#!/usr/bin/make -f\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:523 #, no-wrap msgid "" "# Uncomment this to turn on verbose mode.\n" "#export DH_VERBOSE=1\n" "\n" msgstr "" "# Uncomment this to turn on verbose mode.\n" "#export DH_VERBOSE=1\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:527 #, no-wrap msgid "" "build: \n" " $(MAKE)\n" " #docbook-to-man debian/packagename.sgml > packagename.1\n" "\n" msgstr "" "build: \n" " $(MAKE)\n" " #docbook-to-man debian/packagename.sgml > packagename.1\n" "\n" #. 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 "" "clean: \n" " dh_testdir\n" " dh_testroot\n" " rm -f build-stamp configure-stamp\n" " $(MAKE) clean\n" " dh_clean \n" "\n" #. 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 "" "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" #. type: frame{#2} #: packaging-tutorial.tex:547 msgid "debian/rules using debhelper (2/2)" msgstr "debhelper を用いた debian/rules (2/2)" #. type: lstlisting #: packaging-tutorial.tex:547 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:550 #, no-wrap msgid "" "# Build architecture-independent files here.\n" "binary-indep: build install\n" "\n" msgstr "" "# Build architecture-independent files here.\n" "binary-indep: build install\n" "\n" #. 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 "" "# 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" #. 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 "" "binary: binary-indep binary-arch\n" ".PHONY: build clean binary-indep binary-arch binary install configure" #. type: frame{#2} #: packaging-tutorial.tex:603 msgid "CDBS" msgstr "CDBS" #. type: itemize #: packaging-tutorial.tex:603 msgid "With debhelper, still a lot of redundancy between packages" msgstr "debhelper では、まだ無駄がたくさん" #. type: itemize #: packaging-tutorial.tex:603 msgid "Second-level helpers that factor common functionality" msgstr "共通機能を分解する第 2 レベルヘルパー" #. type: itemize #: packaging-tutorial.tex:603 msgid "" "E.g. building with \\texttt{./configure \\&\\& make \\&\\& make install} or " "CMake" msgstr "" "例: \\texttt{./configure \\&\\& make \\&\\& make install} での構築や CMake で" "の構築" #. type: itemize #: packaging-tutorial.tex:603 msgid "CDBS:" msgstr "CDBS:" #. type: itemize #: packaging-tutorial.tex:603 msgid "Introduced in 2005, based on advanced \\textsl{GNU make} magic" msgstr "2005 年に \\textsl{GNU make} マジックを発展させたものをベースに導入" #. type: itemize #: packaging-tutorial.tex:603 msgid "Documentation: \\texttt{/usr/share/doc/cdbs/}" msgstr "ドキュメント: \\texttt{/usr/share/doc/cdbs/}" #. type: itemize #: packaging-tutorial.tex:603 msgid "Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots" msgstr "Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots をサポート" #. 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 "" "パッケージ構築のカスタマイズが難しい場合がある:\\\\ \"\\textsl{makefile と環" "境変数の絡みあった迷宮}\"" #. type: itemize #: packaging-tutorial.tex:603 msgid "Slower than plain debhelper (many useless calls to \\texttt{dh\\_*})" msgstr "素の debhelper より遅い (無意味な \\texttt{dh\\_*} をたくさん呼び出す)" #. 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 "" "[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" #. 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 "" "# add an action after the build\n" "build/mypackage::\n" " /bin/bash debian/scripts/foo.sh\n" " " #. type: frame{#2} #: packaging-tutorial.tex:628 msgid "Dh (aka Debhelper 7, or dh7)" msgstr "Dh (Debhelper 7, dh7)" #. type: itemize #: packaging-tutorial.tex:628 msgid "Introduced in 2008 as a \\textsl{CDBS killer}" msgstr "\\textsl{CDBS キラー} として 2008 年に導入" #. type: itemize #: packaging-tutorial.tex:628 msgid "\\textbf{dh} command that calls \\texttt{dh\\_*}" msgstr "\\texttt{dh\\_*} を呼び出す \\textbf{dh} コマンド" #. type: itemize #: packaging-tutorial.tex:628 msgid "Simple \\textsl{debian/rules}, listing only overrides" msgstr "オーバーライドのみを列挙するシンプルな \\textsl{debian/rules}" #. type: itemize #: packaging-tutorial.tex:628 msgid "Easier to customize than CDBS" msgstr "CDBS よりもカスタマイズが簡単" #. 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 "" "文書: man ページ (\\texttt{debhelper(7)}, \\texttt{dh(1)}) + DebConf9 talk の" "スライド\\\\ \\url{http://kitenet.net/~joey/talks/debhelper/debhelper-slides." "pdf}" #. type: lstlisting #: packaging-tutorial.tex:628 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "#!/usr/bin/make -f\n" "%:\n" " dh $@\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "#!/usr/bin/make -f\n" "%:\n" " dh $@\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:631 #, no-wrap msgid "" "override_dh_auto_configure:\n" " dh_auto_configure -- --with-kitchen-sink\n" "\n" msgstr "" "override_dh_auto_configure:\n" " dh_auto_configure -- --with-kitchen-sink\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:634 #, no-wrap msgid "" "override_dh_auto_build:\n" " make world\n" "\n" msgstr "" "override_dh_auto_build:\n" " make world\n" "\n" #. 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 "Classic debhelper vs CDBS vs dh" #. type: itemize #: packaging-tutorial.tex:656 #, fuzzy #| msgid "" #| "Mind shares:\\\\ Classic debhelper: 36\\% \\hskip 1em CDBS: 21\\% \\hskip " #| "1em dh: 41\\%" msgid "" "Mind shares:\\\\ Classic debhelper: 27\\% \\hskip 1em CDBS: 18\\% \\hskip " "1em dh: 54\\%" msgstr "" "マインドシェア:\\\\ Classic debhelper: 27\\% \\hskip 1em CDBS: 18\\% \\hskip " "1em dh: 54\\%" #. 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 "dh や CDBS を使うには debhelper を知る必要" #. type: itemize #: packaging-tutorial.tex:656 msgid "You might have to modify CDBS packages" msgstr "CDBS パッケージを変更するかも" #. 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 "\\textbf{dh} (これだけマインドシェアが上昇)" #. 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 "" "small,label style={font=\\footnotesize},xlabel={\\small 時間}," "ylabel={\\small シェア (\\%)}, 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" #. 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 "" "\\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}" #. type: section{#2} #: packaging-tutorial.tex:680 msgid "Building and testing packages" msgstr "パッケージの構築とテスト" #. type: frame{#2} #: 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 "" "\\textttc{apt-get build-dep mypackage}\\\\ \\textsl{構築依存関係} をインス" "トール (Debian にパッケージあり)\\\\ または \\textttc{mk-build-deps -ir} (ま" "だアップロードされていないパッケージ)" #. type: itemize #: packaging-tutorial.tex:737 msgid "\\textttc{debuild}: build, test with \\texttt{lintian}, sign with GPG" msgstr "\\textttc{debuild}: 構築、\\texttt{lintian} によるテスト、GPG での署名" #. type: itemize #: packaging-tutorial.tex:737 msgid "Also possible to call \\textttc{dpkg-buildpackage} directly" msgstr "\\textttc{dpkg-buildpackage} を直接呼び出すのも可能" #. type: itemize #: packaging-tutorial.tex:737 msgid "Usually with \\texttt{dpkg-buildpackage -us -uc}" msgstr "通常は \\texttt{dpkg-buildpackage -us -uc}" #. type: itemize #: packaging-tutorial.tex:737 msgid "It is better to build packages in a clean \\& minimal environment" msgstr "クリーン \\& 最小の環境でパッケージを構築するのが良い" #. type: itemize #: packaging-tutorial.tex:737 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 "" "\\textttc{pbuilder} -- \\textsl{chroot} 内でパッケージを構築するヘルパー\\\\ " "よいドキュメント: \\url{https://wiki.ubuntu.com/PbuilderHowto}\\\\ (最適化: " "\\textttc{cowbuilder} \\textttc{ccache} \\textttc{distcc})" #. type: itemize #: packaging-tutorial.tex:737 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 "" "\\textttc{schroot} と \\textttc{sbuild}: Debian 構築デーモンで使用\\\\ " "(\\texttt{pbuilder} ほどシンプルではないが LVM スナップショットが取れる\\\\ " "\\url{https://help.ubuntu.com/community/SbuildLVMHowto} を参照)" #. type: itemize #: packaging-tutorial.tex:737 msgid "Generates \\texttt{.deb} files and a \\texttt{.changes} file" msgstr "\\texttt{.deb} ファイルと \\texttt{.changes} ファイルを生成" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "\\texttt{.changes}: describes what was built; used to upload the package" msgstr "" "\\texttt{.changes}: 何を構築したかを説明 (パッケージのアップロードに使用)" #. type: frame{#2} #: packaging-tutorial.tex:737 msgid "Installing and testing packages" msgstr "パッケージのインストールとテスト" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Install the package locally: \\textttc{debi} (will use \\texttt{.changes} to " "know what to install)" msgstr "" "ローカルでパッケージをインストール: \\textttc{debi} (インストール時の情報に " "\\texttt{.changes} を利用)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "List the content of the package: \\texttt{{\\color{rouge}debc} ../" "mypackage.changes}" msgstr "" "パッケージの内容一覧: \\texttt{{\\color{rouge}debc} ../mypackage." "changes}" #. type: itemize #: packaging-tutorial.tex:737 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 "" "旧バージョンのパッケージとの比較:\\\\ \\texttt{{\\color{rouge}debdiff} ../" "mypackage\\_1\\_*.changes ../mypackage\\_2\\_*.changes}\\\\ もしくはソース" "パッケージの比較:\\\\ \\texttt{{\\color{rouge}debdiff} ../mypackage\\_1\\_*." "dsc ../mypackage\\_2\\_*.dsc}\\\\" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Check the package with \\texttt{lintian} (static analyzer):\\\\ " "\\texttt{{\\color{rouge}lintian} ../mypackage.changes}\\\\ " "\\texttt{lintian -i}: gives more information about the errors \\\\ " "\\texttt{lintian -EviIL +pedantic}: shows more problems" msgstr "" "\\texttt{lintian} によるパッケージのチェック (静的解析):\\\\ " "\\texttt{{\\color{rouge}lintian} ../mypackage.changes}\\\\ " "\\texttt{lintian -i}: エラーの詳細情報を表示 \\\\ \\texttt{lintian -EviIL " "+pedantic}: もっと問題を表示" #. type: itemize #: packaging-tutorial.tex:737 msgid "Upload the package to Debian (\\textttc{dput}) (needs configuration)" msgstr "Debian にパッケージをアップロード (\\textttc{dput}) (要設定)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Manage a private Debian archive with \\textttc{reprepro}\\\\ Documentation: " "\\url{http://mirrorer.alioth.debian.org/}" msgstr "" "\\textttc{reprepro} で個人の Debian アーカイブを管理\\\\ ドキュメント: " "\\url{http://mirrorer.alioth.debian.org/}" #. type: frame{#2} #: packaging-tutorial.tex:737 packaging-tutorial.tex:1454 #: packaging-tutorial.tex:1460 msgid "Practical session 1: modifying the grep package" msgstr "練習問題 1: grep パッケージの変更" #. type: enumerate #: packaging-tutorial.tex:737 packaging-tutorial.tex:1460 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package (if you use Ubuntu 11.10 or later, or Debian " "testing or unstable, use version 2.9-1 or 2.9-2 instead)" msgstr "" "\\url{http://ftp.debian.org/debian/pool/main/g/grep/} からバージョン 2.6.3-3 " "のパッケージをダウンロード (Ubuntu 11.10 以降や Debian testing, unstable を使" "用している場合、バージョン 2.9-1, 2.9-2 を)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "If the source package is not unpacked automatically, unpack it with " "\\texttt{dpkg-source~-x~grep\\_*.dsc}" msgstr "" "ソースパッケージを自動展開しなければ \\texttt{dpkg-source~-x~grep\\_*.dsc} と" "して展開" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "Look at the files in \\texttt{debian/}." msgstr "\\texttt{debian/} の中を見よ。" #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "How many binary packages are generated by this source package?" msgstr "このソースパッケージからの、バイナリーパッケージの生成数は?" #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "Which packaging helper does this package use?" msgstr "このパッケージで利用しているパッケージヘルパーは?" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1537 msgid "Build the package" msgstr "パッケージを構築せよ" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1558 msgid "" "We are now going to modify the package. Add a changelog entry and increase " "the version number." msgstr "" "今度はパッケージの変更をしよう。changelog エントリーを追加し、バージョン番号" "を増加せよ。" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1578 msgid "Now disable perl-regexp support (it is a \\texttt{./configure} option)" msgstr "" "今度は、perl-regexp サポートを無効にせよ (\\texttt{./configure} オプション)" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1578 msgid "Rebuild the package" msgstr "パッケージを再構築せよ" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Compare the original and the new package with debdiff" msgstr "元のパッケージと新しいものを debdiff で比較せよ" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Install the newly built package" msgstr "新しく構築したパッケージをインストールせよ" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Cry if you messed up ;)" msgstr "めちゃくちゃになって泣く ;)" #. type: section{#2} #: packaging-tutorial.tex:775 msgid "Advanced packaging topics" msgstr "高度なパッケージングの話題" #. type: frame{#2} #: packaging-tutorial.tex:775 msgid "debian/copyright" msgstr "debian/copyright" #. type: itemize #: packaging-tutorial.tex:775 msgid "Copyright and license information for the source and the packaging" msgstr "ソースとパッケージの著作権・ライセンス情報" #. type: itemize #: packaging-tutorial.tex:775 msgid "Traditionally written as a text file" msgstr "伝統的にテキストファイル" #. type: itemize #: packaging-tutorial.tex:775 msgid "" "New machine-readable format: {\\small\\url{http://www.debian.org/doc/" "packaging-manuals/copyright-format/1.0/}}" msgstr "" "新しい機械可読フォーマット: {\\small\\url{http://www.debian.org/doc/" "packaging-manuals/copyright-format/1.0/}}" #. type: lstlisting #: packaging-tutorial.tex:775 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Format: http://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 "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Format: http://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" #. type: lstlisting #: packaging-tutorial.tex:785 #, no-wrap msgid "" "Files: *\n" "Copyright: Copyright 1998 John Doe \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 "" "Files: *\n" "Copyright: Copyright 1998 John Doe \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" #. type: lstlisting #: packaging-tutorial.tex:790 #, no-wrap msgid "" "Files: debian/*\n" "Copyright: Copyright 1998 Jane Smith \n" "License:\n" " [LICENSE TEXT]" msgstr "" "Files: debian/*\n" "Copyright: Copyright 1998 Jane Smith \n" "License:\n" " [LICENSE TEXT]" #. type: frame{#2} #: packaging-tutorial.tex:821 msgid "Modifying the upstream source" msgstr "上流ソースの変更" #. type: frame #: packaging-tutorial.tex:821 msgid "Often needed:" msgstr "しばしば必要:" #. type: itemize #: packaging-tutorial.tex:821 msgid "Fix bugs or add customizations that are specific to Debian" msgstr "バグ修正や Debian 特有のカスタマイズを追加" #. type: itemize #: packaging-tutorial.tex:821 msgid "Backport fixes from a newer upstream release" msgstr "新しい上流リリースからバックポート" #. type: frame #: packaging-tutorial.tex:821 msgid "Several methods to do it:" msgstr "いくつか方法あり:" #. type: itemize #: packaging-tutorial.tex:821 msgid "Modifying the files directly" msgstr "直接ファイルを編集" #. type: itemize #: packaging-tutorial.tex:821 msgid "Simple" msgstr "シンプル" #. type: itemize #: packaging-tutorial.tex:821 msgid "But no way to track and document the changes" msgstr "変更のドキュメントや追跡する方法がない" #. type: itemize #: packaging-tutorial.tex:821 msgid "Using patch systems" msgstr "パッチシステム利用" #. type: itemize #: packaging-tutorial.tex:821 msgid "Eases contributing your changes to upstream" msgstr "上流へ変更を送り簡単に貢献" #. type: itemize #: packaging-tutorial.tex:821 msgid "Helps sharing the fixes with derivatives" msgstr "派生物と変更を共有しやすく" #. type: itemize #: packaging-tutorial.tex:821 msgid "" "Gives more exposure to the changes\\\\ \\url{http://patch-tracker.debian." "org/}" msgstr "変更をもっと露出へ\\\\ \\url{http://patch-tracker.debian.org/}" #. type: frame{#2} #: packaging-tutorial.tex:851 msgid "Patch systems" msgstr "パッチシステム" #. type: itemize #: packaging-tutorial.tex:851 msgid "Principle: changes are stored as patches in \\texttt{debian/patches/}" msgstr "原則: 変更点は \\texttt{debian/patches/} にパッチとして格納" #. type: itemize #: packaging-tutorial.tex:851 msgid "Applied and unapplied during build" msgstr "適用・非適用は構築時に" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Past: several implementations -- \\textsl{simple-patchsys} (\\textsl{cdbs}), " "\\textsl{dpatch}, \\textbf{\\textsl{quilt}}" msgstr "" "過去: 複数の実装 -- \\textsl{simple-patchsys} (\\textsl{cdbs}), " "\\textsl{dpatch}, \\textbf{\\textsl{quilt}}" #. type: itemize #: packaging-tutorial.tex:851 msgid "Each supports two \\texttt{debian/rules} targets:" msgstr "それぞれ以下の \\texttt{debian/rules} ターゲットをサポート:" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules patch}: apply all patches" msgstr "\\texttt{debian/rules patch}: 全パッチ適用" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules unpatch}: de-apply all patches" msgstr "\\texttt{debian/rules unpatch}: 全パッチ非適用" #. type: itemize #: packaging-tutorial.tex:851 msgid "More documentation: \\url{http://wiki.debian.org/debian/patches}" msgstr "詳細ドキュメント: \\url{http://wiki.debian.org/debian/patches}" #. type: textbf{#1} #: packaging-tutorial.tex:851 msgid "New source package format with built-in patch system: 3.0 (quilt)" msgstr "新ソースパッケージフォーマットはパッチシステム内蔵: 3.0 (quilt)" #. type: itemize #: packaging-tutorial.tex:851 msgid "Recommended solution" msgstr "推奨解決法" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "You need to learn \\textsl{quilt}\\\\ \\url{http://pkg-perl.alioth.debian." "org/howto/quilt.html}" msgstr "" "\\textsl{quilt} を学ぶ必要あり\\\\ \\url{http://pkg-perl.alioth.debian.org/" "howto/quilt.html}" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Patch-system-agnostic tool in \\texttt{devscripts}: \\texttt{edit-patch}" msgstr "" "\\texttt{devscripts} にパッチシステム非依存ツール: \\texttt{edit-patch}" #. type: frame{#2} #: packaging-tutorial.tex:868 msgid "Documentation of patches" msgstr "パッチのドキュメント" #. type: itemize #: packaging-tutorial.tex:868 msgid "Standard headers at the beginning of the patch" msgstr "パッチの先頭に標準ヘッダー" #. type: itemize #: packaging-tutorial.tex:868 msgid "" "Documented in DEP-3 - Patch Tagging Guidelines\\\\ \\url{http://dep.debian." "net/deps/dep3/}" msgstr "" "DEP-3 にドキュメント - Patch Tagging Guidelines\\\\ \\url{http://dep.debian." "net/deps/dep3/}" #. type: lstlisting #: packaging-tutorial.tex:868 #, 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 \n" "Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123\n" "Last-Update: 2010-03-29\n" "\n" msgstr "" "[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 \n" "Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123\n" "Last-Update: 2010-03-29\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:872 #, no-wrap msgid "" "--- a/src/widgets.c\n" "+++ b/src/widgets.c\n" "@@ -101,9 +101,6 @@ struct {" msgstr "" "--- a/src/widgets.c\n" "+++ b/src/widgets.c\n" "@@ -101,9 +101,6 @@ struct {" #. type: frame{#2} #: packaging-tutorial.tex:892 msgid "Doing things during installation and removal" msgstr "インストール・削除中に行われること" #. type: itemize #: packaging-tutorial.tex:892 msgid "Decompressing the package is sometimes not enough" msgstr "パッケージを伸張するだけでは不十分" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Create/remove system users, start/stop services, manage " "\\textsl{alternatives}" msgstr "" "システムユーザー追加/削除、サービス開始/停止、\\textsl{alternatives} の管理" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Done in \\textsl{maintainer scripts}\\\\ \\texttt{preinst, postinst, prerm, " "postrm}" msgstr "" "\\textsl{メンテナースクリプト} で実施\\\\ \\texttt{preinst, postinst, prerm, " "postrm}" #. type: itemize #: packaging-tutorial.tex:892 msgid "Snippets for common actions can be generated by debhelper" msgstr "共通アクションの一部は debhelper で生成可能" #. type: itemize #: packaging-tutorial.tex:892 msgid "Documentation:" msgstr "ドキュメント:" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Debian Policy Manual, chapter 6\\\\ {\\footnotesize \\url{http://www.debian." "org/doc/debian-policy/ch-maintainerscripts}}" msgstr "" "Debian ポリシーマニュアル 6 章\\\\ {\\footnotesize \\url{http://www.debian." "org/doc/debian-policy/ch-maintainerscripts}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Debian Developer's Reference, chapter 6.4\\\\ {\\scriptsize \\url{http://www." "debian.org/doc/developers-reference/best-pkging-practices.html}}" msgstr "" "Debian 開発者リファレンス 6.4 章\\\\ {\\scriptsize \\url{http://www.debian." "org/doc/developers-reference/best-pkging-practices.html}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "{\\footnotesize \\url{http://people.debian.org/~srivasta/MaintainerScripts." "html}}" msgstr "" "{\\footnotesize \\url{http://people.debian.org/~srivasta/MaintainerScripts." "html}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "Prompting the user" msgstr "ユーザーの入力" #. type: itemize #: packaging-tutorial.tex:908 msgid "Must be done with \\textbf{debconf}" msgstr "\\textbf{debconf} で行わなければならない" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Documentation: \\texttt{debconf-devel(7)} (\\texttt{debconf-doc} package)" msgstr "" "ドキュメント: \\texttt{debconf-devel(7)} (\\texttt{debconf-doc} パッケージ)" #. type: frame{#2} #: packaging-tutorial.tex:914 msgid "Monitoring upstream versions" msgstr "上流バージョンの監視" #. type: itemize #: packaging-tutorial.tex:914 msgid "" "Specify where to look in \\texttt{debian/watch} (see \\texttt{uscan(1)})" msgstr "" "どこを監視するか \\texttt{debian/watch} に指定 (\\texttt{uscan(1)} 参照)" #. type: lstlisting #: packaging-tutorial.tex:914 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:917 #, no-wrap msgid "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " msgstr "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Debian infrastructure that makes use of \\texttt{debian/watch}:\\\\ " "\\textbf{Debian External Health Status}\\\\ \\url{http://dehs.alioth.debian." "org/}" msgstr "" "\\texttt{debian/watch} を使用する Debian インフラ:\\\\ \\textbf{Debian " "External Health Status}\\\\ \\url{http://dehs.alioth.debian.org/}" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Maintainer warned by emails sent to the Package Tracking System\\\\ " "\\url{http://packages.qa.debian.org/}" msgstr "" "パッケージ追跡システムからメンテナーにemailで警告\\\\ \\url{http://packages." "qa.debian.org/}" #. type: itemize #: packaging-tutorial.tex:931 msgid "\\texttt{uscan}: run a manual check" msgstr "\\texttt{uscan}: 手動チェック実行" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "\\texttt{uupdate}: try to update your package to the latest upstream version" msgstr "\\texttt{uupdate}: 最新の上流バージョンにパッケージを更新" #. type: subsection{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System (SVN, Git)" msgstr "バージョン管理システムでのパッケージング (SVN, Git)" #. type: frame{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System" msgstr "バージョン管理システムでのパッケージング" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "Several tools to help manage branches and tags for your packaging work:\\\\ " "\\texttt{svn-buildpackage}, \\texttt{git-buildpackage}" msgstr "" "パッケージング作業でブランチやタグの管理補助ツール: \\\\ \\texttt{svn-" "buildpackage}, \\texttt{git-buildpackage}" #. type: itemize #: packaging-tutorial.tex:969 msgid "Example: \\texttt{git-buildpackage}" msgstr "例: \\texttt{git-buildpackage}" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{upstream} branch to track upstream with \\texttt{upstream/" "\\textsl{version}} tags" msgstr "" "\\texttt{upstream}ブランチは \\texttt{upstream/\\textsl{version}} タグで上流" "ソースを追跡" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{master} branch tracks the Debian package" msgstr "\\texttt{master} ブランチは Debian パッケージを追跡" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{debian/\\textsl{version}} tags for each upload" msgstr "アップロードごとに \\texttt{debian/\\textsl{version}} タグを打つ" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{pristine-tar} branch to be able to rebuild the upstream tarball" msgstr "\\texttt{pristine-tar} ブランチで 上流 tar ボールを再構築" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{Vcs-*} fields in \\texttt{debian/control} to locate the repository" msgstr "" "\\texttt{debian/control} の \\texttt{Vcs-*} フィールドにリポジトリの場所を" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Git}" msgstr "\\url{http://wiki.debian.org/Alioth/Git}" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Svn}" msgstr "\\url{http://wiki.debian.org/Alioth/Svn}" #. type: lstlisting #: packaging-tutorial.tex:969 #, 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 "" "[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" " " #. type: lstlisting #: packaging-tutorial.tex:969 #, 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 "" "[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" " " #. type: itemize #: packaging-tutorial.tex:969 msgid "" "VCS-agnostic interface: \\texttt{debcheckout}, \\texttt{debcommit}, " "\\texttt{debrelease}\\\\" msgstr "" "VCS 非依存インターフェース: \\texttt{debcheckout}, \\texttt{debcommit}, " "\\texttt{debrelease}\\\\" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{debcheckout grep} $\\rightarrow$ checks out the source package from " "Git" msgstr "" "\\texttt{debcheckout grep} $\\rightarrow$ Git からソースパッケージをチェック" "アウト" #. type: frame{#2} #: packaging-tutorial.tex:992 msgid "Backporting packages" msgstr "パッケージのバックポート" #. type: itemize #: packaging-tutorial.tex:992 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 "" "目的: 旧システム上でパッケージの新バージョンを使用する\\\\ 例: " "\\textsl{unstable} 由来の \\textsl{mutt} を Debian \\textsl{stable} で利用" #. type: itemize #: packaging-tutorial.tex:992 msgid "General idea:" msgstr "全体的な考え方:" #. type: itemize #: packaging-tutorial.tex:992 msgid "Take the source package from Debian unstable" msgstr "Debian unstable からソースパッケージ取得" #. type: itemize #: packaging-tutorial.tex:992 msgid "Modify it so that it builds and works fine on Debian stable" msgstr "Debian stable で構築・動作するよう修正" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes trivial (no changes needed)" msgstr "時にたいしたことはない (変更不要)" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes difficult" msgstr "時に難しい" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes impossible (many unavailable dependencies)" msgstr "時に不可能 (大量の解決不能な依存関係)" #. type: itemize #: packaging-tutorial.tex:992 msgid "" "Some backports are provided and supported by the Debian project\\\\ " "\\url{http://backports.debian.org/}" msgstr "" "Debian プロジェクトで提供・サポートするバックポート\\\\ \\url{http://" "backports.debian.org/}" #. type: section{#2} #: packaging-tutorial.tex:1023 msgid "Maintaining packages in Debian" msgstr "Debian でのパッケージメンテナンス" #. type: frame{#2} #: packaging-tutorial.tex:1023 msgid "Several ways to contribute to Debian" msgstr "Debian に貢献するさまざまな方法" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Worst} way to contribute:" msgstr "貢献の \\textbf{よくない} 方法:" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Package your own application" msgstr "自分のアプリケーションをパッケージング" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Get it into Debian" msgstr "Debian を理解した気になる" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Disappear" msgstr "いなくなる" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Better} ways to contribute:" msgstr "貢献の \\textbf{よりまし} な方法:" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Get involved in packaging teams" msgstr "パッケージングチームに参加" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Many teams that focus on set of packages, and need help" msgstr "パッケージ群にフォーカスした、たくさんのチーム" #. type: itemize #: packaging-tutorial.tex:1023 msgid "List available at \\url{http://wiki.debian.org/Teams}" msgstr "\\url{http://wiki.debian.org/Teams} に一覧" #. type: itemize #: packaging-tutorial.tex:1023 msgid "An excellent way to learn from more experienced contributors" msgstr "経験豊富な貢献者から学ぶ、優れた方法" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Adopt existing unmaintained packages (\\textsl{orphaned packages})" msgstr "" "メンテナンスされていないパッケージ (\\textsl{メンテナー不在パッケージ}) の引" "き取り" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Bring new software to Debian" msgstr "Debian に新しいソフトウェアを導入" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Only if it's interesting/useful enough, please" msgstr "興味深い/便利なものならぜひ" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Are there alternatives already packaged in Debian?" msgstr "すでに同じパッケージが Debian にないか?" #. type: frame{#2} #: packaging-tutorial.tex:1061 msgid "Adopting orphaned packages" msgstr "メンテナー不在パッケージの引き取り" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Many unmaintained packages in Debian" msgstr "Debian にはメンテナンスされていないパッケージが大量にある" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Full list + process: \\url{http://www.debian.org/devel/wnpp/}" msgstr "全リスト + 進捗: \\url{http://www.debian.org/devel/wnpp/}" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Installed on your machine: \\texttt{wnpp-alert}" msgstr "自分のマシンにインストール: \\texttt{wnpp-alert}" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Different states:" msgstr "それぞれの状態:" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{O}rphaned: the package is unmaintained\\\\ Feel free to adopt it" msgstr "" "\\textbf{O}rphaned (メンテナー不在): このパッケージはメンテナンスされていない" "\\\\ 気軽に引き取って" #. type: itemize #: packaging-tutorial.tex:1061 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 "" "\\textbf{RFA}: \\textbf{R}equest \\textbf{F}or \\textbf{A}dopter (引き取り求" "む)\\\\ メンテナーが作業継続困難につき、引き取り手を探している。\\\\ 気軽に引" "き取って。現メンテナーにメールするのが丁寧" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt\\\\ Someone " "intends to adopt the package\\\\ You could propose your help!" msgstr "" "\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt (引き取り予定)\\" "\\誰かがパッケージを引き取ろうとしている\\\\ 手伝いを申し込むときに!" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp\\\\ The " "maintainer is looking for help" msgstr "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp (助け求む)\\\\ " "メンテナーが助けを求めている" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Some unmaintained packages not detected \\arr not orphaned yet" msgstr "非メンテナンスパッケージを未検出 \\arr まだメンテナー不在ではない" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "When in doubt, ask \\texttt{debian-qa@lists.debian.org} \\\\ or " "\\texttt{\\#debian-qa} on \\texttt{irc.debian.org}" msgstr "" "不明点は \\texttt{debian-qa@lists.debian.org} や\\\\ \\texttt{irc.debian." "org} の \\texttt{\\#debian-qa} で質問" #. type: frame{#2} #: packaging-tutorial.tex:1068 msgid "Adopting a package: example" msgstr "パッケージの引き取り: 例" #. type: lstlisting #: packaging-tutorial.tex:1068 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "From: You \n" "To: 640454@bugs.debian.org, control@bugs.debian.org\n" "Cc: Francois Marier \n" "Subject: ITA: verbiste -- French conjugator\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "From: You \n" "To: 640454@bugs.debian.org, control@bugs.debian.org\n" "Cc: Francois Marier \n" "Subject: ITA: verbiste -- French conjugator\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1072 #, no-wrap msgid "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" msgstr "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1074 #, no-wrap msgid "" "Hi,\n" "\n" msgstr "" "Hi,\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1076 #, no-wrap msgid "" "I am using verbiste and I am willing to take care of the package.\n" "\n" msgstr "" "I am using verbiste and I am willing to take care of the package.\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1078 #, no-wrap msgid "" "Cheers,\n" "\n" msgstr "" "Cheers,\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1080 #, no-wrap msgid "You" msgstr "You" #. type: itemize #: packaging-tutorial.tex:1087 msgid "" "Polite to contact the previous maintainer (especially if the package was " "RFAed, not orphaned)" msgstr "" "元メンテナーに丁寧に連絡を (特にまだメンテナー不在ではなく RFA パッケージの" "時)" #. type: itemize #: packaging-tutorial.tex:1087 msgid "Very good idea to contact the upstream project" msgstr "上流プロジェクトに連絡するとよい" #. type: frame{#2} #: packaging-tutorial.tex:1111 msgid "Getting your package in Debian" msgstr "Debian に自分のパッケージを提供" #. type: itemize #: packaging-tutorial.tex:1111 msgid "You do not need any official status to get your package into Debian" msgstr "Debian に自分のパッケージを提供するのに公式ステータスは不要" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "" "Submit an \\textbf{ITP} bug (\\textbf{I}ntend \\textbf{T}o \\textbf{P}" "ackage) using \\texttt{reportbug wnpp}" msgstr "" "\\texttt{reportbug wnpp} で \\textbf{ITP} バグ (\\textbf{I}ntend \\textbf{T}" "o \\textbf{P}ackage パッケージング宣言) を送信" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "Prepare a source package" msgstr "ソースパッケージの準備" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "Find a Debian Developer that will sponsor your package" msgstr "パッケージをスポンサーしてくれる Debian 開発者を探す" #. type: itemize #: packaging-tutorial.tex:1111 msgid "Official status (when you are an experienced package maintainer):" msgstr "公式ステータス (経験豊富なパッケージメンテナーの場合):" #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Maintainer (DM):}\\\\ Permission to upload your own packages" "\\\\ See \\url{http://wiki.debian.org/DebianMaintainer}" msgstr "" "\\textbf{Debian Maintainer (DM):}\\\\ 自分のパッケージのアップロード権限\\\\ " "\\url{http://wiki.debian.org/DebianMaintainer} 参照" #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Developer (DD):}\\\\ Debian project member; can vote and " "upload any package" msgstr "" "\\textbf{Debian Developer (DD):}\\\\ Debian プロジェクトメンバー (投票および" "任意のパッケージをアップロード)" #. type: frame{#2} #: packaging-tutorial.tex:1139 msgid "Things to check before asking for sponsorship" msgstr "スポンサーを探す前にやっておくこと" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Debian puts \\textbf{a lot of focus on quality}" msgstr "Debian は \\textbf{品質重視}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Generally, \\textbf{sponsors are hard to find and busy}" msgstr "一般的に \\textbf{スポンサーは忙しく、探すのは大変}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Make sure your package is ready before asking for sponsorship" msgstr "スポンサーを探す前に、自分のパッケージは準備万端か確認" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Things to check:" msgstr "チェック項目:" #. type: itemize #: packaging-tutorial.tex:1139 msgid "" "Avoid missing build-dependencies: make sure that your package build fine in " "a clean \\textsl{sid} \\textsl{chroot}" msgstr "" "構築依存関係の不備はないか: クリーンな \\textsl{sid} \\textsl{chroot} できち" "んとパッケージが構築できるか確認" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Using \\texttt{pbuilder} is recommended" msgstr "\\texttt{pbuilder} の利用を推奨" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Run \\texttt{lintian -EviIL +pedantic} on your package" msgstr "自分のパッケージに \\texttt{lintian -EviIL +pedantic} を実行" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Errors must be fixed, all other problems should be fixed" msgstr "エラーは必ず修正。その他の問題も修正すべき" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Do extensive testing of your package, of course" msgstr "もちろん、詳細なパッケージのテストをしておく" #. type: itemize #: packaging-tutorial.tex:1139 msgid "In doubt, ask for help" msgstr "不明点は質問する" #. type: frame{#2} #: packaging-tutorial.tex:1174 msgid "Where to find help?" msgstr "どこで助けを探す?" #. type: frame #: packaging-tutorial.tex:1174 msgid "Help you will need:" msgstr "必要とする助け" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Advice and answers to your questions, code reviews" msgstr "疑問に対する助言や回答、コードレビュー" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Sponsorship for your uploads, once your package is ready" msgstr "パッケージの準備ができたらスポンサーにアップロードしてもらう" #. type: frame #: packaging-tutorial.tex:1174 msgid "You can get help from:" msgstr "助けはここから:" #. type: textbf{#1} #: packaging-tutorial.tex:1174 msgid "Other members of a packaging team" msgstr "パッケージングチームの他のメンバー" #. type: itemize #: packaging-tutorial.tex:1174 msgid "List of teams: \\url{http://wiki.debian.org/Teams}" msgstr "チーム一覧: \\url{http://wiki.debian.org/Teams}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "The \\textbf{Debian Mentors group} (if your package does not fit in a team)" msgstr "\\textbf{Debian メンターグループ} (パッケージがチームに合わない場合)" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://wiki.debian.org/DebianMentorsFaq}" msgstr "\\url{http://wiki.debian.org/DebianMentorsFaq}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "Mailing list: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (also a " "good way to learn by accident)}" msgstr "" "メーリングリスト: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (偶然学" "ぶにもいい方法)}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "IRC: \\texttt{\\#debian-mentors} on \\texttt{irc.debian.org}" msgstr "IRC: \\texttt{irc.debian.org} の \\texttt{\\#debian-mentors}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://mentors.debian.net/}" msgstr "\\url{http://mentors.debian.net/}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Documentation: \\url{http://mentors.debian.net/intro-maintainers}" msgstr "ドキュメント: \\url{http://mentors.debian.net/intro-maintainers}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\textbf{Localized mailing lists} (get help in your language)" msgstr "\\textbf{地域化メーリングリスト} (自分の言語で助けを求む)" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "\\texttt{debian-devel-\\{french,italian,portuguese,spanish\\}@lists.d.o}" msgstr "\\texttt{debian-devel@lists.debian.or.jp}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Full list: \\url{https://lists.debian.org/devel.html}" msgstr "全メーリングリスト: \\url{https://lists.debian.org/devel.html}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Or users lists: \\url{https://lists.debian.org/users.html}" msgstr "ユーザーのメーリングリスト: \\url{https://lists.debian.org/users.html}" #. type: frame{#2} #: packaging-tutorial.tex:1192 msgid "More documentation" msgstr "さらなるドキュメント" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developers' Corner\\\\ \\url{http://www.debian.org/devel/}\\\\ " "{\\small Links to many resources about Debian development}" msgstr "" "Debian 開発者のコーナー\\\\ \\url{http://www.debian.org/devel/}\\\\ {\\small " "Debian 開発向けリソースへのたくさんのリンク}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian New Maintainers' Guide\\\\ \\url{http://www.debian.org/doc/maint-" "guide/}\\\\ {\\small An introduction to Debian packaging, but could use an " "update}" msgstr "" "Debian 新メンテナーガイド\\\\ \\url{http://www.debian.org/doc/maint-guide/}\\" "\\ {\\small Debian パッケージングの導入。更新にも}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developer's Reference\\\\ \\url{http://www.debian.org/doc/developers-" "reference/}\\\\ {\\small Mostly about Debian procedures, but also some best " "packaging practices (part 6)}" msgstr "" "Debian 開発者リファレンス\\\\ \\url{http://www.debian.org/doc/developers-" "reference/}\\\\ {\\small ほとんどが Debian の方法論。パッケージングのベストプ" "ラクティスあり (6 章)}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "Debian Policy\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\" msgstr "" "Debian ポリシー\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\" #. type: itemize #: packaging-tutorial.tex:1198 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 "" "{\\small \\begin{itemize} \\item \\small すべてのパッケージが満たすべき要件 " "\\item \\small Perl, Java, Python, \\ldots の具体的なポリシー \\end{itemize}}" #. type: itemize #: packaging-tutorial.tex:1203 msgid "" "Ubuntu Packaging Guide\\\\ \\url{http://developer.ubuntu.com/resources/tools/" "packaging/}" msgstr "" "Ubuntu パッケージングガイド\\\\ \\url{http://developer.ubuntu.com/resources/" "tools/packaging/}" #. type: frame{#2} #: packaging-tutorial.tex:1217 msgid "Debian dashboards for maintainers" msgstr "メンテナー向け Debian ダッシュボード" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Source package centric}: Package Tracking System (PTS)\\\\ " "\\url{http://packages.qa.debian.org/dpkg}" msgstr "" "\\textbf{ソースパッケージ中枢}: パッケージ追跡システム (PTS)\\\\ " "\\url{http://packages.qa.debian.org/dpkg}" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Maintainer/team centric}: Developer's Packages Overview (DDPO)\\\\ " "\\url{http://qa.debian.org/developer.php?login=pkg-ruby-extras-" "maintainers@lists.alioth.debian.org}" msgstr "" "\\textbf{メンテナー/チームの中枢}: Developer's Packages Overview (DDPO)\\\\ " "\\url{http://qa.debian.org/developer.php?login=pkg-ruby-extras-" "maintainers@lists.alioth.debian.org}" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{TODO-list oriented}: Debian Maintainer Dashboard (DMD)\\\\ " "\\url{http://udd.debian.org/dmd.cgi}" msgstr "" "\\textbf{TODO リスト指向}: Debian Maintainer Dashboard (DMD)\\\\ " "\\url{http://udd.debian.org/dmd.cgi}" #. type: frame{#2} #: packaging-tutorial.tex:1245 msgid "Using the Debian Bug Tracking System (BTS)" msgstr "バグ追跡システム (BTS) の利用" #. type: itemize #: packaging-tutorial.tex:1245 msgid "A quite unique way to manage bugs" msgstr "バグを管理する唯一の方法" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Web interface to view bugs" msgstr "バグを見る Web インターフェース" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Email interface to make changes to bugs" msgstr "バグを変更する Email インターフェース" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Adding information to bugs:" msgstr "バグに情報を付加:" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Write to \\texttt{123456@bugs.debian.org} (does not include the submitter, " "you need to add \\texttt{123456-submitter@bugs.debian.org})" msgstr "" "\\texttt{123456@bugs.debian.org} に送信 (送信者を含まない。含める場合は " "\\texttt{123456-submitter@bugs.debian.org} を追加)" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Changing bug status:" msgstr "バグの状態変更:" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Send commands to \\texttt{control@bugs.debian.org}" msgstr "\\texttt{control@bugs.debian.org} にコマンド送信" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Command-line interface: \\texttt{bts} command in \\texttt{devscripts}" msgstr "" "コマンドラインインターフェース: \\texttt{devscripts} の \\texttt{bts} コマン" "ド" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Documentation: \\url{http://www.debian.org/Bugs/server-control}" msgstr "ドキュメント: \\url{http://www.debian.org/Bugs/server-control}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Reporting bugs: use \\texttt{reportbug}" msgstr "バグの報告: \\texttt{reportbug} を利用" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Normally used with a local mail server: install \\texttt{ssmtp} or " "\\texttt{nullmailer}" msgstr "" "ローカルメールサーバー使用: \\texttt{ssmtp} や \\texttt{nullmailer} をインス" "トール" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Or use \\texttt{reportbug -\\@-template}, then send (manually) to " "\\texttt{submit@bugs.debian.org}" msgstr "" "または \\texttt{reportbug -\\@-template} を使用し \\texttt{submit@bugs." "debian.org} へ (手動で) 送信" #. type: frame{#2} #: packaging-tutorial.tex:1271 msgid "Using the BTS: examples" msgstr "BTS の利用例:" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Sending an email to the bug and the submitter:\\\\ \\url{http://bugs.debian." "org/cgi-bin/bugreport.cgi?bug=680822\\#10}" msgstr "" "バグと送信者へメール送信:\\\\ \\url{http://bugs.debian.org/cgi-bin/bugreport." "cgi?bug=680822\\#10}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Tagging and changing the severity:\\\\ \\url{http://bugs.debian.org/cgi-bin/" "bugreport.cgi?bug=680227\\#10}" msgstr "" "タグ付けと重大度変更:\\\\ \\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?" "bug=680227\\#10}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Reassigning, changing the severity, retitling \\ldots: \\\\ \\url{http://" "bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#93}" msgstr "" "再割当て、重大度変更、タイトル変更\\ldots: \\\\ \\url{http://bugs.debian.org/" "cgi-bin/bugreport.cgi?bug=680822\\#93}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "\\texttt{notfound}, \\texttt{found}, \\texttt{notfixed}, \\texttt{fixed} are " "for \\textbf{version-tracking} \\\\ See \\url{https://wiki.debian.org/" "HowtoUseBTS\\#Version\\_tracking}" msgstr "" "\\texttt{notfound}, \\texttt{found}, \\texttt{notfixed}, \\texttt{fixed} は " "\\textbf{バージョン追跡} される \\\\ \\url{https://wiki.debian.org/" "HowtoUseBTS\\#Version\\_tracking} 参照" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Using usertags: \\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;" "bug=642267}\\\\ See \\url{https://wiki.debian.org/bugs.debian.org/usertags}" msgstr "" "ユーザータグの利用: \\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?" "msg=42;bug=642267}\\\\ \\url{https://wiki.debian.org/bugs.debian.org/" "usertags} 参照" #. type: itemize #: packaging-tutorial.tex:1271 msgid "BTS Documentation:" msgstr "BTS のドキュメント:" #. type: itemize #: packaging-tutorial.tex:1271 msgid "\\url{http://www.debian.org/Bugs/}" msgstr "\\url{http://www.debian.org/Bugs/}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "\\url{https://wiki.debian.org/HowtoUseBTS}" msgstr "\\url{https://wiki.debian.org/HowtoUseBTS}" #. type: frame{#2} #: packaging-tutorial.tex:1298 msgid "More interested in Ubuntu?" msgstr "Ubuntu の方が興味ある?" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu mainly manages the divergence with Debian" msgstr "Ubuntu では主に、Debian から分岐して管理" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "No real focus on specific packages\\\\ Instead, collaboration with Debian " "teams" msgstr "特定のパッケージに注目しているわけではないが、\\\\Debian チームと協力" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "Usually recommend uploading new packages to Debian first\\\\ \\url{https://" "wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" msgstr "" "通常はまず、Debian への新しいパッケージのアップロードを推奨\\\\ " "\\url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Possibly a better plan:" msgstr "おそらくもっと良い案:" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Get involved in a Debian team and act as a bridge with Ubuntu" msgstr "Debian チームに参加し Ubuntu との橋渡し" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Help reduce divergence, triage bugs in Launchpad" msgstr "差異を縮小し Launchpad のバグの処理順を決める手伝い" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Many Debian tools can help:" msgstr "Debian のツールの多くが助けに:" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu column on the Developer's packages overview" msgstr "Developer’s Packages Overview のUbuntu 列" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu box on the Package Tracking System" msgstr "パッケージ追跡システムの Ubuntu ボックス" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Receive launchpad bugmail via the PTS" msgstr "PTS 経由での launchpad バグメール受信" #. type: frame{#2} #: packaging-tutorial.tex:1328 msgid "Conclusions" msgstr "まとめ" #. type: itemize #: packaging-tutorial.tex:1328 msgid "You now have a full overview of Debian packaging" msgstr "Debian のパッケージングについて全体を見渡した" #. type: itemize #: packaging-tutorial.tex:1328 msgid "But you will need to read more documentation" msgstr "しかしもっと詳細なドキュメントが必要になる" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Best practices have evolved over the years" msgstr "ベストプラクティスは長年にわたって発展" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "If not sure, use the \\textbf{dh} packaging helper, and the \\textbf{3.0 " "(quilt)} format" msgstr "" "よくわからなければ \\textbf{dh} パッケージングヘルパーと \\textbf{3.0 " "(quilt)} フォーマットを使う" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Things that were not covered in this tutorial:" msgstr "このチュートリアルで扱わなかったこと:" #. type: itemize #: packaging-tutorial.tex:1328 msgid "UCF -- manage user changes to configuration files when upgrading" msgstr "UCF -- ユーザーが変更した設定ファイルのアップグレード時の扱い" #. type: itemize #: packaging-tutorial.tex:1328 msgid "dpkg triggers -- group similar maintainer scripts actions together" msgstr "dpkg トリガー -- メンテナースクリプトに似たグループを同時に実行" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian development organization:" msgstr "Debian の開発組織:" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "Suites: stable, testing, unstable, experimental, security, *-updates, " "backports, \\ldots" msgstr "" "パッケージ群: stable, testing, unstable, experimental, security, *-updates, " "backports, \\ldots" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian Blends -- subsets of Debian targeting specific groups" msgstr "Debian ブレンド -- 特定グループ向けの Debian サブセット" #. type: centerline{#1} #: packaging-tutorial.tex:1328 msgid "\\large Feedback: \\textbf{packaging-tutorial@packages.debian.org}" msgstr "" "\\large フィードバック: \\textbf{packaging-tutorial@packages.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1331 msgid "Legal stuff" msgstr "法的事項" #. type: frame #: packaging-tutorial.tex:1334 msgid "Copyright \\copyright 2011--2013 Lucas Nussbaum -- lucas@debian.org" msgstr "Copyright \\copyright 2011--2013 Lucas Nussbaum -- lucas@debian.org" #. type: frame #: packaging-tutorial.tex:1350 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 "" "{\\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} }" #. type: frame{#2} #: packaging-tutorial.tex:1379 msgid "Contribute to this tutorial" msgstr "このチュートリアルへの貢献" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Contribute:" msgstr "貢献:" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{apt-get source packaging-tutorial}}" msgstr "{\\small \\texttt{apt-get source packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{debcheckout packaging-tutorial}}" msgstr "{\\small \\texttt{debcheckout packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\texttt{git clone\\\\ git://git.debian.org/collab-maint/packaging-" "tutorial.git}}" msgstr "" "{\\small \\texttt{git clone\\\\ git://git.debian.org/collab-maint/packaging-" "tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" msgstr "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small Open bugs: \\url{bugs.debian.org/src:packaging-tutorial}}" msgstr "{\\small 未修正バグ: \\url{bugs.debian.org/src:packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Provide feedback:" msgstr "フィードバックの送り先:" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "\\href{mailto:packaging-tutorial@packages.debian.org}" "{\\textbf{\\texttt{mailto:packaging-tutorial@packages.debian.org}}}" msgstr "" "\\href{mailto:packaging-tutorial@packages.debian.org}" "{\\textbf{\\texttt{mailto:packaging-tutorial@packages.debian.org}}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be added to this tutorial?}" msgstr "{\\small このチュートリアルに何を追加すべき?}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be improved?}" msgstr "{\\small もっと良くするには?}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{reportbug packaging-tutorial}}" msgstr "{\\small \\texttt{reportbug packaging-tutorial}}" #. type: frame{#2} #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Practical session 2: packaging GNUjump" msgstr "練習問題 2: GNUjump のパッケージング" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "" "Download GNUjump 1.0.8 from \\url{http://ftp.gnu.org/gnu/gnujump/" "gnujump-1.0.8.tar.gz}" msgstr "" "GNUjump 1.0.8 を \\url{http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz} " "からダウンロードせよ" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Create a Debian package for it" msgstr "この Debian パッケージを作成せよ" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Install build-dependencies so that you can build the package" msgstr "パッケージを構築するため構築依存関係パッケージをインストール" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Get a basic working package" msgstr "パッケージの基本作業を確認" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Finish filling \\texttt{debian/control} and other files" msgstr "\\texttt{debian/control} や他のファイルに記入して完成" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Enjoy" msgstr "楽しむこと" #. type: frame{#2} #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Practical session 3: packaging a Java library" msgstr "練習問題 3: Java ライブラリーのパッケージング" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Take a quick look at some documentation about Java packaging:\\\\" msgstr "Java のパッケージングについてのドキュメントを参照せよ:\\\\" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java}" msgstr "\\url{http://wiki.debian.org/Java}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java/Packaging}" msgstr "\\url{http://wiki.debian.org/Java/Packaging}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" msgstr "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" msgstr "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 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 "" "javahelper について Debconf10 で語った資料やスライド:\\\\ {\\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}}" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Download IRClib from \\url{http://moepii.sourceforge.net/}" msgstr "\\url{http://moepii.sourceforge.net/} から IRClib をダウンロードせよ" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Package it" msgstr "パッケージを作成せよ" #. type: frame{#2} #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Practical session 4: packaging a Ruby gem" msgstr "練習問題 4: Ruby gem のパッケージング" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Take a quick look at some documentation about Ruby packaging:\\\\" msgstr "Ruby のパッケージングについてのドキュメントを参照せよ:\\\\" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Ruby}" msgstr "\\url{http://wiki.debian.org/Ruby}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby}" msgstr "\\url{http://wiki.debian.org/Teams/Ruby}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" msgstr "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (in the \\texttt{gem2deb} " "package)" msgstr "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (\\texttt{gem2deb} パッケージ内)" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "Create a basic Debian source package from the \\texttt{net-ssh} gem:\\\\ " "\\texttt{gem2deb net-ssh}" msgstr "" "\\texttt{net-ssh} gem から基本的な Debian ソースパッケージを作成せよ:\\\\ " "\\texttt{gem2deb net-ssh}" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Improve it so that it becomes a proper Debian package" msgstr "きちんとした Debian パッケージになるよう改良せよ" #. type: section{#2} #: packaging-tutorial.tex:1445 msgid "Answers to practical sessions" msgstr "練習問題の解答" #. type: center #: packaging-tutorial.tex:1451 msgid "\\LARGE Answers to" msgstr "\\LARGE 解答" #. type: center #: packaging-tutorial.tex:1451 msgid "[0.5em] practical sessions" msgstr "[0.5em] 練習問題" #. type: frame{#2} #: packaging-tutorial.tex:1509 msgid "Fetching the source" msgstr "ソースの取得" #. type: enumerate #: packaging-tutorial.tex:1509 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package" msgstr "" "\\url{http://ftp.debian.org/debian/pool/main/g/grep/} に行き、バージョン " "2.6.3-3 のパッケージをダウンロードする" #. type: itemize #: packaging-tutorial.tex:1509 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 "" "dget を使用して \\texttt{.dsc} ファイルをダウンロード:\\\\ {\\small " "\\texttt{dget http://cdn.debian.net/debian/pool/main/g/grep/grep\\_2.6.3-3." "dsc}}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "" "According to \\url{http://packages.qa.debian.org/grep}, \\texttt{grep} " "version 2.6.3-3 is currently in \\textsl{stable} (\\textsl{squeeze}). 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.6.3-3}\\\\ or " "\\texttt{apt-get source grep/stable}\\\\ or, if you feel lucky: \\texttt{apt-" "get source grep}" msgstr "" "\\url{http://packages.qa.debian.org/grep} によると、\\texttt{grep} バージョ" "ン 2.6.3-3 は現在 \\textsl{stable} (\\textsl{squeeze})。\\texttt{/etc/apt/" "sources.list} に \\textsl{squeeze} の \\texttt{deb-src} 行がある場合、以下の" "ようにできます。\\\\ \\texttt{apt-get source grep=2.6.3-3}\\\\ または " "\\texttt{apt-get source grep/stable}\\\\ または \\texttt{apt-get source " "grep} とできればラッキー" #. type: itemize #: packaging-tutorial.tex:1509 msgid "The \\texttt{grep} source package is composed of three files:" msgstr "\\texttt{grep} のソースパッケージは以下の 3 ファイル:" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.dsc}" msgstr "\\texttt{grep\\_2.6.3-3.dsc}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" msgstr "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3.orig.tar.bz2}" msgstr "\\texttt{grep\\_2.6.3.orig.tar.bz2}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "This is typical of the \"3.0 (quilt)\" format." msgstr "典型的な \"3.0 (quilt)\" フォーマット" #. type: itemize #: packaging-tutorial.tex:1509 msgid "" "If needed, uncompress the source with\\\\ \\texttt{dpkg-source -x grep" "\\_2.6.3-3.dsc}" msgstr "" "必要なら以下のようにソースを展開\\\\ \\texttt{dpkg-source -x grep\\_2.6.3-3." "dsc}" #. type: frame{#2} #: packaging-tutorial.tex:1528 msgid "Looking around and building the package" msgstr "パッケージを見回して構築" #. type: itemize #: packaging-tutorial.tex:1528 msgid "" "According to \\texttt{debian/control}, this package only generates one " "binary package, named \\texttt{grep}." msgstr "" "\\texttt{debian/control} によると、このパッケージは \\texttt{grep} という名前" "のバイナリーパッケージをひとつだけ生成する。" #. type: itemize #: packaging-tutorial.tex:1528 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 "" "\\texttt{debian/rules} によると、このパッケージは \\textsl{CDBS} や " "\\textsl{dh} を使わず、\\textsl{classic} debhelper でパッケージングされてい" "る。\\texttt{debian/rules} で、さまざまな \\texttt{dh\\_*} コマンドを呼び出し" "ていることがわかる。" #. type: itemize #: packaging-tutorial.tex:1537 msgid "Use \\texttt{apt-get build-dep grep} to fetch the build-dependencies" msgstr "" "\\texttt{apt-get build-dep grep} を使用して、構築依存のパッケージを取得" #. type: itemize #: packaging-tutorial.tex:1537 msgid "" "Then \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc} (Takes about 1 " "min)" msgstr "" "その後 \\texttt{debuild} や \\texttt{dpkg-buildpackage -us -uc} を実行 (1 分" "ほどかかる)" #. type: frame{#2} #: packaging-tutorial.tex:1541 msgid "Editing the changelog" msgstr "changelog の編集" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "\\texttt{debian/changelog} is a text file. You could edit it and add a new " "entry manually." msgstr "" "\\texttt{debian/changelog} はテキストファイルである。手で編集して新エントリー" "を追加する。" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Or you can use \\texttt{dch -i}, which will add an entry and open the editor" msgstr "また、\\texttt{dch -i} を使用し、エントリーを追加しエディターを起動" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "The name and email can be defined using the \\texttt{DEBFULLNAME} and " "\\texttt{DEBEMAIL} environment variables" msgstr "" "名前とメールアドレスは環境変数 \\texttt{DEBFULLNAME} と \\texttt{DEBEMAIL} で" "定義" #. type: itemize #: packaging-tutorial.tex:1558 msgid "After that, rebuild the package: a new version of the package is built" msgstr "その後、パッケージを再構築: 新バージョンのパッケージを構築" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Package versioning is detailed in section 5.6.12 of the Debian policy\\\\ " "\\url{http://www.debian.org/doc/debian-policy/ch-controlfields}" msgstr "" "パッケージのバージョン付けは Debian ポリシーの 5.6.12 節に\\\\ \\url{http://" "www.debian.org/doc/debian-policy/ch-controlfields}" #. type: frame{#2} #: packaging-tutorial.tex:1562 msgid "Disabling Perl regexp support and rebuilding" msgstr "Perl 正規表現の無効化と再構築" #. type: itemize #: packaging-tutorial.tex:1578 msgid "" "Check with \\texttt{./configure -{}-help}: the option to disable Perl regexp " "is \\texttt{-{}-disable-perl-regexp}" msgstr "" "\\texttt{./configure -{}-help} をチェック: Perl 正規表現を無効にするオプショ" "ンは \\texttt{-{}-disable-perl-regexp}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Edit \\texttt{debian/rules} and find the \\texttt{./configure} line" msgstr "\\texttt{debian/rules} を編集して \\texttt{./configure} の行を探す" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Add \\texttt{-{}-disable-perl-regexp}" msgstr "\\texttt{-{}-disable-perl-regexp} を追加" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Rebuild with \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc}" msgstr "\\texttt{debuild} や \\texttt{dpkg-buildpackage -us -uc} で再構築" #. type: frame{#2} #: packaging-tutorial.tex:1582 msgid "Comparing and testing the packages" msgstr "パッケージの比較とテスト" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the binary packages: \\texttt{debdiff ../*changes}" msgstr "バイナリーパッケージの比較: \\texttt{debdiff ../*changes}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the source packages: \\texttt{debdiff ../*dsc}" msgstr "ソースパッケージの比較: \\texttt{debdiff ../*dsc}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "Install the newly built package: \\texttt{debi}\\\\ Or \\texttt{dpkg -i ../" "grep\\_}" msgstr "" "新規構築パッケージをインストール:\\texttt{debi}\\\\ または \\texttt{dpkg -" "i ../grep\\_}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "\\texttt{grep -P foo} no longer works!" msgstr "\\texttt{grep -P foo} がもう動作しない!" #. type: frame #: packaging-tutorial.tex:1608 msgid "Or not: reinstall the previous version of the package:" msgstr "ではなく: 以前のバージョンのパッケージを再インストール:" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= previous " "version)}" msgstr "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= 前バージョ" "ン)}" #. type: frame{#2} #: packaging-tutorial.tex:1655 packaging-tutorial.tex:1769 #: packaging-tutorial.tex:1811 msgid "Step by step\\ldots" msgstr "一歩ずつ\\ldots" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" msgstr "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" msgstr "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" msgstr "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{cd gnujump-1.0.8/}" msgstr "\\texttt{cd gnujump-1.0.8/}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{dh\\_make}" msgstr "\\texttt{dh\\_make}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "Type of package: single binary (for now)" msgstr "パッケージのタイプ: 単一バイナリー (今回は)" #. type: lstlisting #: packaging-tutorial.tex:1655 #, 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 "" "[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" #. type: frame{#2} #: packaging-tutorial.tex:1682 packaging-tutorial.tex:1835 msgid "Step by step\\ldots (2)" msgstr "一歩ずつ\\ldots (2)" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Look at \\texttt{debian/changelog}, \\texttt{debian/rules}, \\texttt{debian/" "control}\\\\ (auto-filled by \\textbf{dh\\_make})" msgstr "" "\\texttt{debian/changelog}, \\texttt{debian/rules}, \\texttt{debian/control} " "を見る\\\\ (\\textbf{dh\\_make} が自動記入)" #. type: itemize #: packaging-tutorial.tex:1682 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 "" "\\texttt{debian/control} では: \\\\ \\texttt{Build-Depends: debhelper (>= " "7.0.50~), autotools-dev}\\\\ \\textsl{構築依存関係} = パッケージを構築するの" "に必要なパッケージの一覧" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Try to build the package as-is (thanks to \\textbf{dh} magic)" msgstr "そのままパッケージの構築をしてみる (\\textbf{dh} マジックに感謝)" #. type: itemize #: packaging-tutorial.tex:1682 msgid "And add build-dependencies, until it builds" msgstr "構築できるまで構築依存関係を追加" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Hint: use \\texttt{apt-cache search} and \\texttt{apt-file} to find the " "packages" msgstr "" "ヒント: \\texttt{apt-cache search} や \\texttt{apt-file} を使ってパッケージを" "探す" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Example:" msgstr "例:" #. type: lstlisting #: packaging-tutorial.tex:1682 #, 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 "" "[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!" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "$\\rightarrow$ Add \\textbf{libsdl1.2-dev} to Build-Depends and install it." msgstr "" "$\\rightarrow$ \\textbf{libsdl1.2-dev} を Build-Depends に追加しインストール" "する。" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Better: use \\textbf{pbuilder} to build in a clean environment" msgstr "ベター: \\textbf{pbuilder} を使ってクリーンな環境で構築" #. type: frame{#2} #: packaging-tutorial.tex:1710 packaging-tutorial.tex:1849 msgid "Step by step\\ldots (3)" msgstr "一歩ずつ\\ldots (3)" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "After installing \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-" "mixer1.2-dev}, the package builds fine." msgstr "" "\\texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev} をインス" "トールすると構築成功する。" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debc} to list the content of the generated package." msgstr "\\texttt{debc} を使い、生成したパッケージの内容一覧を取得。" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debi} to install it and test it." msgstr "\\texttt{debi} を使用し、インストール・テストを行う。" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Test the package with \\texttt{lintian}" msgstr "\\texttt{lintian} でパッケージのテスト" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "While not a strict requirement, it is recommended that packages uploaded to " "Debian are \\textsl{lintian-clean}" msgstr "" "厳格な必要条件ではないが、Debian にアップロードするパッケージは " "\\textsl{lintian-clean} を推奨" #. type: itemize #: packaging-tutorial.tex:1710 msgid "More problems can be listed using \\texttt{lintian -EviIL +pedantic}" msgstr "\\texttt{lintian -EviIL +pedantic} を使用してもっと問題を列挙できる" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Some hints:" msgstr "ヒント:" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Remove the files that you don't need in \\texttt{debian/}" msgstr "\\texttt{debian/} にある不要なファイルを削除" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Fill in \\texttt{debian/control}" msgstr "\\texttt{debian/control} に記入" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Install the executable to \\texttt{/usr/games} by overriding \\texttt{dh" "\\_auto\\_configure}" msgstr "" "\\texttt{dh\\_auto\\_configure} を上書きし、実行ファイルを \\texttt{/usr/" "games} にインストール" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Use \\textsl{hardening} compiler flags to increase security.\\\\ See " "\\url{http://wiki.debian.org/Hardening}" msgstr "" "\\textsl{ハードニング}コンパイラーフラグを使ってセキュリティを高める。\\\\ " "\\url{http://wiki.debian.org/Hardening} 参照" #. type: frame{#2} #: packaging-tutorial.tex:1723 msgid "Step by step\\ldots (4)" msgstr "一歩ずつ\\ldots (4)" #. type: itemize #: packaging-tutorial.tex:1723 msgid "Compare your package with the one already packaged in Debian:" msgstr "Debian でパッケージ化されているものと、自分のパッケージを比較:" #. type: itemize #: packaging-tutorial.tex:1723 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 "" "データファイルを、第 2 のパッケージへ分割し、全アーキテクチャで同じ物にしてい" "る ($\\rightarrow$ Debian アーカイブの使用量を抑える)" #. type: itemize #: packaging-tutorial.tex:1723 msgid "" "It installs a .desktop file (for the GNOME/KDE menus) and also integrates " "into the Debian menu" msgstr "" ".desktop ファイル (GNOME/KDE メニュー向け) をインストールし、Debian メニュー" "に統合もしている" #. type: itemize #: packaging-tutorial.tex:1723 msgid "It fixes a few minor problems using patches" msgstr "パッチを使用し、小さな問題を修正している" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{apt-get install javahelper}" msgstr "\\texttt{apt-get install javahelper}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Create a basic source package: \\texttt{jh\\_makepkg}" msgstr "基本的なソースパッケージを作成: \\texttt{jh\\_makepkg}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Library" msgstr "ライブラリー" #. type: itemize #: packaging-tutorial.tex:1769 msgid "None" msgstr "なし" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Default Free compiler/runtime" msgstr "デフォルトのフリーなコンパイラー/ランタイム" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Look at and fix \\texttt{debian/*}" msgstr "\\texttt{debian/} の中を見て修正" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{dpkg-buildpackage -us -uc} or \\texttt{debuild}" msgstr "\\texttt{dpkg-buildpackage -us -uc} または \\texttt{debuild}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{lintian}, \\texttt{debc}, etc." msgstr "\\texttt{lintian}, \\texttt{debc}, etc." #. type: itemize #: packaging-tutorial.tex:1769 msgid "Compare your result with the \\texttt{libirclib-java} source package" msgstr "自分の結果と \\texttt{libirclib-java} ソースパッケージを比較" #. type: frame #: packaging-tutorial.tex:1811 msgid "\\texttt{gem2deb net-ssh}:" msgstr "\\texttt{gem2deb net-ssh}:" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Downloads the gem from rubygems.org" msgstr "rubygems.org から gem をダウンロード" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Creates a suitable .orig.tar.gz archive, and untar it" msgstr "ひと揃いの .orig.tar.gz アーカイブを作成し、tar を展開" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Initializes a Debian source package based on the gem's metadata" msgstr "gem のメタデータを基に Debian ソースパッケージを初期化" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Named \\texttt{ruby-\\textsl{gemname}}" msgstr "\\texttt{ruby-\\textsl{gemname}} という名前" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Tries to build the Debian binary package (this might fail)" msgstr "Debian バイナリーパッケージの生成をしてみる (多分失敗)" #. type: frame #: packaging-tutorial.tex:1811 msgid "" "\\texttt{dh\\_ruby} (included in \\textsl{gem2deb}) does the Ruby-specific " "tasks:" msgstr "\\texttt{dh\\_ruby} (\\textsl{gem2deb} に同梱) は Ruby 特有のタスク:" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Build C extensions for each Ruby version" msgstr "C の拡張を各 Ruby バージョン向けに構築" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Copy files to their destination directory" msgstr "宛先ディレクトリーにファイルをコピー" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Update shebangs in executable scripts" msgstr "実行スクリプトのシェバングを更新" #. type: itemize #: packaging-tutorial.tex:1811 msgid "" "Run tests defined in \\texttt{debian/ruby-tests.rb} or \\texttt{debian/ruby-" "test-files.yaml}, as well as various other checks" msgstr "" "その他のチェックと同様に \\texttt{debian/ruby-tests.rb} や \\texttt{debian/" "ruby-test-files.yaml} で定義されたテストを実行" #. type: frame #: packaging-tutorial.tex:1835 msgid "Improve the generated package:" msgstr "生成したパッケージを改良:" #. Translators: #. This context is very sensitive to line length. If you #. hit errors building the package around this line in your translated version #. see, e.g. in the Spanish or German version for versions with explicit line #. breaks for the translation #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Run \\texttt{debclean} to clean the source tree. Look at \\texttt{debian/}." msgstr "" "\\texttt{debclean} を実行してソースツリーを掃除。\\texttt{debian/} を見る。" #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{changelog} and \\texttt{compat} should be correct" msgstr "\\texttt{changelog} や \\texttt{compat} が正しいか" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Edit \\texttt{debian/control}: uncomment \\texttt{Homepage}, improve " "\\texttt{Description}" msgstr "" "\\texttt{debian/control} を編集: \\texttt{Homepage} をアンコメン" "ト。\\texttt{Description} を改良" #. type: itemize #: packaging-tutorial.tex:1835 msgid "Write a proper \\texttt{copyright} file based on the upstream files" msgstr "上流ファイルを基に \\texttt{copyright} ファイルを適切に記述" #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{ruby-net-ssh.docs}: install \\texttt{README.rdoc}" msgstr "\\texttt{ruby-net-ssh.docs}: \\texttt{README.rdoc} をインストール" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "\\texttt{ruby-tests.rb}: run the tests. In that case, it is enough to do:\\" "\\ \\verb+$: << 'test' << 'lib' << '.'+\\\\ \\verb+require 'test/test_all." "rb'+" msgstr "" "\\texttt{ruby-tests.rb}: テストの実行。この場合以下で十分:\\\\\n" " \\verb+$: << 'test' << 'lib' << '.'+\\\\ \\verb+require 'test/test_all.rb'+" #. type: frame #: packaging-tutorial.tex:1849 msgid "Build the package. It fails to build. There are two problems:" msgstr "パッケージを構築する。失敗するはず。2 つ問題がある:" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "You need to disable the \\texttt{gem} call in the test suite.\\\\ In " "\\texttt{test/common.rb}, remove the \\verb+gem \"test-unit\"+ line:" msgstr "" "テストスイートで \\texttt{gem} の呼び出しを無効にする必要がある。\\\\ " "\\texttt{test/common.rb} で \\verb+gem \"test-unit\"+ の行を削除:" #. type: itemize #: packaging-tutorial.tex:1849 msgid "\\texttt{edit-patch disable-gem.patch}" msgstr "\\texttt{edit-patch disable-gem.patch}" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "Edit \\texttt{test/common.rb}, remove the \\texttt{gem} line. Exit the sub-" "shell" msgstr "" "\\texttt{test/common.rb} を編集して \\texttt{gem} 行を削除。その後サブシェル" "終了" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Describe the changes in \\texttt{debian/changelog}" msgstr "\\texttt{debian/changelog} の変更点を記述" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Document the patch in \\texttt{debian/patches/disable-gem.patch}" msgstr "\\texttt{debian/patches/disable-gem.patch} のパッチについて記載" #. type: itemize #: packaging-tutorial.tex:1854 msgid "" "The package lacks a build-dependency on \\texttt{ruby-mocha}, which is used " "by the test suite (you might need to build your package in a clean " "environment, using \\texttt{pbuilder}, to reproduce that problem)" msgstr "" "パッケージの構築依存関係に テストスイートで使用する \\texttt{ruby-mocha} が欠" "けている (問題を再度見るためには、\\texttt{pbuilder} を使用し、クリーン環境で" "パッケージを構築する必要がある)" #. type: itemize #: packaging-tutorial.tex:1857 msgid "Add \\texttt{ruby-mocha} to the package's \\texttt{Build-Depends}" msgstr "パッケージの \\texttt{Build-Depends} に \\texttt{ruby-mocha} を追加" #. type: itemize #: packaging-tutorial.tex:1868 msgid "" "\\textsl{gem2deb} copies the dependencies documented in the \\textsl{gem} as " "comments in \\texttt{debian/control}, but \\textsl{mocha} is not listed as a " "development dependency by the gem (that's a bug in the gem)" msgstr "" "\\textsl{gem2deb} は、\\textsl{gem} に書かれた依存関係を、\\texttt{debian/" "control} にコメントとしてコピーする。しかし、\\textsl{mocha} が gem の開発依" "存関係にリストされていない (gem のバグ)" #. type: frame #: packaging-tutorial.tex:1868 msgid "" "Compare your package with the \\texttt{ruby-net-ssh} package in the Debian " "archive" msgstr "" "Debian アーカイブの \\texttt{ruby-net-ssh} パッケージと、自分のパッケージを比" "較" #~ msgid "Official documentation" #~ msgstr "公式ドキュメント" packaging-tutorial-0.12/po4a/po/de.po0000644000000000000000000042545412234414737014345 0ustar # Translation of packaging-tutorial documentation to German # Copyright (C) Helge Kreutzmann , 2012, 2013. # This file is distributed under the same license as the packaging-tutorial package. # msgid "" msgstr "" "Project-Id-Version: packaging-tutorial 0.8+git\n" "POT-Creation-Date: 2013-10-29 20:42+0100\n" "PO-Revision-Date: 2013-09-01 11:48+0200\n" "Last-Translator: Helge Kreutzmann \n" "Language-Team: de \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: Plain text #: packaging-tutorial.tex:4 msgid "\\mode \\usetheme{debian}" msgstr "\\mode \\usetheme{debian}" # FIXME #. 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 "\\usepackage{debiantutorial.de} \\usepackage[german]{babel}" #. type: title{#2} #: packaging-tutorial.tex:14 msgid "Debian Packaging Tutorial" msgstr "Debian-Paketier-Anleitung" #. type: author{#2} #: packaging-tutorial.tex:14 msgid "" "Lucas Nussbaum\\\\{\\small\\texttt{packaging-tutorial@packages.debian.org}}" msgstr "" "Lucas Nussbaum\\\\{\\small\\texttt{packaging-tutorial@packages.debian.org}}" #. 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 #, fuzzy #| msgid "version 0.10 -- 2013-09-12" msgid "version 0.11 -- 2013-10-29" msgstr "version 0.10 -- 2013-09-12" #. type: frame{#2} #: packaging-tutorial.tex:52 msgid "About this tutorial" msgstr "Über diese Anleitung" #. type: itemize #: packaging-tutorial.tex:52 msgid "" "Goal: \\textbf{tell you what you really need to know about Debian packaging}" msgstr "" "Ziel: \\textbf{Ihnen mitzuteilen, was Sie wirklich über das Paketieren für " "Debian wissen müssen}" #. type: itemize #: packaging-tutorial.tex:52 msgid "Modify existing packages" msgstr "Bestehende Pakete verändern" #. type: itemize #: packaging-tutorial.tex:52 msgid "Create your own packages" msgstr "Eigene Pakete erstellen" #. type: itemize #: packaging-tutorial.tex:52 msgid "Interact with the Debian community" msgstr "Mit der Debian-Gemeinschaft arbeiten" #. type: itemize #: packaging-tutorial.tex:52 msgid "Become a Debian power-user" msgstr "Werden Sie ein versierter Debian-Benutzer" #. type: itemize #: packaging-tutorial.tex:52 msgid "Covers the most important points, but is not complete" msgstr "Die wichtigsten Punkte werden abgedeckt, es ist aber nicht vollständig" #. type: itemize #: packaging-tutorial.tex:52 msgid "You will need to read more documentation" msgstr "Sie werden weitere Dokumentation lesen müssen" #. type: itemize #: packaging-tutorial.tex:52 msgid "Most of the content also applies to Debian derivative distributions" msgstr "" "Die meisten Inhalte passen auch auf von Debian abgeleitete Distributionen" #. type: itemize #: packaging-tutorial.tex:52 msgid "That includes Ubuntu" msgstr "Dazu gehört Ubuntu" #. type: frame{#2} #: packaging-tutorial.tex:56 debiantutorial.sty:42 msgid "Outline" msgstr "Gliederung" #. type: section{#2} #: packaging-tutorial.tex:58 msgid "Introduction" msgstr "Einleitung" #. type: frame{#2} #: packaging-tutorial.tex:60 packaging-tutorial.tex:84 msgid "Debian" msgstr "Debian" #. type: textbf{#1} #: packaging-tutorial.tex:84 msgid "GNU/Linux distribution" msgstr "GNU/Linux-Distribution" #. type: itemize #: packaging-tutorial.tex:84 msgid "1st major distro developed ``openly in the spirit of GNU''" msgstr "" "1. größere Distribution, die »offen im Geiste von GNU« entwickelt wurde" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Non-commercial}, built collaboratively by over 1,000 volunteers" msgstr "" "\\textbf{Nicht kommerziell}, gemeinsam von über 1000 Freiwilligen gebaut" #. type: itemize #: packaging-tutorial.tex:84 msgid "3 main features:" msgstr "3 Hauptfunktionalitäten:" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Quality} -- culture of technical excellence\\\\ {\\small\\sl We " "release when it's ready}" msgstr "" "\\textbf{Qualität} -- Kultur der technischen Exzellenz\\\\ {\\small\\sl Wir " "veröffentlichen, wenn es fertig ist}" #. 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 "" "\\textbf{Freiheit} -- Entwickler und Benutzer sind durch den " "\\textsl{Gesellschaftsvertrag} gebunden\\\\ Fördern der Kultur der Freien " "Software seit 1993" #. 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 "" "\\textbf{Unabhängigkeit} -- keine (einzelne) Firma beaufsichtigt Debian\\\\ " "Und offener Entscheidungsfindungsprozess (\\textsl{do-ocracy} + " "\\textsl{Demokratie})" #. type: itemize #: packaging-tutorial.tex:84 msgid "\\textbf{Amateur} in the best sense: done for the love of it" msgstr "\\textbf{Amateur} im besten Sinne: Mit Liebe erstellt" #. type: frame{#2} #: packaging-tutorial.tex:105 msgid "Debian packages" msgstr "Debian-Pakete" #. type: itemize #: packaging-tutorial.tex:105 msgid "\\textbf{.deb} files (binary packages)" msgstr "\\textbf{.deb}-Dateien (Binärpakete)" #. type: itemize #: packaging-tutorial.tex:105 msgid "A very powerful and convenient way to distribute software to users" msgstr "Ein sehr mächtiger und bequemer Weg, Software an Benutzer zu verteilen" #. type: itemize #: packaging-tutorial.tex:105 msgid "One of the two most common package formats (with RPM)" msgstr "Eines der beiden häufigsten Paketformate (mit RPM)" #. type: itemize #: packaging-tutorial.tex:105 msgid "Universal:" msgstr "Universell:" #. 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 "" "30.000 Binärpakete in Debian\\\\ $\\rightarrow$ die meiste verfügbare freie " "Software ist für Debian paketiert!" #. type: itemize #: packaging-tutorial.tex:105 msgid "For 12 ports (architectures), including 2 non-Linux (Hurd; KFreeBSD)" msgstr "" "Für 12 Portierungen (Architekturen), darunter 2 neben Linux (Hurd; KFreeBSD)" #. type: itemize #: packaging-tutorial.tex:105 msgid "Also used by 120 Debian derivative distributions" msgstr "Wird auch von 120 von Debian abgeleiteten Distributionen verwandt" #. type: frame{#2} #: packaging-tutorial.tex:108 packaging-tutorial.tex:133 msgid "The Deb package format" msgstr "Das Deb-Paketformat" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{.deb} file: an \\texttt{ar} archive" msgstr "\\texttt{.deb}-Dateien: ein \\texttt{ar}-Archiv" #. 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 "" "[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" " " #. $ #. type: itemize #: packaging-tutorial.tex:133 msgid "" "\\texttt{debian-binary}: version of the deb file format, " "\\texttt{\"2.0\\textbackslash{}n\"}" msgstr "" "\\texttt{debian-binary}: Version des deb-Dateiformates, " "\\texttt{\"2.0\\textbackslash{}n\"}" #. 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 "" "\\texttt{control.tar.gz}: Metadaten über das Paket \\\\ {\\small " "\\texttt{\\textbf{control}, md5sums, (pre|post)(rm|inst), triggers, shlibs}, " "\\ldots}" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{data.tar.gz}: data files of the package" msgstr "\\texttt{data.tar.gz}: Datendateien des Pakets" #. 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 "" "Sie könnten Ihre \\texttt{.deb}-Dateien manuell erstellen\\\\ " "{\\footnotesize \\url{http://tldp.org/HOWTO/html\\_single/Debian-Binary-" "Package-Building-HOWTO/}}" #. type: itemize #: packaging-tutorial.tex:133 msgid "But most people don't do it that way" msgstr "Die meisten Leute machen das aber nicht so" #. type: textbf{#1} #: packaging-tutorial.tex:133 msgid "This tutorial: create Debian packages, the Debian way" msgstr "Diese Anleitung: Erstellen von Debian-Paketen, auf die Debian-Art" #. type: frame{#2} #: packaging-tutorial.tex:153 msgid "Tools you will need" msgstr "Folgende Werkzeuge benötigen Sie" #. type: itemize #: packaging-tutorial.tex:153 msgid "A Debian (or Ubuntu) system (with root access)" msgstr "Ein Debian- (oder Ubuntu-)System (mit root-Zugang)" #. type: itemize #: packaging-tutorial.tex:153 msgid "Some packages:" msgstr "Einige Pakete:" #. 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 "" "\\textbf{build-essential}: hat Abhängigkeiten auf Pakete, von denen " "angenommen wird, dass sie auf der Maschine eines Entwicklers vorhanden sind " "(sie müssen nicht im Steuerfeld \\texttt{Build-Depends:} Ihres Paketes " "aufgeführt werden)" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "includes a dependency on \\textbf{dpkg-dev}, which contains basic Debian-" "specific tools to create packages" msgstr "" "enthält eine Abhängigkeit von \\textbf{dpkg-dev}, das einige grundlegende " "Debian-spezifische Werkzeuge zum Erstellen von Paketen enthält" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "\\textbf{devscripts}: contains many useful scripts for Debian maintainers" msgstr "" "\\textbf{devscripts}: Enthält viele nützliche Skripte für Debian-Betreuer" #. 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 "" "Viele weitere Werkzeuge werden später erwähnt, wie \\textbf{debhelper}, " "\\textbf{cdbs}, \\textbf{quilt}, \\textbf{pbuilder}, \\textbf{sbuild}, " "\\textbf{lintian}, \\textbf{svn-buildpackage}, \\textbf{git-buildpackage}, " "\\ldots\\\\ Installieren Sie diese, wenn Sie sie benötigen." #. type: frame{#2} #: packaging-tutorial.tex:168 msgid "General packaging workflow" msgstr "Allgemeiner Paketierungsablauf" #. \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 "" "\\node[node1] (www) at (0, 0) {Web}; \\node[node1] (us) at (2.5, 0) " "{Originalquellen}; \\node[node1] (da) at (-2.5, 0) {Debian-Spiegel}; " "\\node[node1] (sp) at (0, -2) {Quellpaket}; \\draw[arr,<-,dashed,thick] (sp) " "-- (2.5,-2) node[right=0cm,text width=2.98cm,text centered,font=\\small\\sl] " "{hier passiert die meiste manuelle Arbeit}; \\node[node1] (bin) at (0, -4) " "{eins oder mehrere Binärpakete}; \\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} (bauen und testen mit \\textttc{lintian}) oder " "\\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] {Hochladen (\\textttc{dput})}; \\draw[arr,->," "rounded corners] (bin) -- (-1,-6) -- (-4.5,-6) -- (-4.5,0) -- (da); " "\\useasboundingbox (-4,-6) rectangle (6,0);" #. type: subsection{#2} #: packaging-tutorial.tex:205 msgid "Rebuilding dash" msgstr "Dash neu bauen" #. type: frame{#2} #: packaging-tutorial.tex:205 msgid "Example: rebuilding dash" msgstr "Beispiel: Dash neu bauen" #. 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 "" "Installieren Sie die zum Bau von Dash benötigten Pakete und Devscripts \\\\ " "{\\texttt{sudo apt-get build-dep dash}\\\\ (benötigt \\texttt{deb-src}-" "Zeilen in \\texttt{/etc/apt/sources.list})}\\\\ {\\texttt{sudo apt-get " "install -{}-no-install-recommends devscripts fakeroot}}" #. 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 "" "Erstellen Sie ein Arbeitsverzeichnis und holen sie es:\\\\ \\texttt{mkdir /" "tmp/debian-tutorial ; cd /tmp/debian-tutorial}" #. 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 "" "Holen Sie das \\texttt{dash}-Quellpaket\\\\ \\texttt{apt-get source dash}\\" "\\ {\\small (Dies setzt voraus, dass Sie \\texttt{deb-src}-Zeilen in Ihrer " "\\texttt{/etc/apt/sources.list} haben)}" #. 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 "" "Bauen Sie das Paket\\\\ {\\texttt{cd dash-*\\\\ debuild -us -uc}} " "~~~(\\texttt{-us -uc} deaktiviert die Paketsignatur mit GPG)" #. type: enumerate #: packaging-tutorial.tex:218 msgid "Check that it worked" msgstr "Überprüfen Sie, dass es funktioniert hat" #. type: itemize #: packaging-tutorial.tex:218 msgid "There are some new \\texttt{.deb} files in the parent directory" msgstr "Im übergeordneten Verzeichnis sind einige neue \\texttt{.deb}-Dateien" #. type: enumerate #: packaging-tutorial.tex:218 msgid "Look at the \\texttt{debian/} directory" msgstr "Schauen Sie auf das \\texttt{debian/}-Verzeichnis" #. type: itemize #: packaging-tutorial.tex:218 msgid "That's where the packaging work is done" msgstr "Hier passiert die Paketierungsarbeit" #. type: section{#2} #: packaging-tutorial.tex:256 msgid "Creating source packages" msgstr "Ein Quellpaket erstellen" #. type: subsection{#2} #: packaging-tutorial.tex:256 msgid "Source packages basics" msgstr "Grundlagen für Quellpakete" #. type: frame{#2} #: packaging-tutorial.tex:256 msgid "Source package" msgstr "Quellpaket" #. 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 "" "Ein Quellpaket kann mehrere Binärpakete erstellen\\\\ {\\small z.B. " "erstellen die Quellen \\texttt{\\bfseries libtar} die Binärpakete " "\\texttt{\\bfseries libtar0} und \\texttt{\\bfseries libtar-dev}.}" #. type: itemize #: packaging-tutorial.tex:256 msgid "Two kinds of packages: (if unsure, use non-native)" msgstr "" "Zwei Arten von Paketen: (falls unsicher, verwenden Sie \\textsl{nicht} " "native)" #. type: itemize #: packaging-tutorial.tex:256 msgid "" "Native packages: normally for Debian specific software (\\textsl{dpkg}, " "\\textsl{apt})" msgstr "" "Native Pakete: Normalerweise für Debian-spezifische Software " "(\\textsl{dpkg}, \\textsl{apt})" #. type: itemize #: packaging-tutorial.tex:256 msgid "Non-native packages: software developed outside Debian" msgstr "" "Nicht native Pakete: Software, die außerhalb von Debian entwickelt wird" #. type: itemize #: packaging-tutorial.tex:256 msgid "Main file: \\texttt{.dsc} (meta-data)" msgstr "Hauptdatei: \\texttt{.dsc} (Metadaten)" #. type: itemize #: packaging-tutorial.tex:256 msgid "Other files depending on the version of the source format" msgstr "Andere Dateien, abhängig von der Version des Quellformats" #. type: itemize #: packaging-tutorial.tex:256 msgid "1.0 or 3.0 (native): \\texttt{package\\_version.tar.gz}" msgstr "1.0 oder 3.0 (nativ): \\texttt{Paket\\_version.tar.gz}" #. type: itemize #: packaging-tutorial.tex:256 msgid "1.0 (non-native):" msgstr "1.0 (nicht nativ):" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_ver.orig.tar.gz}: upstream source" msgstr "\\texttt{pkg\\_ver.orig.tar.gz}: Originalquellen" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.diff.gz}: patch to add Debian-specific changes" msgstr "" "\\texttt{Pkt\\_Debver.diff.gz}: Patch, um Debian-spezifische Änderungen " "hinzuzufügen" #. type: itemize #: packaging-tutorial.tex:256 msgid "3.0 (quilt):" msgstr "3.0 (quilt):" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.debian.tar.gz}: tarball with the Debian changes" msgstr "" "\\texttt{pkg\\_debver.debian.tar.gz}: Tarball mit den Debian-Änderungen" #. type: frame #: packaging-tutorial.tex:256 msgid "(See \\texttt{dpkg-source(1)} for exact details)" msgstr "(siehe \\texttt{dpkg-source(1)} für exakte Details)" #. type: frame{#2} #: packaging-tutorial.tex:280 msgid "Source package example (wget\\_1.12-2.1.dsc)" msgstr "Quellpaketbeispiel (wget\\_1.12-2.1.dsc)" #. 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" "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 "" "[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" "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" #. type: subsection{#2} #: packaging-tutorial.tex:308 msgid "Retrieving source packages" msgstr "Quellpakete holen" #. type: frame{#2} #: packaging-tutorial.tex:308 msgid "Retrieving an existing source package" msgstr "Ein existierendes Quellpaket holen" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the Debian archive:" msgstr "Aus dem Debian-Archiv:" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package}}" msgstr "\\texttt{apt-get source \\textsl{Paket}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package=version}}" msgstr "\\texttt{apt-get source \\textsl{Paket=Version}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package/release}}" msgstr "\\texttt{apt-get source \\textsl{Paket/Veröffentlichung}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "(You need \\texttt{deb-src} lines in \\texttt{sources.list})" msgstr "(Sie benötigen \\texttt{deb-src}-Zeilen in der \\texttt{sources.list})" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the Internet:" msgstr "Aus dem Internet:" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{dget \\textsl{url-to.dsc}}" msgstr "\\texttt{dget \\textsl{url-zu.dsc}" #. 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 "" "\\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} stellt alle " "Pakete aus Debian seit 2005 bereit)}" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the (declared) version control system:" msgstr "Aus dem (angegebenen) Versionskontrollsystem:" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{debcheckout \\textsl{package}}" msgstr "\\texttt{debcheckout \\textsl{Paket}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "" "Once downloaded, extract with \\texttt{dpkg-source -x \\textsl{file.dsc}}" msgstr "" "Sobald es heruntergeladen ist, mittels \\texttt{dpkg-source -x " "\\textsl{Datei.dsc}} extrahieren" #. type: frame{#2} #: packaging-tutorial.tex:331 msgid "Creating a basic source package" msgstr "Ein einfaches Quellpaket erstellen" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "Download the upstream source\\\\ (\\textsl{upstream source} = the one from " "the software's original developers)" msgstr "" "Laden Sie die Originalquellen herunter\\\\ (\\textsl{Originalquellen} = die " "Quellen von den ursprünglichen Entwicklern der Software)" #. 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 "" "Bennen Sie sie in \\texttt{<\\textsl{Quellpaket}>\\_<" "\\textsl{Originalversion}>.orig.tar.gz} um\\\\ (Beispiel: \\texttt{simgrid" "\\_3.6.orig.tar.gz})" #. type: itemize #: packaging-tutorial.tex:331 msgid "Untar it" msgstr "Entpacken Sie sie" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "Rename the directory to \\texttt{<\\textsl{source\\_package}>-<" "\\textsl{upstream\\_version}>}\\\\ (example: \\texttt{simgrid-3.6})" msgstr "" "Bennen Sie das Verzeichnis in \\texttt{<\\textsl{Quellpaket}>-<" "\\textsl{Originalversion}>} um\\\\ (Beispiel: \\texttt{simgrid-3.6})" #. 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 "" "\\texttt{cd \\texttt{<\\textsl{Quellpaket}>-<\\textsl{Originalversion}>} \\&" "\\& dh\\_make}\\\\ (aus dem Paket \\textbf{dh-make})" #. 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 "" "Es gibt einige Alternativen zu \\texttt{dh\\_make} für bestimmte Mengen von " "Paketen: \\textbf{dh-make-perl}, \\textbf{dh-make-php}, \\ldots" #. type: itemize #: packaging-tutorial.tex:331 msgid "\\texttt{debian/} directory created, with a lot of files in it" msgstr "\\texttt{debian/}-Verzeichnis wird erstellt, mit vielen Dateien darin" #. type: frame{#2} #: packaging-tutorial.tex:360 msgid "Files in debian/" msgstr "Dateien in debian/" #. type: frame #: packaging-tutorial.tex:360 msgid "" "All the packaging work should be made by modifying files in \\texttt{debian/}" msgstr "" "Die gesamte Paketierungsarbeit sollte darin bestehen, Dateien unter " "\\texttt{debian/} zu verändern" #. type: itemize #: packaging-tutorial.tex:360 msgid "Main files:" msgstr "Hauptdateien:" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{control} -- meta-data about the package (dependencies, etc.)" msgstr "\\textbf{control} -- Metadaten über das Paket (Abhängigkeiten, usw.)" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{rules} -- specifies how to build the package" msgstr "\\textbf{rules} -- gibt an, wie das Paket gebaut wird" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{copyright} -- copyright information for the package" msgstr "\\textbf{copyright} -- Copyright-Informationen für das Paket" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{changelog} -- history of the Debian package" msgstr "\\textbf{changelog} -- Änderungsverlauf des Debian-Pakets" #. type: itemize #: packaging-tutorial.tex:360 msgid "Other files:" msgstr "Andere Dateien" #. type: itemize #: packaging-tutorial.tex:360 msgid "compat" msgstr "compat" #. type: itemize #: packaging-tutorial.tex:360 msgid "watch" msgstr "watch" #. type: itemize #: packaging-tutorial.tex:360 msgid "dh\\_install* targets\\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}" msgstr "dh\\_install*-Ziele\\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}" #. type: itemize #: packaging-tutorial.tex:360 msgid "maintainer scripts\\\\ {\\small *.postinst, *.prerm, \\ldots}" msgstr "Betreuer-Skripte\\\\ {\\small *.postinst, *.prerm, \\ldots}" #. type: itemize #: packaging-tutorial.tex:360 msgid "source/format" msgstr "source/format" #. type: itemize #: packaging-tutorial.tex:360 msgid "patches/ -- if you need to modify the upstream sources" msgstr "patches/ -- falls Sie die Originalquellen verändern müssen" #. type: itemize #: packaging-tutorial.tex:360 msgid "Several files use a format based on RFC 822 (mail headers)" msgstr "" "Verschiedene Dateien verwenden ein auf RFC 822 (E-Mail-Kopfzeilen) " "basierendes Format" #. type: frame{#2} #: packaging-tutorial.tex:372 msgid "debian/changelog" msgstr "debian/changelog" #. type: itemize #: packaging-tutorial.tex:372 msgid "Lists the Debian packaging changes" msgstr "Führt die Debian-Paketierungsänderungen auf" #. type: itemize #: packaging-tutorial.tex:372 msgid "Gives the current version of the package" msgstr "Stellt die aktuelle Version des Pakets bereit" #. 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 "" "\\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 Original\\-version};" #. % #. type: itemize #: packaging-tutorial.tex:386 msgid "Edited manually or with \\textttc{dch}" msgstr "Manuell oder mit \\textttc{dch} bearbeiten" #. type: itemize #: packaging-tutorial.tex:386 msgid "Create a changelog entry for a new release: \\textttc{dch -i}" msgstr "" "Changelog-Eintrag für die neue Veröffentlichung erzeugen: \\textttc{dch -i}" #. 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 "" "Spezielles Format, um automatisch Debian- oder Ubuntu-Fehler zu schließen:\\" "\\ Debian: \\texttt{Closes:~\\#595268}; Ubuntu: \\texttt{LP:~\\#616929}" #. type: itemize #: packaging-tutorial.tex:386 msgid "" "Installed as \\texttt{/usr/share/doc/\\textit{package}/changelog.Debian.gz}" msgstr "" "Installiert als \\texttt{/usr/share/doc/\\textit{Paket}/changelog.Debian.gz}" #. 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 "" "[basicstyle=\\ttfamily\\footnotesize]\n" "mpich2 (1.2.1.1-5) unstable; urgency=low\n" "\n" #. 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 "" " * 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" #. type: lstlisting #: packaging-tutorial.tex:394 #, no-wrap msgid " -- Lucas Nussbaum Wed, 15 Sep 2010 18:13:44 +0200" msgstr " -- Lucas Nussbaum Wed, 15 Sep 2010 18:13:44 +0200" #. type: frame{#2} #: packaging-tutorial.tex:421 msgid "debian/control" msgstr "debian/control" #. type: itemize #: packaging-tutorial.tex:421 msgid "Package metadata" msgstr "Paketmetadaten" #. type: itemize #: packaging-tutorial.tex:421 msgid "For the source package itself" msgstr "für das Quellpaket selbst" #. type: itemize #: packaging-tutorial.tex:421 msgid "For each binary package built from this source" msgstr "für jedes von diesen Quellen gebaute Binärpaket" #. type: itemize #: packaging-tutorial.tex:421 msgid "" "Package name, section, priority, maintainer, uploaders, build-dependencies, " "dependencies, description, homepage, \\ldots" msgstr "" "Paketname, Abschnitt, Priorität, Betreuer, Uploaders, Bauabhängigkeiten, " "Abhängigkeiten, Beschreibung, Homepage, \\ldots" #. type: itemize #: packaging-tutorial.tex:421 msgid "" "Documentation: Debian Policy chapter 5\\\\ \\url{http://www.debian.org/doc/" "debian-policy/ch-controlfields}" msgstr "" "Dokumentation: Debian-Richtlinien Kapitel 5\\\\ \\url{http://www.debian.org/" "doc/debian-policy/ch-controlfields}" #. 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" "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 "" "[basicstyle=\\ttfamily\\footnotesize]\n" "Source: wget\n" "Section: web\n" "Priority: important\n" "Maintainer: Noel Kothe \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" #. 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 "" "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" #. type: frame{#2} #: packaging-tutorial.tex:456 msgid "Architecture: all or any" msgstr "Architecture: all oder any" #. type: frame #: packaging-tutorial.tex:456 msgid "Two kinds of binary packages:" msgstr "Es gibt zwei Arten von Binärpaketen:" #. type: itemize #: packaging-tutorial.tex:456 msgid "Packages with different contents on each Debian architecture" msgstr "Pakete, mit Inhalten, die für jede Architektur anders sind" #. type: itemize #: packaging-tutorial.tex:456 msgid "Example: C program" msgstr "Beispiel: C-Programm" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ any} in \\texttt{debian/control}" msgstr "\\texttt{Architecture:\\ any} in \\texttt{debian/control}" #. 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 "" "Oder, falls es nur auf einer Teilmenge der Architekturen funktioniert\\\\ " "\\texttt{Architecture:\\ amd64 i386 ia64 hurd-i386}" #. type: itemize #: packaging-tutorial.tex:456 msgid "buildd.debian.org: builds all the other architectures for you on upload" msgstr "" "buildd.debian.org: Baut alle anderen Architekturen für Sie nach einem Upload" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_" "\\textsl{architecture}.deb}" msgstr "" "Benannt \\texttt{\\textsl{Paket}\\_\\textsl{Version}\\_\\textsl{Architektur}." "deb}" #. type: itemize #: packaging-tutorial.tex:456 msgid "Packages with the same content on all architectures" msgstr "Pakete mit den gleichen Inhalten auf allen Architekturen" #. type: itemize #: packaging-tutorial.tex:456 msgid "Example: Perl library" msgstr "Beispiel: Perl-Bibliothek" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ all} in \\texttt{debian/control}" msgstr "\\texttt{Architecture:\\ all} in \\texttt{debian/control}" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_\\textbf{all}.deb}" msgstr "" "Benannt \\texttt{\\textsl{Paket}\\_\\textsl{Version}\\_\\textbf{all}.deb}" #. 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 "" "Ein Quellpaket kann eine Mischung aus \\texttt{Architecture:\\ any}- und " "\\texttt{Architecture:\\ all}-Binärpaketen erstellen" #. type: frame{#2} #: packaging-tutorial.tex:482 msgid "debian/rules" msgstr "debian/rules" #. type: itemize #: packaging-tutorial.tex:482 msgid "Makefile" msgstr "Makefile" #. type: itemize #: packaging-tutorial.tex:482 msgid "Interface used to build Debian packages" msgstr "Schnittstelle zum Bau von Debian-Paketen" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "Documented in Debian Policy, chapter 4.8\\\\ {\\small \\url{http://www." "debian.org/doc/debian-policy/ch-source\\#s-debianrules}}" msgstr "" "Dokumentiert in den Debian-Richtlinien, Kapitel 4.8\\\\ {\\small " "\\url{http://www.debian.org/doc/debian-policy/ch-source\\#s-debianrules}}" #. type: itemize #: packaging-tutorial.tex:482 msgid "Required targets:" msgstr "Benötigte Ziele:" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "\\texttt{build, build-arch, build-indep}: should perform all the " "configuration and compilation" msgstr "" "\\texttt{build, build-arch, build-indep}: Sollte die gesamte Konfiguration " "und Übersetzung durchführen" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{binary, binary-arch, binary-indep}: build the binary packages" msgstr "\\texttt{binary, binary-arch, binary-indep}: baut das Binärpaket" #. 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 "" "\\texttt{dpkg-buildpackage} wird \\texttt{binary} aufrufen, um alle Pakete " "zu bauen oder \\texttt{binary-arch}, um nur die \\texttt{Architecture:~any}-" "Pakete zu bauen" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{clean}: clean up the source directory" msgstr "\\texttt{clean}: bereinigt das Quellverzeichnis" #. type: subsection{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers" msgstr "Paketierungshelfer" #. type: frame{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers -- debhelper" msgstr "Paketierungshelfer -- Debhelper" #. type: itemize #: packaging-tutorial.tex:516 msgid "You could write shell code in \\texttt{debian/rules} directly" msgstr "Sie könnten in \\texttt{debian/rules} direkt Shell-Code schreiben" #. type: itemize #: packaging-tutorial.tex:516 msgid "See the \\texttt{adduser} package for example" msgstr "Siehe beispielsweise das Paket \\texttt{adduser}" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Better practice (used by most packages): use a \\textsl{Packaging helper}" msgstr "" "Besseres Vorgehen (wird von den meisten Paketen verwandt): verwenden Sie " "einen \\textsl{Paketierungshelfer}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Most popular one: \\textbf{debhelper} (used by 98\\% of packages)" msgstr "Beliebtester: \\textbf{Debhelper} (von 98\\% der Pakete verwandt)" #. type: itemize #: packaging-tutorial.tex:516 msgid "Goals:" msgstr "Ziele:" #. type: itemize #: packaging-tutorial.tex:516 msgid "Factor the common tasks in standard tools used by all packages" msgstr "" "Die häufigen Aufgaben in Standardwerkzeuge, die von allen Paketen verwandt " "werden, zusammenfassen" #. type: itemize #: packaging-tutorial.tex:516 msgid "Fix some packaging bugs once for all packages" msgstr "Einige Paketierungsfehler einmal für alle Pakete beheben" #. 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 "" "{\\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}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Called from \\texttt{debian/rules}" msgstr "Aus \\texttt{debian/rules} heraus aufgerufen" #. type: itemize #: packaging-tutorial.tex:516 msgid "Configurable using command parameters or files in \\texttt{debian/}" msgstr "Mittels Parametern oder Dateien in \\texttt{debian/} konfigurierbar" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "{\\footnotesize \\ttfamily \\textsl{package}.docs, \\textsl{package}." "examples, \\textsl{package}.install, \\textsl{package}.manpages, \\ldots}" msgstr "" "{\\footnotesize \\ttfamily \\textsl{Paket}.docs, \\textsl{Paket}.examples, " "\\textsl{Paket}.install, \\textsl{Paket}.manpages, \\ldots}" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Third-party helpers for sets of packages: \\textbf{python-support}, " "\\textbf{dh\\_ocaml}, \\ldots" msgstr "" "Hilfsprogramme Dritter für Gruppen von Paketen: \\textbf{python-support}, " "\\textbf{dh\\_ocaml}, \\ldots" # FIXME: Correct translation of »Gotcha«? #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Gotcha: \\texttt{debian/compat}: Debhelper compatibility version (use \"7\")" msgstr "" "Fallstrick: \\texttt{debian/compat}: Debhelper-Kompatibilitätsversion " "(verwenden Sie »7«)" #. type: frame{#2} #: packaging-tutorial.tex:520 msgid "debian/rules using debhelper (1/2)" msgstr "debian/rules mittels debhelper (1/2)" #. type: lstlisting #: packaging-tutorial.tex:520 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "#!/usr/bin/make -f\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "#!/usr/bin/make -f\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:523 #, no-wrap msgid "" "# Uncomment this to turn on verbose mode.\n" "#export DH_VERBOSE=1\n" "\n" msgstr "" "# Uncomment this to turn on verbose mode.\n" "#export DH_VERBOSE=1\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:527 #, no-wrap msgid "" "build: \n" " $(MAKE)\n" " #docbook-to-man debian/packagename.sgml > packagename.1\n" "\n" msgstr "" "build: \n" " $(MAKE)\n" " #docbook-to-man debian/Paketename.sgml > Paketname.1\n" "\n" #. 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 "" "clean: \n" " dh_testdir\n" " dh_testroot\n" " rm -f build-stamp configure-stamp\n" " $(MAKE) clean\n" " dh_clean \n" "\n" #. 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 "" "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" #. type: frame{#2} #: packaging-tutorial.tex:547 msgid "debian/rules using debhelper (2/2)" msgstr "debian/rules mittels debhelper (2/2)" #. type: lstlisting #: packaging-tutorial.tex:547 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:550 #, no-wrap msgid "" "# Build architecture-independent files here.\n" "binary-indep: build install\n" "\n" msgstr "" "# Build architecture-independent files here.\n" "binary-indep: build install\n" "\n" #. 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 "" "# 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" #. 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 "" "binary: binary-indep binary-arch\n" ".PHONY: build clean binary-indep binary-arch binary install configure" #. type: frame{#2} #: packaging-tutorial.tex:603 msgid "CDBS" msgstr "CDBS" #. type: itemize #: packaging-tutorial.tex:603 msgid "With debhelper, still a lot of redundancy between packages" msgstr "Mit Debhelper, immer noch eine Menge an Redundanz zwischen Paketen" #. type: itemize #: packaging-tutorial.tex:603 msgid "Second-level helpers that factor common functionality" msgstr "" "Nachrangige Hilfsprogramme, die gemeinsam genutzte Funktionalität aufnehmen" #. type: itemize #: packaging-tutorial.tex:603 msgid "" "E.g. building with \\texttt{./configure \\&\\& make \\&\\& make install} or " "CMake" msgstr "" "Z.B. Bauen mit \\texttt{./configure \\&\\& make \\&\\& make install} oder " "CMake" #. type: itemize #: packaging-tutorial.tex:603 msgid "CDBS:" msgstr "CDBS:" #. type: itemize #: packaging-tutorial.tex:603 msgid "Introduced in 2005, based on advanced \\textsl{GNU make} magic" msgstr "" "2005 eingeführt, basierend auf fortgeschrittener \\textsl{GNU make}-Magie" #. type: itemize #: packaging-tutorial.tex:603 msgid "Documentation: \\texttt{/usr/share/doc/cdbs/}" msgstr "Dokumentation: \\texttt{/usr/share/doc/cdbs/}" #. type: itemize #: packaging-tutorial.tex:603 msgid "Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots" msgstr "" "Unterstützung für Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots" #. type: itemize #: packaging-tutorial.tex:603 msgid "But some people hate it:" msgstr "Aber manche Leute hassen es:" #. type: itemize #: packaging-tutorial.tex:603 msgid "" "Sometimes difficult to customize package builds:\\\\ \"\\textsl{twisty maze " "of makefiles and environment variables}\"" msgstr "" "Manchmal schwer, Paketbau anzupassen:\\\\ \"\\textsl{Verzwicktes Labyrinth " "von Makefiles und Umgebungsvariablen}\"" #. type: itemize #: packaging-tutorial.tex:603 msgid "Slower than plain debhelper (many useless calls to \\texttt{dh\\_*})" msgstr "" "Langsamer als einfacher Debhelper (viele unnütze Aufrufe von \\texttt{dh" "\\_*})" #. 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 "" "[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" #. 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 "" "# add an action after the build\n" "build/mypackage::\n" " /bin/bash debian/scripts/foo.sh\n" " " #. type: frame{#2} #: packaging-tutorial.tex:628 msgid "Dh (aka Debhelper 7, or dh7)" msgstr "Dh (lang Debhelper 7 oder dh7)" #. type: itemize #: packaging-tutorial.tex:628 msgid "Introduced in 2008 as a \\textsl{CDBS killer}" msgstr "Eingeführt in 2008 als ein \\textsl{CDBS-Mörder}" #. type: itemize #: packaging-tutorial.tex:628 msgid "\\textbf{dh} command that calls \\texttt{dh\\_*}" msgstr "\\textbf{dh}-Befehl, der \\texttt{dh\\_*} aufruft" #. type: itemize #: packaging-tutorial.tex:628 msgid "Simple \\textsl{debian/rules}, listing only overrides" msgstr "Einfache \\textsl{debian/rules}, nur mit Aufhebungen" #. type: itemize #: packaging-tutorial.tex:628 msgid "Easier to customize than CDBS" msgstr "Einfacher als CDBS anzupassen" #. 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 "" "Dokumentation: Handbuchseiten (\\texttt{debhelper(7)}, \\texttt{dh(1)}) + " "Folien vom DebConf9-Vortrag\\\\ \\url{http://kitenet.net/~joey/talks/" "debhelper/debhelper-slides.pdf}" #. type: lstlisting #: packaging-tutorial.tex:628 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "#!/usr/bin/make -f\n" "%:\n" " dh $@\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "#!/usr/bin/make -f\n" "%:\n" " dh $@\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:631 #, no-wrap msgid "" "override_dh_auto_configure:\n" " dh_auto_configure -- --with-kitchen-sink\n" "\n" msgstr "" "override_dh_auto_configure:\n" " dh_auto_configure -- --with-kitchen-sink\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:634 #, no-wrap msgid "" "override_dh_auto_build:\n" " make world\n" "\n" msgstr "" "override_dh_auto_build:\n" " make world\n" "\n" #. 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 "Klassischer Debhelper vs. CDBS vs. dh" #. type: itemize #: packaging-tutorial.tex:656 msgid "" "Mind shares:\\\\ Classic debhelper: 27\\% \\hskip 1em CDBS: 18\\% \\hskip " "1em dh: 54\\%" msgstr "" "Marktanteil:\\\\ Klassischer Debhelper: 27\\% \\hskip 1em CDBS: 18\\% " "\\hskip 1em Dh: 54\\%" #. type: itemize #: packaging-tutorial.tex:656 msgid "Which one should I learn?" msgstr "Welchen soll ich lernen?" #. type: itemize #: packaging-tutorial.tex:656 msgid "Probably a bit of all of them" msgstr "Wahrscheinlich ein bissen von allen" #. type: itemize #: packaging-tutorial.tex:656 msgid "You need to know debhelper to use dh and CDBS" msgstr "Sie müssen Debhelper kennen, um Dh und CDBS zu benutzen" #. type: itemize #: packaging-tutorial.tex:656 msgid "You might have to modify CDBS packages" msgstr "Es könnte sein, dass Sie CDBS-Pakete ändern müssen" #. type: itemize #: packaging-tutorial.tex:656 msgid "Which one should I use for a new package?" msgstr "Welches sollte ich für ein neues Paket verwenden?" #. type: itemize #: packaging-tutorial.tex:656 msgid "\\textbf{dh} (only solution with an increasing mind share)" msgstr "\\textbf{dh} (einzige Lösung mit zunehmenden Marktanteil)" #. 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 "" "small,label style={font=\\footnotesize},xlabel={\\small Zeit}," "ylabel={\\small Marktanteil (\\%)}, 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" #. 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 "" "\\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}" #. type: section{#2} #: packaging-tutorial.tex:680 msgid "Building and testing packages" msgstr "Pakete bauen und testen" #. type: frame{#2} #: packaging-tutorial.tex:680 msgid "Building packages" msgstr "Pakete bauen" #. 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 "" "\\textttc{apt-get build-dep MeinPaket}\\\\ Installiert die " "\\textsl{Bauabhängigkeiten} (für ein Paket, das bereits im Debian-Archiv " "ist)\\\\ Oder \\textttc{mk-build-deps -ir} (für ein noch nicht hochgeladenes " "Paket)" #. type: itemize #: packaging-tutorial.tex:737 msgid "\\textttc{debuild}: build, test with \\texttt{lintian}, sign with GPG" msgstr "" "\\textttc{debuild}: bauen, testen mit \\texttt{lintian}, unterschreiben mit " "GPG" #. type: itemize #: packaging-tutorial.tex:737 msgid "Also possible to call \\textttc{dpkg-buildpackage} directly" msgstr "Es ist auch möglich, \\textttc{dpkg-buildpackage} direkt aufzurufen" #. type: itemize #: packaging-tutorial.tex:737 msgid "Usually with \\texttt{dpkg-buildpackage -us -uc}" msgstr "Normalerweise mittels \\texttt{dpkg-buildpackage -us -uc}" #. type: itemize #: packaging-tutorial.tex:737 msgid "It is better to build packages in a clean \\& minimal environment" msgstr "Besser: Pakete in einer sauberen und minimalen Umgebung bauen" #. type: itemize #: packaging-tutorial.tex:737 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 "" "\\textttc{pbuilder} -- Helfer, um Pakete in einer \\textsl{Chroot} zu bauen\\" "\\ Gute Dokumentation: \\url{https://wiki.ubuntu.com/PbuilderHowto}\\\\ " "(Optimierung: \\textttc{cowbuilder} \\textttc{ccache} \\textttc{distcc})" #. type: itemize #: packaging-tutorial.tex:737 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 "" "\\textttc{schroot} und \\textttc{sbuild}: von den Debian-Build-Daemons " "verwandt\\\\ (nicht so einfach wie \\texttt{pbuilder}, erlaubt aber LVM-" "Schnappschüsse\\\\ siehe: \\url{https://help.ubuntu.com/community/" "SbuildLVMHowto} )" #. type: itemize #: packaging-tutorial.tex:737 msgid "Generates \\texttt{.deb} files and a \\texttt{.changes} file" msgstr "Erstellt \\texttt{.deb}-Dateien und eine \\texttt{.changes}-Datei" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "\\texttt{.changes}: describes what was built; used to upload the package" msgstr "" "\\texttt{.changes}: beschreibt, was gebaut wurde; beim Hochladen verwandt" #. type: frame{#2} #: packaging-tutorial.tex:737 msgid "Installing and testing packages" msgstr "Installieren und Testen von Paketen" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Install the package locally: \\textttc{debi} (will use \\texttt{.changes} to " "know what to install)" msgstr "" "Installieren Sie das Paket lokal: \\textttc{debi} (wird \\texttt{.changes} " "verwenden, um zu wissen, was installiert werden soll)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "List the content of the package: \\texttt{{\\color{rouge}debc} ../" "mypackage.changes}" msgstr "" "Zeigen Sie den Inhalt des Pakets: \\texttt{{\\color{rouge}debc} ../" "meinPaket.changes}" #. type: itemize #: packaging-tutorial.tex:737 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 "" "Vergleichen Sie das Paket mit der vorherigen Version:\\\\ " "\\texttt{{\\color{rouge}debdiff} ../meinPaket\\_1\\_*.changes ../meinPaket" "\\_2\\_*.changes}\\\\ oder vergleichen Sie die Quellen:\\\\ " "\\texttt{{\\color{rouge}debdiff} ../meinPaket\\_1\\_*.dsc ../meinPaket" "\\_2\\_*.dsc}\\\\" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Check the package with \\texttt{lintian} (static analyzer):\\\\ " "\\texttt{{\\color{rouge}lintian} ../mypackage.changes}\\\\ " "\\texttt{lintian -i}: gives more information about the errors \\\\ " "\\texttt{lintian -EviIL +pedantic}: shows more problems" msgstr "" "Überprüfen Sie das Paket mit \\texttt{lintian} (statische Analyse):\\\\ " "\\texttt{{\\color{rouge}lintian} ../meinPaket.changes}\\\\ " "\\texttt{lintian -i}: gibt weitere Informationen über die Fehler\\\\ " "\\texttt{lintian -EviIL +pedantic}: zeigt weitere Probleme" #. type: itemize #: packaging-tutorial.tex:737 msgid "Upload the package to Debian (\\textttc{dput}) (needs configuration)" msgstr "" "Laden Sie das Paket nach Debian hoch (\\textttc{dput}) (benötigt " "Konfiguration)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Manage a private Debian archive with \\textttc{reprepro}\\\\ Documentation: " "\\url{http://mirrorer.alioth.debian.org/}" msgstr "" "Betreiben Sie ein privates Debian-Archiv mit \\textttc{reprepro}\\\\ " "Dokumentation: \\url{http://mirrorer.alioth.debian.org/}" #. type: frame{#2} #: packaging-tutorial.tex:737 packaging-tutorial.tex:1454 #: packaging-tutorial.tex:1460 msgid "Practical session 1: modifying the grep package" msgstr "Praktische Sitzung 1: Anpassen des Grep-Pakets" #. type: enumerate #: packaging-tutorial.tex:737 packaging-tutorial.tex:1460 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package (if you use Ubuntu 11.10 or later, or Debian " "testing or unstable, use version 2.9-1 or 2.9-2 instead)" msgstr "" "Holen Sie Version 2.6.3-3 (bzw. Version 2.9-1 oder 2.9-2, falls Sie Ubuntu " "11.10 oder neuer oder Debian Testing oder Unstable verwenden) des Pakets von " "\\url{http://ftp.debian.org/debian/pool/main/g/grep/}" # "Laden Sie Version 2.6.3-3 des Pakets von " # "\\url{http://ftp.debian.org/debian/pool/main/g/grep/} herunter (verwenden Sie " # "stattdessen Version 2.9-1 oder 2.9-2, falls Sie Ubuntu 11.10 oder neuer oder " # "Debian Testing oder Unstable verwenden)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "If the source package is not unpacked automatically, unpack it with " "\\texttt{dpkg-source~-x~grep\\_*.dsc}" msgstr "" "Falls das Quellpaket nicht automatisch entpackt wird, entpacken Sie es mit " "\\texttt{dpkg-source~-x~grep\\_*.dsc}" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "Look at the files in \\texttt{debian/}." msgstr "Schauen Sie sich die Dateien in \\texttt{debian/} an." #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "How many binary packages are generated by this source package?" msgstr "Wie viele Binärpakete werden aus diesem Quellpaket erstellt?" #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "Which packaging helper does this package use?" msgstr "Welche Paketierungshelfer verwendet dieses Paket?" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1537 msgid "Build the package" msgstr "Bauen Sie das Paket" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1558 msgid "" "We are now going to modify the package. Add a changelog entry and increase " "the version number." msgstr "" "Wir werden das Paket jetzt anpassen. Fügen Sie einen Changelog-Eintrag hinzu " "und erhöhen Sie die Versionsnummer." #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1578 msgid "Now disable perl-regexp support (it is a \\texttt{./configure} option)" msgstr "" "Deaktivieren Sie jetzt die Perl-Regexp-Unterstützung (dies ist eine " "\\texttt{./configure}-Option)" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1578 msgid "Rebuild the package" msgstr "Bauen Sie das Paket erneut" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Compare the original and the new package with debdiff" msgstr "Vergleichen Sie das ursprüngliche und das neue Paket mit Debdiff" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Install the newly built package" msgstr "Installieren Sie das neu gebaute Paket" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Cry if you messed up ;)" msgstr "Weinen Sie, falls es schief gegangen ist ;)" #. type: section{#2} #: packaging-tutorial.tex:775 msgid "Advanced packaging topics" msgstr "Fortgeschrittene Paketierungsthemen" #. type: frame{#2} #: packaging-tutorial.tex:775 msgid "debian/copyright" msgstr "debian/copyright" #. type: itemize #: packaging-tutorial.tex:775 msgid "Copyright and license information for the source and the packaging" msgstr "" "Urheberrecht- und Lizenzinformationen für diese Quellen und die Paketierung" #. type: itemize #: packaging-tutorial.tex:775 msgid "Traditionally written as a text file" msgstr "Traditionell als Textdatei geschrieben" #. type: itemize #: packaging-tutorial.tex:775 msgid "" "New machine-readable format: {\\small\\url{http://www.debian.org/doc/" "packaging-manuals/copyright-format/1.0/}}" msgstr "" "Neues, maschinenlesbares Format: {\\small\\url{http://www.debian.org/doc/" "packaging-manuals/copyright-format/1.0/}}" #. type: lstlisting #: packaging-tutorial.tex:775 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Format: http://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 "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Format: http://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" #. type: lstlisting #: packaging-tutorial.tex:785 #, no-wrap msgid "" "Files: *\n" "Copyright: Copyright 1998 John Doe \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 "" "Files: *\n" "Copyright: Copyright 1998 Max Mustermann \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" #. type: lstlisting #: packaging-tutorial.tex:790 #, no-wrap msgid "" "Files: debian/*\n" "Copyright: Copyright 1998 Jane Smith \n" "License:\n" " [LICENSE TEXT]" msgstr "" "Files: debian/*\n" "Copyright: Copyright 1998 Jana Meier \n" "License:\n" " [LIZENZTEXT]" #. type: frame{#2} #: packaging-tutorial.tex:821 msgid "Modifying the upstream source" msgstr "Ändern der Originalquellen" #. type: frame #: packaging-tutorial.tex:821 msgid "Often needed:" msgstr "Oft benötigt:" #. type: itemize #: packaging-tutorial.tex:821 msgid "Fix bugs or add customizations that are specific to Debian" msgstr "Fehler beheben oder Debian-spezifische Anpassungen vornehmen" #. type: itemize #: packaging-tutorial.tex:821 msgid "Backport fixes from a newer upstream release" msgstr "" "Korrekturen aus einer neueren Veröffentlichung der Originalautoren " "rückportieren" #. type: frame #: packaging-tutorial.tex:821 msgid "Several methods to do it:" msgstr "Es gibt mehrere Methoden, dies durchzuführen:" #. type: itemize #: packaging-tutorial.tex:821 msgid "Modifying the files directly" msgstr "Die Dateien direkt anpassen" #. type: itemize #: packaging-tutorial.tex:821 msgid "Simple" msgstr "Einfach" #. type: itemize #: packaging-tutorial.tex:821 msgid "But no way to track and document the changes" msgstr "" "Allerdings gibt es keine Möglichkeit, die Änderungen zu dokumentieren und " "nachzuvollziehen" #. type: itemize #: packaging-tutorial.tex:821 msgid "Using patch systems" msgstr "Verwendung von Patch-Systemen" #. type: itemize #: packaging-tutorial.tex:821 msgid "Eases contributing your changes to upstream" msgstr "Erleichtert die Weitergabe der Änderungen an die Originalautoren" #. type: itemize #: packaging-tutorial.tex:821 msgid "Helps sharing the fixes with derivatives" msgstr "" "Hilfte beim gemeinsamen Nutzen der Korrekturen mit derivativen Distributionen" #. type: itemize #: packaging-tutorial.tex:821 msgid "" "Gives more exposure to the changes\\\\ \\url{http://patch-tracker.debian." "org/}" msgstr "" "Gibt den Änderungen mehr Aufmerksamkeit\\\\ \\url{http://patch-tracker." "debian.org/}" #. type: frame{#2} #: packaging-tutorial.tex:851 msgid "Patch systems" msgstr "Patch-Systeme" #. type: itemize #: packaging-tutorial.tex:851 msgid "Principle: changes are stored as patches in \\texttt{debian/patches/}" msgstr "" "Prinzip: Änderungen werden als Patches in \\texttt{debian/patches/} " "gespeichert" #. type: itemize #: packaging-tutorial.tex:851 msgid "Applied and unapplied during build" msgstr "Sie werden während des Baus angewandt und entfernt" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Past: several implementations -- \\textsl{simple-patchsys} (\\textsl{cdbs}), " "\\textsl{dpatch}, \\textbf{\\textsl{quilt}}" msgstr "" "Früher gab es mehrere Implementierungen -- \\textsl{simple-patchsys} " "(\\textsl{cdbs}), \\textsl{dpatch}, \\textbf{\\textsl{quilt}}" #. type: itemize #: packaging-tutorial.tex:851 msgid "Each supports two \\texttt{debian/rules} targets:" msgstr "Alle unterstützen zwei Ziele in \\texttt{debian/rules}:" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules patch}: apply all patches" msgstr "\\texttt{debian/rules patch}: alle Patches anwenden" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules unpatch}: de-apply all patches" msgstr "\\texttt{debian/rules unpatch}: alle Patches entfernen" #. type: itemize #: packaging-tutorial.tex:851 msgid "More documentation: \\url{http://wiki.debian.org/debian/patches}" msgstr "Weitere Dokumentation: \\url{http://wiki.debian.org/debian/patches}" #. type: textbf{#1} #: packaging-tutorial.tex:851 msgid "New source package format with built-in patch system: 3.0 (quilt)" msgstr "Neues Quellformat mit eingebautem Patch-System: 3.0 (quilt)" #. type: itemize #: packaging-tutorial.tex:851 msgid "Recommended solution" msgstr "Empfohlene Lösung" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "You need to learn \\textsl{quilt}\\\\ \\url{http://pkg-perl.alioth.debian." "org/howto/quilt.html}" msgstr "" "Sie müssen \\textsl{quilt} lernen\\\\ \\url{http://pkg-perl.alioth.debian." "org/howto/quilt.html}" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Patch-system-agnostic tool in \\texttt{devscripts}: \\texttt{edit-patch}" msgstr "" "Patch-System-unabhängiges Werkzeug in \\texttt{devscripts}: \\texttt{edit-" "patch}" #. type: frame{#2} #: packaging-tutorial.tex:868 msgid "Documentation of patches" msgstr "Dokumentation der Patches" #. type: itemize #: packaging-tutorial.tex:868 msgid "Standard headers at the beginning of the patch" msgstr "Standardkopfzeilen am Anfang des Patches" #. type: itemize #: packaging-tutorial.tex:868 msgid "" "Documented in DEP-3 - Patch Tagging Guidelines\\\\ \\url{http://dep.debian." "net/deps/dep3/}" msgstr "" "Dokumentiert in DEP-3 - Patch Tagging Guidelines\\\\ \\url{http://dep.debian." "net/deps/dep3/}" #. type: lstlisting #: packaging-tutorial.tex:868 #, 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 \n" "Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123\n" "Last-Update: 2010-03-29\n" "\n" msgstr "" "[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: Max Mustermann \n" "Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123\n" "Last-Update: 2010-03-29\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:872 #, no-wrap msgid "" "--- a/src/widgets.c\n" "+++ b/src/widgets.c\n" "@@ -101,9 +101,6 @@ struct {" msgstr "" "--- a/src/widgets.c\n" "+++ b/src/widgets.c\n" "@@ -101,9 +101,6 @@ struct {" #. type: frame{#2} #: packaging-tutorial.tex:892 msgid "Doing things during installation and removal" msgstr "Beim Installieren und Entfernen etwas machen" # msgstr "Dinge während der Installation und Entfernung durchführen" #. type: itemize #: packaging-tutorial.tex:892 msgid "Decompressing the package is sometimes not enough" msgstr "Entpacken des Pakets ist manchmal nicht genug" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Create/remove system users, start/stop services, manage " "\\textsl{alternatives}" msgstr "" "Benutzer erstellen/entfernen, Dienste starten/stoppen, " "\\textsl{alternatives} verwalten" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Done in \\textsl{maintainer scripts}\\\\ \\texttt{preinst, postinst, prerm, " "postrm}" msgstr "" "Wird in \\textsl{Betreuerskripten} erledigt\\\\ \\texttt{preinst, postinst, " "prerm, postrm}" #. type: itemize #: packaging-tutorial.tex:892 msgid "Snippets for common actions can be generated by debhelper" msgstr "Schnipsel für häufige Aktionen können durch Debhelper erstellt werden" #. type: itemize #: packaging-tutorial.tex:892 msgid "Documentation:" msgstr "Dokumentation:" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Debian Policy Manual, chapter 6\\\\ {\\footnotesize \\url{http://www.debian." "org/doc/debian-policy/ch-maintainerscripts}}" msgstr "" "Debian-Richtlinien-Handbuch, Kapitel 6\\\\ {\\footnotesize \\url{http://www." "debian.org/doc/debian-policy/ch-maintainerscripts}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Debian Developer's Reference, chapter 6.4\\\\ {\\scriptsize \\url{http://www." "debian.org/doc/developers-reference/best-pkging-practices.html}}" msgstr "" "Debian-Entwicklerreferenz, Kapitel 6.4\\\\ {\\scriptsize \\url{http://www." "debian.org/doc/developers-reference/best-pkging-practices.html}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "{\\footnotesize \\url{http://people.debian.org/~srivasta/MaintainerScripts." "html}}" msgstr "" "{\\footnotesize \\url{http://people.debian.org/~srivasta/MaintainerScripts." "html}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "Prompting the user" msgstr "Benutzer um Eingaben bitten:" #. type: itemize #: packaging-tutorial.tex:908 msgid "Must be done with \\textbf{debconf}" msgstr "Muss mit \\textbf{debconf} erfolgen" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Documentation: \\texttt{debconf-devel(7)} (\\texttt{debconf-doc} package)" msgstr "" "Dokumentation: \\texttt{debconf-devel(7)} (\\texttt{debconf-doc}-Paket)" #. type: frame{#2} #: packaging-tutorial.tex:914 msgid "Monitoring upstream versions" msgstr "Version der Originalautoren überwachen" #. type: itemize #: packaging-tutorial.tex:914 msgid "" "Specify where to look in \\texttt{debian/watch} (see \\texttt{uscan(1)})" msgstr "" "Geben Sie in \\texttt{debian/watch} (siehe \\texttt{uscan(1)}) an, wo " "geschaut werden soll" #. type: lstlisting #: packaging-tutorial.tex:914 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:917 #, no-wrap msgid "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " msgstr "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Debian infrastructure that makes use of \\texttt{debian/watch}:\\\\ " "\\textbf{Debian External Health Status}\\\\ \\url{http://dehs.alioth.debian." "org/}" msgstr "" "Debian-Infrastruktur, die \\texttt{debian/watch} verwendet:\\\\ " "\\textbf{Debian External Health Status}\\\\ \\url{http://dehs.alioth.debian." "org/}" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Maintainer warned by emails sent to the Package Tracking System\\\\ " "\\url{http://packages.qa.debian.org/}" msgstr "" "Betreuer werden durch E-Mails, die an die Paketdatenbank geschickt werden, " "gewarnt\\\\ \\url{http://packages.qa.debian.org/}" #. type: itemize #: packaging-tutorial.tex:931 msgid "\\texttt{uscan}: run a manual check" msgstr "\\texttt{uscan}: eine manuelle Überprüfung durchführen" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "\\texttt{uupdate}: try to update your package to the latest upstream version" msgstr "" "\\texttt{uupdate}: Versucht Ihr Paket auf den neusten Stand der " "Originalautoren zu aktualisieren" #. type: subsection{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System (SVN, Git)" msgstr "Mit einem Versionskontrollsystem (SVN, Git) paketieren" #. type: frame{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System" msgstr "Mit einem Versionskontrollsystem paketieren" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "Several tools to help manage branches and tags for your packaging work:\\\\ " "\\texttt{svn-buildpackage}, \\texttt{git-buildpackage}" msgstr "" "Werkzeuge zur Verwaltung von Zweigen und Markierungen für Ihre Pa\\-ke\\-" "tierungsarbeit: \\texttt{svn-buildpackage}, \\texttt{git-buildpackage}" # "Mehrere Werkzeuge, die helfen, Zweige und Markierungen für Ihre " # "Paketierungsarbeit zu verwalten:\\\\ \\texttt{svn-buildpackage}, " # "\\texttt{git-buildpackage}" #. type: itemize #: packaging-tutorial.tex:969 msgid "Example: \\texttt{git-buildpackage}" msgstr "Beispiel: \\texttt{git-buildpackage} " #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{upstream} branch to track upstream with \\texttt{upstream/" "\\textsl{version}} tags" msgstr "" "\\texttt{upstream}-Zweig: die Arbeit der Originalautoren nachvollziehen mit " "\\texttt{upstream/\\textsl{Version}}-Markierungen" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{master} branch tracks the Debian package" msgstr "\\texttt{master}-Zweig folgt dem Debian-Paket" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{debian/\\textsl{version}} tags for each upload" msgstr "\\texttt{debian/\\textsl{Version}}-Markierungen für jedes Hochladen" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{pristine-tar} branch to be able to rebuild the upstream tarball" msgstr "" "\\texttt{pristine-tar}-Zweig, ermöglicht Neubau des Originalautoren-Tarballs" # "\\texttt{pristine-tar}-Zweig, der den Neubau des Tarballs der Originalautoren " # "ermöglicht" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{Vcs-*} fields in \\texttt{debian/control} to locate the repository" msgstr "" "\\texttt{Vcs-*}-Felder in \\texttt{debian/control}, um das Depot anzugeben" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Git}" msgstr "\\url{http://wiki.debian.org/Alioth/Git}" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Svn}" msgstr "\\url{http://wiki.debian.org/Alioth/Svn}" #. type: lstlisting #: packaging-tutorial.tex:969 #, 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 "" "[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" " " #. type: lstlisting #: packaging-tutorial.tex:969 #, 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 "" "[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" " " #. type: itemize #: packaging-tutorial.tex:969 msgid "" "VCS-agnostic interface: \\texttt{debcheckout}, \\texttt{debcommit}, " "\\texttt{debrelease}\\\\" msgstr "" "VCS-unabhängige Schnittstelle: \\texttt{debcheckout}, \\texttt{debcommit}, " "\\texttt{debrelease}\\\\" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{debcheckout grep} $\\rightarrow$ checks out the source package from " "Git" msgstr "" "\\texttt{debcheckout grep} $\\rightarrow$ checkt das Quellpaket aus Git aus" #. type: frame{#2} #: packaging-tutorial.tex:992 msgid "Backporting packages" msgstr "Pakete rückportierern" #. type: itemize #: packaging-tutorial.tex:992 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 "" "Ziel: Eine neuere Version eines Paketes auf einem älteren System verwenden\\" "\\ z.B. \\textsl{mutt} aus Debian-\\textsl{Unstable} auf Debian-" "\\textsl{Stable} verwenden" #. type: itemize #: packaging-tutorial.tex:992 msgid "General idea:" msgstr "Prinzipielle Idee:" #. type: itemize #: packaging-tutorial.tex:992 msgid "Take the source package from Debian unstable" msgstr "Nehmen Sie das Quellpaket aus Debian Unstable" #. type: itemize #: packaging-tutorial.tex:992 msgid "Modify it so that it builds and works fine on Debian stable" msgstr "" "Passen Sie es an, so dass es auf Debian-Stable baut und gut funktioniert" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes trivial (no changes needed)" msgstr "Manchmal trivial (keine Änderungen notwendig)" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes difficult" msgstr "Manchmal schwierig" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes impossible (many unavailable dependencies)" msgstr "Manchmal unmöglich (viele nicht verfügbare Abhängigkeiten)" #. type: itemize #: packaging-tutorial.tex:992 msgid "" "Some backports are provided and supported by the Debian project\\\\ " "\\url{http://backports.debian.org/}" msgstr "" "Einige Rückportierungen werden von Debian bereitgestellt und unterstützt\\\\ " "\\url{http://backports.debian.org/}" #. type: section{#2} #: packaging-tutorial.tex:1023 msgid "Maintaining packages in Debian" msgstr "Pakete in Debian betreuen" #. type: frame{#2} #: packaging-tutorial.tex:1023 msgid "Several ways to contribute to Debian" msgstr "Es gibt viele Möglichkeiten, zu Debian beizutragen" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Worst} way to contribute:" msgstr "\\textbf{Schlechteste} Art, beizutragen:" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Package your own application" msgstr "Paketieren Sie Ihre eigene Anwendung" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Get it into Debian" msgstr "Schaffen Sie diese nach Debian" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Disappear" msgstr "Verschwinden Sie" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Better} ways to contribute:" msgstr "\\textbf{Bessere} Art, beizutragen:" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Get involved in packaging teams" msgstr "Machen Sie bei einem Paketier-Team mit" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Many teams that focus on set of packages, and need help" msgstr "" "Viele Teams konzentrieren sich auf eine Gruppe von Paketen und benötigen " "Hilfe" #. type: itemize #: packaging-tutorial.tex:1023 msgid "List available at \\url{http://wiki.debian.org/Teams}" msgstr "Liste verfügbar unter \\url{http://wiki.debian.org/Teams}" #. type: itemize #: packaging-tutorial.tex:1023 msgid "An excellent way to learn from more experienced contributors" msgstr "" "Dies ist eine exzellente Art, um von erfahreneren Beitragenden zu lernen" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Adopt existing unmaintained packages (\\textsl{orphaned packages})" msgstr "" "Adoptieren Sie existierende, nicht betreute Pakete (\\textsl{verwaiste " "Pakete})" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Bring new software to Debian" msgstr "Bringen Sie neue Software in Debian" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Only if it's interesting/useful enough, please" msgstr "Bitte nur, falls diese interessant / nützlich genug ist" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Are there alternatives already packaged in Debian?" msgstr "Sind die Alternativen bereits für Debian paketiert?" #. type: frame{#2} #: packaging-tutorial.tex:1061 msgid "Adopting orphaned packages" msgstr "Verwaiste Pakete adoptieren" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Many unmaintained packages in Debian" msgstr "Es gibt viele nicht betreute Pakete in Debian" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Full list + process: \\url{http://www.debian.org/devel/wnpp/}" msgstr "Komplette Liste und Prozess: \\url{http://www.debian.org/devel/wnpp/}" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Installed on your machine: \\texttt{wnpp-alert}" msgstr "Installiert auf Ihrer Maschine: \\texttt{wnpp-alert}" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Different states:" msgstr "Verschiedene Stati:" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{O}rphaned: the package is unmaintained\\\\ Feel free to adopt it" msgstr "" "\\textbf{O}rphaned: das Paket ist verwaist (es wird nicht mehr betreut)\\\\ " "Adoptieren Sie es ruhig" #. type: itemize #: packaging-tutorial.tex:1061 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 "" "\\textbf{RFA}: \\textbf{R}equest \\textbf{F}or \\textbf{A}dopter\\\\ Der " "Betreuer sucht nach einem Adoptierer, arbeitet aber zwischenzeitlich weiter " "dran\\\\ Adoptieren Sie es einfach. Eine E-Mail an den aktuellen Betreuer " "wäre nett" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt\\\\ Someone " "intends to adopt the package\\\\ You could propose your help!" msgstr "" "\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt\\\\ Jemand " "plant, das Pakete zu adoptieren -- Sie könnten Hilfe anbieten!" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp\\\\ The " "maintainer is looking for help" msgstr "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp\\\\ Der " "Paketbetreuer sucht Hilfe" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Some unmaintained packages not detected \\arr not orphaned yet" msgstr "" "Einige nicht betreute Pakete werden nicht erkannt \\arr noch nicht verwaist" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "When in doubt, ask \\texttt{debian-qa@lists.debian.org} \\\\ or " "\\texttt{\\#debian-qa} on \\texttt{irc.debian.org}" msgstr "" "Im Zweifelsfall fragen Sie auf \\texttt{debian-qa@lists.debian.org} \\\\ " "oder \\texttt{\\#debian-qa} auf \\texttt{irc.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1068 msgid "Adopting a package: example" msgstr "Ein Paket adoptieren: Beispiel" #. type: lstlisting #: packaging-tutorial.tex:1068 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "From: You \n" "To: 640454@bugs.debian.org, control@bugs.debian.org\n" "Cc: Francois Marier \n" "Subject: ITA: verbiste -- French conjugator\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "Von: Sie \n" "An: 640454@bugs.debian.org, control@bugs.debian.org\n" "Cc: Francois Marier \n" "Betreff: ITA: verbiste -- French conjugator\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1072 #, no-wrap msgid "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" msgstr "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1074 #, no-wrap msgid "" "Hi,\n" "\n" msgstr "" "Hi,\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1076 #, no-wrap msgid "" "I am using verbiste and I am willing to take care of the package.\n" "\n" msgstr "" "I am using verbiste and I am willing to take care of the package.\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1078 #, no-wrap msgid "" "Cheers,\n" "\n" msgstr "" "Cheers,\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1080 #, no-wrap msgid "You" msgstr "Sie" #. type: itemize #: packaging-tutorial.tex:1087 msgid "" "Polite to contact the previous maintainer (especially if the package was " "RFAed, not orphaned)" msgstr "" "Es ist höflich, den vorhergehenden Betreuer zu kontaktieren (insbesondere " "wenn das Paket RFAt und nicht verwaist war)" #. type: itemize #: packaging-tutorial.tex:1087 msgid "Very good idea to contact the upstream project" msgstr "Es ist eine sehr gute Idee, die Originalautoren zu kontaktieren" #. type: frame{#2} #: packaging-tutorial.tex:1111 msgid "Getting your package in Debian" msgstr "Schaffen Sie Ihr Paket nach Debian" #. type: itemize #: packaging-tutorial.tex:1111 msgid "You do not need any official status to get your package into Debian" msgstr "" "Sie benötigen keinen offiziellen Status, um Ihr Paket in Debian zu bekommen" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "" "Submit an \\textbf{ITP} bug (\\textbf{I}ntend \\textbf{T}o \\textbf{P}" "ackage) using \\texttt{reportbug wnpp}" msgstr "" "Reichen Sie mit \\texttt{reportbug wnpp} einen \\textbf{ITP}-Fehler " "(\\textbf{I}ntend \\textbf{T}o \\textbf{P}ackage) ein" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "Prepare a source package" msgstr "Bereiten Sie ein Quellpaket vor" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "Find a Debian Developer that will sponsor your package" msgstr "Finden Sie einen Debian-Entwickler, der Ihr Paket sponsern wird" #. type: itemize #: packaging-tutorial.tex:1111 msgid "Official status (when you are an experienced package maintainer):" msgstr "Offizieller Status (wenn Sie ein erfahrener Paketbetreuer sind):" # FIXME Kein Eintrag auf www.debian.org (wg. Übersetzung?) #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Maintainer (DM):}\\\\ Permission to upload your own packages" "\\\\ See \\url{http://wiki.debian.org/DebianMaintainer}" msgstr "" "\\textbf{Debian-Betreuer (DM):}\\\\ Recht, Ihre eigenen Pakete hochzuladen\\" "\\ See \\url{http://wiki.debian.org/DebianMaintainer}" #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Developer (DD):}\\\\ Debian project member; can vote and " "upload any package" msgstr "" "\\textbf{Debian-Entwickler (DD):}\\\\ Debian-Projektmitglied; darf abstimmen " "und jedes Paket hochladen" #. type: frame{#2} #: packaging-tutorial.tex:1139 msgid "Things to check before asking for sponsorship" msgstr "Zu Prüfendes, bevor Sie nach Sponsoren fragen:" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Debian puts \\textbf{a lot of focus on quality}" msgstr "Debian legt \\textbf{viel Wert auf Qualität}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Generally, \\textbf{sponsors are hard to find and busy}" msgstr "" "Typischerweise sind \\textbf{Sponsoren schwer zu finden und beschäftigt}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Make sure your package is ready before asking for sponsorship" msgstr "" "Stellen Sie sicher, dass Ihr Paket bereit ist, bevor Sie Sponsoren fragen" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Things to check:" msgstr "Dinge, die geprüft werden sollten:" #. type: itemize #: packaging-tutorial.tex:1139 msgid "" "Avoid missing build-dependencies: make sure that your package build fine in " "a clean \\textsl{sid} \\textsl{chroot}" msgstr "" "Vermeiden Sie fehlende build-dependencies: Stellen Sie sicher, dass Ihr " "Paket problemlos in einer sauberen \\textsl{sid} \\textsl{chroot} baut" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Using \\texttt{pbuilder} is recommended" msgstr "Verwendung von \\texttt{pbuilder} wird empfohlen" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Run \\texttt{lintian -EviIL +pedantic} on your package" msgstr "Führen Sie für Ihr Paket \\texttt{lintian -EviIL +pedantic} aus" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Errors must be fixed, all other problems should be fixed" msgstr "Fehler müssen, alle anderen Probleme sollten behoben werden" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Do extensive testing of your package, of course" msgstr "Testen Sie natürlich Ihr Paket ausführlich" #. type: itemize #: packaging-tutorial.tex:1139 msgid "In doubt, ask for help" msgstr "Im Zweifelsfall fragen Sie nach Hilfe" #. type: frame{#2} #: packaging-tutorial.tex:1174 msgid "Where to find help?" msgstr "Wo können Sie Hilfe finden?" #. type: frame #: packaging-tutorial.tex:1174 msgid "Help you will need:" msgstr "Folgende Hilfe benötigen Sie:" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Advice and answers to your questions, code reviews" msgstr "Ratschläge und Antworten auf Ihre Fragen, Code-Begutachtungen" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Sponsorship for your uploads, once your package is ready" msgstr "Unterstützung für Ihr Paket, sobald Ihr Paket fertig ist" #. type: frame #: packaging-tutorial.tex:1174 msgid "You can get help from:" msgstr "Sie können Hilfe bekommen von:" #. type: textbf{#1} #: packaging-tutorial.tex:1174 msgid "Other members of a packaging team" msgstr "Anderen Mitgliedern eines Paketierungsteams" #. type: itemize #: packaging-tutorial.tex:1174 msgid "List of teams: \\url{http://wiki.debian.org/Teams}" msgstr "Liste von Teams: \\url{http://wiki.debian.org/Teams}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "The \\textbf{Debian Mentors group} (if your package does not fit in a team)" msgstr "" "Der \\textbf{Debian-Mentors-Gruppe} (falls Ihr Paket in kein Team passt)" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://wiki.debian.org/DebianMentorsFaq}" msgstr "\\url{http://wiki.debian.org/DebianMentorsFaq}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "Mailing list: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (also a " "good way to learn by accident)}" msgstr "" "Mailingliste: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (auch eine " "gute Art, nebenbei was zu lernen)}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "IRC: \\texttt{\\#debian-mentors} on \\texttt{irc.debian.org}" msgstr "IRC: \\texttt{\\#debian-mentors} auf \\texttt{irc.debian.org}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://mentors.debian.net/}" msgstr "\\url{http://mentors.debian.net/}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Documentation: \\url{http://mentors.debian.net/intro-maintainers}" msgstr "Dokumentation: \\url{http://mentors.debian.net/intro-maintainers}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\textbf{Localized mailing lists} (get help in your language)" msgstr "\\textbf{Lokalisierte Mailinglisten} (Hilfe in Ihrer Sprache erhalten)" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "\\texttt{debian-devel-\\{french,italian,portuguese,spanish\\}@lists.d.o}" msgstr "" "\\texttt{debian-devel-\\{french,italian,portuguese,spanish\\}@lists.d.o}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Full list: \\url{https://lists.debian.org/devel.html}" msgstr "Komplette Liste: \\url{https://lists.debian.org/devel.html}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Or users lists: \\url{https://lists.debian.org/users.html}" msgstr "Unsere Benutzerlisten: \\url{https://lists.debian.org/users.html}" #. type: frame{#2} #: packaging-tutorial.tex:1192 msgid "More documentation" msgstr "Weitere Dokumentation" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developers' Corner\\\\ \\url{http://www.debian.org/devel/}\\\\ " "{\\small Links to many resources about Debian development}" msgstr "" "Debians Entwickler-Ecke\\\\ \\url{http://www.debian.org/devel/}\\\\ {\\small " "Links auf viele Ressourcen über Debian-Entwicklung}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian New Maintainers' Guide\\\\ \\url{http://www.debian.org/doc/maint-" "guide/}\\\\ {\\small An introduction to Debian packaging, but could use an " "update}" msgstr "" "Leitfaden für neue Debian-Betreuer\\\\ \\url{http://www.debian.org/doc/maint-" "guide/}\\\\ {\\small Eine Einführung zur Debian-Paketierung, sollte mal " "aktualisiert werden}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developer's Reference\\\\ \\url{http://www.debian.org/doc/developers-" "reference/}\\\\ {\\small Mostly about Debian procedures, but also some best " "packaging practices (part 6)}" msgstr "" "Debian-Entwicklerreferenz\\\\ \\url{http://www.debian.org/doc/developers-" "reference/}\\\\ {\\small Hauptsächlich über Debian-Prozeduren, aber auch " "einige goldene Regeln der Paketierung (Teil 6)}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "Debian Policy\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\" msgstr "" "Debian-Richtlinien\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\" #. type: itemize #: packaging-tutorial.tex:1198 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 "" "{\\small \\begin{itemize} \\item \\small Alle Anforderungen, die jedes Paket " "erfüllen muss \\item \\small Spezielle Richtlinen für Perl, Java, Python, " "\\ldots \\end{itemize}}" #. type: itemize #: packaging-tutorial.tex:1203 msgid "" "Ubuntu Packaging Guide\\\\ \\url{http://developer.ubuntu.com/resources/tools/" "packaging/}" msgstr "" "Ubuntu-Paketierungsleitfaden\\\\ \\url{http://developer.ubuntu.com/resources/" "tools/packaging/}" #. type: frame{#2} #: packaging-tutorial.tex:1217 msgid "Debian dashboards for maintainers" msgstr "Debian-Armaturenbrett für Betreuer" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Source package centric}: Package Tracking System (PTS)\\\\ " "\\url{http://packages.qa.debian.org/dpkg}" msgstr "" "\\textbf{Quellpaket zentriert}: Paketdatenbank (PTS)\\\\ \\url{http://" "packages.qa.debian.org/dpkg}" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Maintainer/team centric}: Developer's Packages Overview (DDPO)\\\\ " "\\url{http://qa.debian.org/developer.php?login=pkg-ruby-extras-" "maintainers@lists.alioth.debian.org}" msgstr "" "\\textbf{Betreuer/Team zentriert}: Paketüberblick für Entwickler (DDPO)\\\\ " "\\url{http://qa.debian.org/developer.php?login=pkg-ruby-extras-" "maintainers@lists.alioth.debian.org}" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{TODO-list oriented}: Debian Maintainer Dashboard (DMD)\\\\ " "\\url{http://udd.debian.org/dmd.cgi}" msgstr "" "\\textbf{TODO-Listen-orientiert}: Debian Maintainer Dashboard (DMD)\\\\ " "\\url{http://udd.debian.org/dmd.cgi}" #. type: frame{#2} #: packaging-tutorial.tex:1245 msgid "Using the Debian Bug Tracking System (BTS)" msgstr "Die Fehlerdatenbank (BTS) benutzen" #. type: itemize #: packaging-tutorial.tex:1245 msgid "A quite unique way to manage bugs" msgstr "Eine recht einzigartige Art, Fehler handzuhaben" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Web interface to view bugs" msgstr "Web-Oberfläche zum Betrachten von Fehlern" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Email interface to make changes to bugs" msgstr "E-Mail-Schnittstelle, um Fehler zu verändern" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Adding information to bugs:" msgstr "Informationen zu Fehlern hinzufügen:" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Write to \\texttt{123456@bugs.debian.org} (does not include the submitter, " "you need to add \\texttt{123456-submitter@bugs.debian.org})" msgstr "" "Schreiben Sie an \\texttt{123456@bugs.debian.org} (geht nicht an " "Einreichenden, Sie müssen \\texttt{123456-submitter@bugs.debian.org} " "hinzufügen)" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Changing bug status:" msgstr "Fehlerstatus ändern:" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Send commands to \\texttt{control@bugs.debian.org}" msgstr "Schicken Sie Befehle an \\texttt{control@bugs.debian.org}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Command-line interface: \\texttt{bts} command in \\texttt{devscripts}" msgstr "" "Befehlszeilen-Schnittstelle: \\texttt{bts}-Befehl in \\texttt{devscripts}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Documentation: \\url{http://www.debian.org/Bugs/server-control}" msgstr "Dokumentation: \\url{http://www.debian.org/Bugs/server-control}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Reporting bugs: use \\texttt{reportbug}" msgstr "Fehler berichten: verwenden Sie \\texttt{reportbug}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Normally used with a local mail server: install \\texttt{ssmtp} or " "\\texttt{nullmailer}" msgstr "" "Normalerweise mit lokalem E-Mail-Server verwandt: installieren Sie " "\\texttt{ssmtp} oder \\texttt{nullmailer}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Or use \\texttt{reportbug -\\@-template}, then send (manually) to " "\\texttt{submit@bugs.debian.org}" msgstr "" "Alternativ verwenden Sie \\texttt{reportbug -\\@-template}, schicken Sie " "dann (manuell) an \\texttt{submit@bugs.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1271 msgid "Using the BTS: examples" msgstr "Das BTS verwenden: Beispiele" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Sending an email to the bug and the submitter:\\\\ \\url{http://bugs.debian." "org/cgi-bin/bugreport.cgi?bug=680822\\#10}" msgstr "" "Eine E-Mail an den Fehler und den Einreichenden senden:\\\\ \\url{http://" "bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#10}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Tagging and changing the severity:\\\\ \\url{http://bugs.debian.org/cgi-bin/" "bugreport.cgi?bug=680227\\#10}" msgstr "" "Markieren und Schweregrad ändern:\\\\ \\url{http://bugs.debian.org/cgi-bin/" "bugreport.cgi?bug=680227\\#10}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Reassigning, changing the severity, retitling \\ldots: \\\\ \\url{http://" "bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#93}" msgstr "" "Neuzuweisen, Schweregrad ändern, umbenennen \\ldots: \\\\ \\url{http://bugs." "debian.org/cgi-bin/bugreport.cgi?bug=680822\\#93}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "\\texttt{notfound}, \\texttt{found}, \\texttt{notfixed}, \\texttt{fixed} are " "for \\textbf{version-tracking} \\\\ See \\url{https://wiki.debian.org/" "HowtoUseBTS\\#Version\\_tracking}" msgstr "" "\\texttt{notfound}, \\texttt{found}, \\texttt{notfixed}, \\texttt{fixed} " "sind für \\textbf{Version-Nachverfolgung} \\\\ Siehe \\url{https://wiki." "debian.org/HowtoUseBTS\\#Version\\_tracking}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Using usertags: \\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;" "bug=642267}\\\\ See \\url{https://wiki.debian.org/bugs.debian.org/usertags}" msgstr "" "Usertags verwenden: \\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?" "msg=42;bug=642267}\\\\ Siehe \\url{https://wiki.debian.org/bugs.debian.org/" "usertags}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "BTS Documentation:" msgstr "BTS-Dokumentation:" #. type: itemize #: packaging-tutorial.tex:1271 msgid "\\url{http://www.debian.org/Bugs/}" msgstr "\\url{http://www.debian.org/Bugs/}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "\\url{https://wiki.debian.org/HowtoUseBTS}" msgstr "\\url{https://wiki.debian.org/HowtoUseBTS}" #. type: frame{#2} #: packaging-tutorial.tex:1298 msgid "More interested in Ubuntu?" msgstr "Mehr an Ubuntu interessiert?" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu mainly manages the divergence with Debian" msgstr "Ubuntu verwaltet hauptsächlich die Abweichungen von Debian" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "No real focus on specific packages\\\\ Instead, collaboration with Debian " "teams" msgstr "" "Kein echter Fokus auf spezielle Pakete\\\\ stattdessen Kollaboration mit " "Debian-Teams" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "Usually recommend uploading new packages to Debian first\\\\ \\url{https://" "wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" msgstr "" "Normalerweise wird empfohlen, neue Pakete zuerst nach Debian hochzuladen\\\\ " "\\url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Possibly a better plan:" msgstr "Eventuell ein besserer Plan:" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Get involved in a Debian team and act as a bridge with Ubuntu" msgstr "" "Machen Sie bei einem Debian-Team mit und agieren Sie als Brücke zu Ubuntu" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Help reduce divergence, triage bugs in Launchpad" msgstr "" "Helfen Sie bei der Reduktion der Unterschiede, sichten Sie Fehler in " "Launchpad" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Many Debian tools can help:" msgstr "Viele Debian-Werkzeuge können helfen:" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu column on the Developer's packages overview" msgstr "Ubuntu-Spalte auf dem Entwickler-Paketüberblick" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu box on the Package Tracking System" msgstr "Ubuntu-Kasten in der Paketdatenbank" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Receive launchpad bugmail via the PTS" msgstr "Erhalten Sie Launchpad-Fehler-E-Mails über das PTS" #. type: frame{#2} #: packaging-tutorial.tex:1328 msgid "Conclusions" msgstr "Fazit" #. type: itemize #: packaging-tutorial.tex:1328 msgid "You now have a full overview of Debian packaging" msgstr "Sie haben jetzt einen kompletten Überblick über die Debian-Paketierung" #. type: itemize #: packaging-tutorial.tex:1328 msgid "But you will need to read more documentation" msgstr "Sie werden aber weitere Dokumentation lesen müssen" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Best practices have evolved over the years" msgstr "Goldene Regeln entwickelten sich im Laufe der Jahre" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "If not sure, use the \\textbf{dh} packaging helper, and the \\textbf{3.0 " "(quilt)} format" msgstr "" "Falls Sie sich unsicher sind, verwenden Sie die \\textbf{dh}-" "Paketierungshelfer und das Format \\textbf{3.0 (quilt)}" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Things that were not covered in this tutorial:" msgstr "Dinge, die in dieser Anleitung nicht betrachtet wurden:" #. type: itemize #: packaging-tutorial.tex:1328 msgid "UCF -- manage user changes to configuration files when upgrading" msgstr "" "UCF -- Benutzeränderungen an Konfigurationsdateien beim Upgrade verwalten" #. type: itemize #: packaging-tutorial.tex:1328 msgid "dpkg triggers -- group similar maintainer scripts actions together" msgstr "Dpkg-Triggers - ähnliche Betreuerskriptaktionen zusammengruppieren" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian development organization:" msgstr "Debian-Entwicklungsorganisation:" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "Suites: stable, testing, unstable, experimental, security, *-updates, " "backports, \\ldots" msgstr "" "Suites: Stable, Testing, Unstable, Experimental, Security, *-updates, " "Backports, \\ldots" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian Blends -- subsets of Debian targeting specific groups" msgstr "Debian Blends -- Teilmenge von Debian, gezielt für bestimmte Gruppen" #. type: centerline{#1} #: packaging-tutorial.tex:1328 msgid "\\large Feedback: \\textbf{packaging-tutorial@packages.debian.org}" msgstr "" "\\large Rückmeldungen: \\textbf{packaging-tutorial@packages.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1331 msgid "Legal stuff" msgstr "Rechtliches Zeug" #. type: frame #: packaging-tutorial.tex:1334 msgid "Copyright \\copyright 2011--2013 Lucas Nussbaum -- lucas@debian.org" msgstr "Copyright \\copyright 2011--2013 Lucas Nussbaum -- lucas@debian.org" #. type: frame #: packaging-tutorial.tex:1350 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 "" "{\\small \\textbf{Dieses Dokument ist freie Software}; Sie können es unter " "einer der folgenden Optionen (Ihrer Wahl) vertreiben und/oder verändern: " "\\hbr \\begin{itemize} \\item Den Bedingungen der GNU General Public " "License, wie sie von der Free Software Foundation in Version 3 (oder nach " "Ihrer Wahl) einer neueren Version veröffentlicht wurden\\\\ \\url{http://www." "gnu.org/licenses/gpl.html} \\br \\item Den Bedingungen der Creative Commons " "Attribution-ShareAlike 3.0 Unported License.\\\\ \\url{http://" "creativecommons.org/licenses/by-sa/3.0/} \\end {itemize} }" #. type: frame{#2} #: packaging-tutorial.tex:1379 msgid "Contribute to this tutorial" msgstr "Zur Anleitung beitragen" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Contribute:" msgstr "Beitragen:" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{apt-get source packaging-tutorial}}" msgstr "{\\small \\texttt{apt-get source packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{debcheckout packaging-tutorial}}" msgstr "{\\small \\texttt{debcheckout packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\texttt{git clone\\\\ git://git.debian.org/collab-maint/packaging-" "tutorial.git}}" msgstr "" "{\\small \\texttt{git clone\\\\ git://git.debian.org/collab-maint/packaging-" "tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" msgstr "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small Open bugs: \\url{bugs.debian.org/src:packaging-tutorial}}" msgstr "{\\small Offene Fehler: \\url{bugs.debian.org/src:packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Provide feedback:" msgstr "Rückmeldung geben:" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "\\href{mailto:packaging-tutorial@packages.debian.org}" "{\\textbf{\\texttt{mailto:packaging-tutorial@packages.debian.org}}}" msgstr "" "\\href{mailto:packaging-tutorial@packages.debian.org}" "{\\textbf{\\texttt{mailto:packaging-tutorial@packages.debian.org}}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be added to this tutorial?}" msgstr "{\\small Was sollte zu dieser Anleitung hinzugefügt werden?}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be improved?}" msgstr "{\\small Was sollte verbessert werden?}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{reportbug packaging-tutorial}}" msgstr "{\\small \\texttt{reportbug packaging-tutorial}}" #. type: frame{#2} #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Practical session 2: packaging GNUjump" msgstr "Praktische Sitzung 2: GNUjump paketieren" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "" "Download GNUjump 1.0.8 from \\url{http://ftp.gnu.org/gnu/gnujump/" "gnujump-1.0.8.tar.gz}" msgstr "" "Laden Sie GNUjump 1.0.8 von \\url{http://ftp.gnu.org/gnu/gnujump/" "gnujump-1.0.8.tar.gz} herunter" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Create a Debian package for it" msgstr "Erstellen Sie ein Debian-Paket dafür" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Install build-dependencies so that you can build the package" msgstr "" "Installieren Sie die Bauabhängigkeiten, so dass Sie das Paket bauen können" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Get a basic working package" msgstr "Erstellen Sie ein grundlegendes, funktionierendes Paket" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Finish filling \\texttt{debian/control} and other files" msgstr "Zum Schluss füllen Sie \\texttt{debian/control} und andere Dateien aus" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Enjoy" msgstr "Viel Spaß" #. type: frame{#2} #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Practical session 3: packaging a Java library" msgstr "Praktische Sitzung 3: Eine Java-Bibliothek paketieren" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Take a quick look at some documentation about Java packaging:\\\\" msgstr "Schauen Sie kurz mal auf die Dokumentation zur Java-Paketierung:\\\\" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java}" msgstr "\\url{http://wiki.debian.org/Java}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java/Packaging}" msgstr "\\url{http://wiki.debian.org/Java/Packaging}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" msgstr "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" msgstr "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 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 "" "Veröffentlichungen und Folien von einem Debconf10-Vortrag über 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}}" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Download IRClib from \\url{http://moepii.sourceforge.net/}" msgstr "Laden Sie IRClib von \\url{http://moepii.sourceforge.net/} herunter" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Package it" msgstr "Paketieren Sie es" #. type: frame{#2} #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Practical session 4: packaging a Ruby gem" msgstr "Praktische Sitzung 4: Ein Ruby-Gem paketieren" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Take a quick look at some documentation about Ruby packaging:\\\\" msgstr "Schauen Sie kurz auf einige Dokumentation über Ruby-Paketierung:\\\\" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Ruby}" msgstr "\\url{http://wiki.debian.org/Ruby}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby}" msgstr "\\url{http://wiki.debian.org/Teams/Ruby}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" msgstr "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (in the \\texttt{gem2deb} " "package)" msgstr "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (im Paket \\texttt{gem2deb})" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "Create a basic Debian source package from the \\texttt{net-ssh} gem:\\\\ " "\\texttt{gem2deb net-ssh}" msgstr "" "Erstellen Sie ein grundlegendes Debian-Quellpaket aus dem \\texttt{net-ssh}-" "Gem:\\\\ \\texttt{gem2deb net-ssh}" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Improve it so that it becomes a proper Debian package" msgstr "Verbessern Sie es, so dass es ein richtiges Debian-Paket wird" #. type: section{#2} #: packaging-tutorial.tex:1445 msgid "Answers to practical sessions" msgstr "Antworten zu den praktischen Sitzungen" #. type: center #: packaging-tutorial.tex:1451 msgid "\\LARGE Answers to" msgstr "\\LARGE Antworten zu den" #. type: center #: packaging-tutorial.tex:1451 msgid "[0.5em] practical sessions" msgstr "[0.5em] praktische Sitzungen" #. type: frame{#2} #: packaging-tutorial.tex:1509 msgid "Fetching the source" msgstr "Holen der Quellen" #. type: enumerate #: packaging-tutorial.tex:1509 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package" msgstr "" "Laden Sie Version 2.6.3-3 des Pakets von \\url{http://ftp.debian.org/debian/" "pool/main/g/grep/} herunter." #. type: itemize #: packaging-tutorial.tex:1509 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 "" "Verwenden Sie dget, um die Datei \\texttt{.dsc} herunterzuladen:\\\\ " "{\\small \\texttt{dget http://cdn.debian.net/debian/pool/main/g/grep/grep" "\\_2.6.3-3.dsc}}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "" "According to \\url{http://packages.qa.debian.org/grep}, \\texttt{grep} " "version 2.6.3-3 is currently in \\textsl{stable} (\\textsl{squeeze}). 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.6.3-3}\\\\ or " "\\texttt{apt-get source grep/stable}\\\\ or, if you feel lucky: \\texttt{apt-" "get source grep}" msgstr "" "Laut \\url{http://packages.qa.debian.org/grep} ist derzeit \\texttt{Grep} " "Version 2.6.3-3 in \\textsl{Stable} (\\textsl{Squeeze}). Falls Sie " "\\texttt{deb-src}-Zeilen für \\textsl{squeeze} in Ihrer \\texttt{/etc/apt/" "sources.list} haben, können Sie folgendes verwenden: \\\\ \\texttt{apt-get " "source grep=2.6.3-3}\\\\ oder \\texttt{apt-get source grep/stable}\\\\ oder, " "falls Sie es auf Gut Glück versuchen wollen: \\texttt{apt-get source grep}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "The \\texttt{grep} source package is composed of three files:" msgstr "Das Quellpaket \\texttt{grep} besteht aus drei Dateien:" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.dsc}" msgstr "\\texttt{grep\\_2.6.3-3.dsc}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" msgstr "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3.orig.tar.bz2}" msgstr "\\texttt{grep\\_2.6.3.orig.tar.bz2}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "This is typical of the \"3.0 (quilt)\" format." msgstr "Dies ist für das Format »3.0 (quilt)« typisch." #. type: itemize #: packaging-tutorial.tex:1509 msgid "" "If needed, uncompress the source with\\\\ \\texttt{dpkg-source -x grep" "\\_2.6.3-3.dsc}" msgstr "" "Falls notwendig, dekomprimieren Sie die Quellen mit\\\\ \\texttt{dpkg-source " "-x grep\\_2.6.3-3.dsc}" #. type: frame{#2} #: packaging-tutorial.tex:1528 msgid "Looking around and building the package" msgstr "Rumschauen und Paket bauen" #. type: itemize #: packaging-tutorial.tex:1528 msgid "" "According to \\texttt{debian/control}, this package only generates one " "binary package, named \\texttt{grep}." msgstr "" "Laut \\texttt{debian/control} erstellt dieses Paket nur ein Binärpaket " "namens \\texttt{grep}." #. type: itemize #: packaging-tutorial.tex:1528 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 "" "Laut \\texttt{debian/rules} verwendet dieses Paket typisches " "\\textsl{klassisches} Debhelper, ohne \\textsl{CDBS} oder \\textsl{dh}. Die " "verschiedenen Aufrufe an die \\texttt{dh\\_*}-Befehle können in " "\\texttt{debian/rules} gesehen werden." #. type: itemize #: packaging-tutorial.tex:1537 msgid "Use \\texttt{apt-get build-dep grep} to fetch the build-dependencies" msgstr "" "Verwenden Sie \\texttt{apt-get build-dep grep}, um die Bauabhängigkeiten zu " "holen" #. type: itemize #: packaging-tutorial.tex:1537 msgid "" "Then \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc} (Takes about 1 " "min)" msgstr "" "Dann \\texttt{debuild} oder \\texttt{dpkg-buildpackage -us -uc} (benötigt " "rund eine Minute)" #. type: frame{#2} #: packaging-tutorial.tex:1541 msgid "Editing the changelog" msgstr "Das Änderungsprotokoll (Changelog) bearbeiten" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "\\texttt{debian/changelog} is a text file. You could edit it and add a new " "entry manually." msgstr "" "\\texttt{debian/changelog} ist eine Textdatei. Sie könnten sie manuell " "bearbeiten und einen Eintrag hinzufügen." #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Or you can use \\texttt{dch -i}, which will add an entry and open the editor" msgstr "" "Oder Sie können \\texttt{dch -i} verwenden, das einen Eintrag hinzufügen und " "einen Editor öffnen wird." #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "The name and email can be defined using the \\texttt{DEBFULLNAME} and " "\\texttt{DEBEMAIL} environment variables" msgstr "" "Der Name und die E-Mail kann mittels der Umgebungsvariablen " "\\texttt{DEBFULLNAME} und \\texttt{DEBEMAIL} definiert werden." #. type: itemize #: packaging-tutorial.tex:1558 msgid "After that, rebuild the package: a new version of the package is built" msgstr "" "Danach bauen Sie das Paket neu; eine neue Version des Paketes ist gebaut" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Package versioning is detailed in section 5.6.12 of the Debian policy\\\\ " "\\url{http://www.debian.org/doc/debian-policy/ch-controlfields}" msgstr "" "Paket-Versionierung wird im Detail in Abschnitt 5.6.12 der Debian-" "Richtlinien dargestellt\\\\ \\url{http://www.debian.org/doc/debian-policy/ch-" "controlfields}" #. type: frame{#2} #: packaging-tutorial.tex:1562 msgid "Disabling Perl regexp support and rebuilding" msgstr "Perl-Regex-Unterstützung deaktivieren und neu bauen" #. type: itemize #: packaging-tutorial.tex:1578 msgid "" "Check with \\texttt{./configure -{}-help}: the option to disable Perl regexp " "is \\texttt{-{}-disable-perl-regexp}" msgstr "" "Prüfen Sie mit \\texttt{./configure -{}-help}: Die Option, um reguläre Perl-" "Ausdrücke zu deaktivieren, ist \\texttt{-{}-disable-perl-regexp}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Edit \\texttt{debian/rules} and find the \\texttt{./configure} line" msgstr "" "Bearbeiten Sie \\texttt{debian/rules} und suchen Sie die Zeile mit " "\\texttt{./configure}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Add \\texttt{-{}-disable-perl-regexp}" msgstr "Fügen Sie \\texttt{-{}-disable-perl-regexp} hinzu" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Rebuild with \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc}" msgstr "" "Bauen Sie mit \\texttt{debuild} oder \\texttt{dpkg-buildpackage -us -uc} neu" #. type: frame{#2} #: packaging-tutorial.tex:1582 msgid "Comparing and testing the packages" msgstr "Vergleichen und Testen des Pakets" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the binary packages: \\texttt{debdiff ../*changes}" msgstr "Vergleichen der Binärpakete: \\texttt{debdiff ../*changes}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the source packages: \\texttt{debdiff ../*dsc}" msgstr "Vergleichen der Quellpakete: \\texttt{debdiff ../*dsc}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "Install the newly built package: \\texttt{debi}\\\\ Or \\texttt{dpkg -i ../" "grep\\_}" msgstr "" "Installieren Sie das neu gebaute Paket: \\texttt{debi}\\\\ Oder " "\\texttt{dpkg -i ../grep\\_}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "\\texttt{grep -P foo} no longer works!" msgstr "\\texttt{grep -P foo} funktioniert nicht mehr!" #. type: frame #: packaging-tutorial.tex:1608 msgid "Or not: reinstall the previous version of the package:" msgstr "Oder nicht: Installieren Sie wieder die vorherige Version des Pakets:" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= previous " "version)}" msgstr "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= vorherige " "Version)}" #. type: frame{#2} #: packaging-tutorial.tex:1655 packaging-tutorial.tex:1769 #: packaging-tutorial.tex:1811 msgid "Step by step\\ldots" msgstr "Schritt für Schritt\\ldots" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" msgstr "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" msgstr "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" msgstr "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{cd gnujump-1.0.8/}" msgstr "\\texttt{cd gnujump-1.0.8/}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{dh\\_make}" msgstr "\\texttt{dh\\_make}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "Type of package: single binary (for now)" msgstr "Pakettyp: Einzelnes Programm (derzeit)" #. type: lstlisting #: packaging-tutorial.tex:1655 #, 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 "" "[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" #. type: frame{#2} #: packaging-tutorial.tex:1682 packaging-tutorial.tex:1835 msgid "Step by step\\ldots (2)" msgstr "Schritt für Schritt\\ldots (2)" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Look at \\texttt{debian/changelog}, \\texttt{debian/rules}, \\texttt{debian/" "control}\\\\ (auto-filled by \\textbf{dh\\_make})" msgstr "" "Schauen Sie in \\texttt{debian/changelog}, \\texttt{debian/rules}, " "\\texttt{debian/control}\\\\ (durch \\textbf{dh\\_make} automatisch " "ausgefüllt)" #. type: itemize #: packaging-tutorial.tex:1682 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 "" "In \\texttt{debian/control}:\\\\ \\texttt{Build-Depends: debhelper (>= " "7.0.50~), autotools-dev}\\\\ Führt die \\textsl{build-dependencies} auf = " "Pakete, die zum Bau des Pakets benötigt werden" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Try to build the package as-is (thanks to \\textbf{dh} magic)" msgstr "Versuchen Sie, das Paket so zu bauen (dank der \\textbf{dh}-Magie)" #. type: itemize #: packaging-tutorial.tex:1682 msgid "And add build-dependencies, until it builds" msgstr "Fügen Sie Bauabhängigkeiten hinzu, bis das Paket baut" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Hint: use \\texttt{apt-cache search} and \\texttt{apt-file} to find the " "packages" msgstr "" "Tipp: Verwenden Sie \\texttt{apt-cache search} und \\texttt{apt-file}, um " "die Pakete zu finden" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Example:" msgstr "Beispiel:" #. type: lstlisting #: packaging-tutorial.tex:1682 #, 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 "" "[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!" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "$\\rightarrow$ Add \\textbf{libsdl1.2-dev} to Build-Depends and install it." msgstr "" "$\\rightarrow$ \\textbf{libsdl1.2-dev} zu den Build-Depends hinzufügen und " "installieren." #. type: itemize #: packaging-tutorial.tex:1682 msgid "Better: use \\textbf{pbuilder} to build in a clean environment" msgstr "" "Besser: \\textbf{pbuilder} verwenden, um in einer sauberen Umgebung zu bauen" #. type: frame{#2} #: packaging-tutorial.tex:1710 packaging-tutorial.tex:1849 msgid "Step by step\\ldots (3)" msgstr "Schritt für Schritt\\ldots (3)" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "After installing \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-" "mixer1.2-dev}, the package builds fine." msgstr "" "Nach der Installation von \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, " "libsdl-mixer1.2-dev} baut das Paket problemlos." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debc} to list the content of the generated package." msgstr "" "Verwenden Sie \\texttt{debc}, um den Inhalt des erstellten Pakets aufzulisten" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debi} to install it and test it." msgstr "Verwenden Sie \\texttt{debi}, um es zu installieren und zu testen" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Test the package with \\texttt{lintian}" msgstr "Testen Sie das Pakets mit \\texttt{lintian}" # HKFIXME: Layout #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "While not a strict requirement, it is recommended that packages uploaded to " "Debian are \\textsl{lintian-clean}" msgstr "" "Nicht zwingend gefordert, aber für nach Debian hochgeladene Pakete wird " "\\textsl{lintian-clean} empfohlen" #. type: itemize #: packaging-tutorial.tex:1710 msgid "More problems can be listed using \\texttt{lintian -EviIL +pedantic}" msgstr "" "Weitere Probleme können mit \\texttt{lintian -EviIL +pedantic} aufgelistet " "werden" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Some hints:" msgstr "Einige Tipps:" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Remove the files that you don't need in \\texttt{debian/}" msgstr "Entfernen Sie nicht benötigte Dateien aus \\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Fill in \\texttt{debian/control}" msgstr "Ausfülen von \\texttt{debian/control}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Install the executable to \\texttt{/usr/games} by overriding \\texttt{dh" "\\_auto\\_configure}" msgstr "" "Installation des Programms nach \\texttt{/usr/games}, außer Kraft setzen von " "\\texttt{dh\\_auto\\_configure}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Use \\textsl{hardening} compiler flags to increase security.\\\\ See " "\\url{http://wiki.debian.org/Hardening}" msgstr "" "Verwendung von \\textsl{Härtungs}-Compiler-Schalter für bessere Sicherheit. " "Siehe \\url{http://wiki.debian.org/Hardening}" #. type: frame{#2} #: packaging-tutorial.tex:1723 msgid "Step by step\\ldots (4)" msgstr "Schritt für Schritt\\ldots (4)" #. type: itemize #: packaging-tutorial.tex:1723 msgid "Compare your package with the one already packaged in Debian:" msgstr "Vergleichen Sie Ihr Paket mit dem bereits in Debian paketierten:" #. type: itemize #: packaging-tutorial.tex:1723 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 "" "Es verschiebt die Datendateien in ein zweites Paket, das über alle " "Architekturen hinweg identisch ist ($\\rightarrow$ spart Platz im Debian-" "Archiv" #. type: itemize #: packaging-tutorial.tex:1723 msgid "" "It installs a .desktop file (for the GNOME/KDE menus) and also integrates " "into the Debian menu" msgstr "" "Es installiert eine .desktop-Datei (für die GNOME-/KDE-Menüs) und integriert " "sich auch in das Debian-Menü" #. type: itemize #: packaging-tutorial.tex:1723 msgid "It fixes a few minor problems using patches" msgstr "Es korrigiert ein paar kleinere Probleme mit Patches" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{apt-get install javahelper}" msgstr "\\texttt{apt-get install javahelper}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Create a basic source package: \\texttt{jh\\_makepkg}" msgstr "Ein grundlegendes Quellpaket erstellen: \\texttt{jh\\_makepkg}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Library" msgstr "Bibliothek" #. type: itemize #: packaging-tutorial.tex:1769 msgid "None" msgstr "Keine" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Default Free compiler/runtime" msgstr "Standard Freier Compiler/Laufzeitumgebung" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Look at and fix \\texttt{debian/*}" msgstr "\\texttt{debian/*} anschauen und korrigieren" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{dpkg-buildpackage -us -uc} or \\texttt{debuild}" msgstr "\\texttt{dpkg-buildpackage -us -uc} oder \\texttt{debuild}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{lintian}, \\texttt{debc}, etc." msgstr "\\texttt{lintian}, \\texttt{debc}, usw." #. type: itemize #: packaging-tutorial.tex:1769 msgid "Compare your result with the \\texttt{libirclib-java} source package" msgstr "" "Vergleichen Sie Ihr Ergebnis mit dem Quellpaket \\texttt{libirclib-java}" #. type: frame #: packaging-tutorial.tex:1811 msgid "\\texttt{gem2deb net-ssh}:" msgstr "\\texttt{gem2deb net-ssh}:" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Downloads the gem from rubygems.org" msgstr "Lädt Gem von rubygems.org herunter" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Creates a suitable .orig.tar.gz archive, and untar it" msgstr "Erstellt ein geeignetes .orig.tar.gz-Archiv und entpackt es" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Initializes a Debian source package based on the gem's metadata" msgstr "Initialisiert ein Debian-Quellpaket, basierend auf den Gem-Metadaten." #. type: itemize #: packaging-tutorial.tex:1811 msgid "Named \\texttt{ruby-\\textsl{gemname}}" msgstr "Namens \\texttt{ruby-\\textsl{Gem-Name}}" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Tries to build the Debian binary package (this might fail)" msgstr "Versucht, das Debian-Paket zu bauen (kann fehlschlagen)" #. type: frame #: packaging-tutorial.tex:1811 msgid "" "\\texttt{dh\\_ruby} (included in \\textsl{gem2deb}) does the Ruby-specific " "tasks:" msgstr "" "\\texttt{dh\\_ruby} (Teil von \\textsl{gem2deb}) erledigt die Ruby-" "spezfischen Aufgaben:" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Build C extensions for each Ruby version" msgstr "C-Erweiterungen für jede Ruby-Version bauen" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Copy files to their destination directory" msgstr "Dateien in ihr Zielverzeichnis kopieren" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Update shebangs in executable scripts" msgstr "Shebangs in ausführbaren Skripten aktualisieren" #. type: itemize #: packaging-tutorial.tex:1811 msgid "" "Run tests defined in \\texttt{debian/ruby-tests.rb} or \\texttt{debian/ruby-" "test-files.yaml}, as well as various other checks" msgstr "" "Die in \\texttt{debian/ruby-tests.rb} oder \\texttt{debian/ruby-test-files." "yaml} definierten Tests ausführen sowie weitere Prüfungen" #. type: frame #: packaging-tutorial.tex:1835 msgid "Improve the generated package:" msgstr "Verbessern des erstellten Paketes:" #. Translators: #. This context is very sensitive to line length. If you #. hit errors building the package around this line in your translated version #. see, e.g. in the Spanish or German version for versions with explicit line #. breaks for the translation #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Run \\texttt{debclean} to clean the source tree. Look at \\texttt{debian/}." msgstr "" "\\texttt{debclean} ausführen, um den Quellbaum zu bereinigen. Schauen Sie in " "\\texttt{debian/}." #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{changelog} and \\texttt{compat} should be correct" msgstr "\\texttt{changelog} und \\texttt{compat} sollten korrekt sein" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Edit \\texttt{debian/control}: uncomment \\texttt{Homepage}, improve " "\\texttt{Description}" msgstr "" "Bearbeiten Sie \\texttt{debian/control}: aktivieren Sie \\texttt{Homepage}, " "verbessern Sie \\texttt{Description}" #. type: itemize #: packaging-tutorial.tex:1835 msgid "Write a proper \\texttt{copyright} file based on the upstream files" msgstr "" "Schreiben Sie eine vernünftige \\texttt{copyright}-Datei, basierend auf den " "Dateien der Originalautoren" #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{ruby-net-ssh.docs}: install \\texttt{README.rdoc}" msgstr "\\texttt{ruby-net-ssh.docs}: Installieren Sie \\texttt{README.rdoc}" # FIXME: Note for translators required #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "\\texttt{ruby-tests.rb}: run the tests. In that case, it is enough to do:\\" "\\ \\verb+$: << 'test' << 'lib' << '.'+\\\\ \\verb+require 'test/test_all." "rb'+" msgstr "" "\\texttt{ruby-tests.rb}: Tests ausführen. In diesem Fall reicht Folgendes " "aus:\\\\\n" " \\verb+$: << 'test' << 'lib' << '.'+\\\\\n" " \\verb+require 'test/test_all.rb'+" #. type: frame #: packaging-tutorial.tex:1849 msgid "Build the package. It fails to build. There are two problems:" msgstr "Bauen Sie das Paket. Dies schlägt fehl. Es gibt zwei Probleme:" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "You need to disable the \\texttt{gem} call in the test suite.\\\\ In " "\\texttt{test/common.rb}, remove the \\verb+gem \"test-unit\"+ line:" msgstr "" "Sie müssen den Aufruf \\texttt{gem} in der Test-Suite deaktiveren. Entfernen " "Sie die Zeile \\verb+gem \"test-unit\"+ in \\texttt{test/common.rb}" #. type: itemize #: packaging-tutorial.tex:1849 msgid "\\texttt{edit-patch disable-gem.patch}" msgstr "\\texttt{edit-patch disable-gem.patch}" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "Edit \\texttt{test/common.rb}, remove the \\texttt{gem} line. Exit the sub-" "shell" msgstr "" "Bearbeiten Sie \\texttt{test/common.rb}, entfernen Sie die \\texttt{gem}-" "Zeile. Verlassen Sie die Unter-Shell" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Describe the changes in \\texttt{debian/changelog}" msgstr "Beschreiben Sie die Änderungen in \\texttt{debian/changelog}" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Document the patch in \\texttt{debian/patches/disable-gem.patch}" msgstr "" "Dokumentieren Sie den Patch in \\texttt{debian/patches/disable-gem.patch}" #. type: itemize #: packaging-tutorial.tex:1854 msgid "" "The package lacks a build-dependency on \\texttt{ruby-mocha}, which is used " "by the test suite (you might need to build your package in a clean " "environment, using \\texttt{pbuilder}, to reproduce that problem)" msgstr "" "Dem Paket fehlt eine Bauabhängigkeit auf \\texttt{ruby-mocha}, das in der " "Test-Suite verwandt wird (es könnte sein, dass Sie das Paket in einer " "sauberen Umgebung mittels \\texttt{pbuilder} bauen müssen, um das Problem zu " "reproduzieren)" #. type: itemize #: packaging-tutorial.tex:1857 msgid "Add \\texttt{ruby-mocha} to the package's \\texttt{Build-Depends}" msgstr "" "Fügen Sie \\texttt{ruby-mocha} zu den \\texttt{Build-Depends} des Pakets " "hinzu" #. type: itemize #: packaging-tutorial.tex:1868 msgid "" "\\textsl{gem2deb} copies the dependencies documented in the \\textsl{gem} as " "comments in \\texttt{debian/control}, but \\textsl{mocha} is not listed as a " "development dependency by the gem (that's a bug in the gem)" msgstr "" "\\textsl{gem2deb} kopiert die Abhängigkeiten, die in \\textsl{gem} als " "Kommentare dokumentiert sind, in \\texttt{debian/control}, allerdings wird " "\\textsl{mocha} nicht als Entwicklungsabhängigkeit von dem Gem aufgeführt " "(das ist ein Fehler in dem Gem)" #. type: frame #: packaging-tutorial.tex:1868 msgid "" "Compare your package with the \\texttt{ruby-net-ssh} package in the Debian " "archive" msgstr "" "Vergleichen Sie Ihr Paket mit dem Paket \\texttt{ruby-net-ssh} im Debian-" "Archiv" #~ msgid "They know the specifics of your package" #~ msgstr "Sie kennen die Spezifika ihres Pakets" #~ msgid "You can become a member of the team" #~ msgstr "Sie können ein Mitglied des Teams werden" #~ msgid "Official documentation" #~ msgstr "Offizielle Dokumentation" #~ msgid "Latest version \\& source code" #~ msgstr "Neuste Version \\& Quellcode" #~ msgid "" #~ "Latest version:\\\\ {\\footnotesize \\url{http://git.debian.org/?p=collab-" #~ "maint/packaging-tutorial.git;a=blob\\_plain;f=packaging-tutorial.pdf;" #~ "hb=refs/heads/pdf}}" #~ msgstr "" #~ "Neuste Version:\\\\ {\\footnotesize \\url{http://git.debian.org/?p=collab-" #~ "maint/packaging-tutorial.git;a=blob\\_plain;f=packaging-tutorial.pdf;" #~ "hb=refs/heads/pdf}}" #~ msgid "" #~ "Fill in \\texttt{debian/control} using \\url{http://www.debian.org/doc/" #~ "debian-policy/ch-controlfields}" #~ msgstr "" #~ "Füllen Sie \\texttt{debian/control} mit Hilfe von \\url{http://www.debian." #~ "org/doc/debian-policy/ch-controlfields} aus" #~ msgid "Packaging with a VCS (SVN, Git \\& friends)" #~ msgstr "Mit einem VCS paketieren (SVN, Git \\& Freunde)" packaging-tutorial-0.12/po4a/po/pt.po0000644000000000000000000042003012234414737014361 0ustar # Translation of packaging-tutorial to European Portuguese # Copyright (C) 2013 Free Software Foundation, Inc. # This file is distributed under the same license as the packaging-tutorial package. # # Américo Monteiro , 2013. msgid "" msgstr "" "Project-Id-Version: packaging-tutorial 0.10\n" "POT-Creation-Date: 2013-10-29 20:42+0100\n" "PO-Revision-Date: 2013-09-30 11:16+0100\n" "Last-Translator: Américo Monteiro \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 1.4\n" #. type: Plain text #: packaging-tutorial.tex:4 msgid "\\mode \\usetheme{debian}" msgstr "\\mode \\usetheme{debian}" #. 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 "\\usepackage{debiantutorial.pt}" #. type: title{#2} #: packaging-tutorial.tex:14 msgid "Debian Packaging Tutorial" msgstr "Manual de Empacotamento de Debian" #. type: author{#2} #: packaging-tutorial.tex:14 msgid "" "Lucas Nussbaum\\\\{\\small\\texttt{packaging-tutorial@packages.debian.org}}" msgstr "" "Lucas Nussbaum\\\\{\\small\\texttt{packaging-tutorial@packages.debian.org}}" #. 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 #, fuzzy #| msgid "version 0.10 -- 2013-09-12" msgid "version 0.11 -- 2013-10-29" msgstr "versão 0.10 -- 2013-09-12" #. type: frame{#2} #: packaging-tutorial.tex:52 msgid "About this tutorial" msgstr "Acerca deste manual" #. type: itemize #: packaging-tutorial.tex:52 msgid "" "Goal: \\textbf{tell you what you really need to know about Debian packaging}" msgstr "" "Objectivo: \\textbf{dizer o que você precisa mesmo saber sobre empacotamento " "de Debian}" #. type: itemize #: packaging-tutorial.tex:52 msgid "Modify existing packages" msgstr "Modificar pacotes existentes" #. type: itemize #: packaging-tutorial.tex:52 msgid "Create your own packages" msgstr "Criar os seus próprios pacotes" #. type: itemize #: packaging-tutorial.tex:52 msgid "Interact with the Debian community" msgstr "Interagir com a comunidade Debian" #. type: itemize #: packaging-tutorial.tex:52 msgid "Become a Debian power-user" msgstr "Tornar-se um utilizador avançado de Debian" #. type: itemize #: packaging-tutorial.tex:52 msgid "Covers the most important points, but is not complete" msgstr "Cobre os pontos mais importantes, mas não é completo" #. type: itemize #: packaging-tutorial.tex:52 msgid "You will need to read more documentation" msgstr "Você irá precisar de ler mais documentação" #. type: itemize #: packaging-tutorial.tex:52 msgid "Most of the content also applies to Debian derivative distributions" msgstr "" "A maioria do conteúdo também se aplica a distribuições derivadas da Debian" #. type: itemize #: packaging-tutorial.tex:52 msgid "That includes Ubuntu" msgstr "Isso inclui Ubuntu" #. type: frame{#2} #: packaging-tutorial.tex:56 debiantutorial.sty:42 msgid "Outline" msgstr "Esboço" #. type: section{#2} #: packaging-tutorial.tex:58 msgid "Introduction" msgstr "Introdução" #. type: frame{#2} #: packaging-tutorial.tex:60 packaging-tutorial.tex:84 msgid "Debian" msgstr "Debian" #. type: textbf{#1} #: packaging-tutorial.tex:84 msgid "GNU/Linux distribution" msgstr "Distribuição de GNU/Linux" #. type: itemize #: packaging-tutorial.tex:84 msgid "1st major distro developed ``openly in the spirit of GNU''" msgstr "1ª grande distribuição desenvolvida ''abertamente ao espírito de GNU''" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Non-commercial}, built collaboratively by over 1,000 volunteers" msgstr "" "\\textbf{Não-comercial}, construída em colaboração por mais de 1000 " "voluntários" #. type: itemize #: packaging-tutorial.tex:84 msgid "3 main features:" msgstr "3 funcionalidades principais:" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Quality} -- culture of technical excellence\\\\ {\\small\\sl We " "release when it's ready}" msgstr "" "\\textbf{Qualidade} -- cultura de excelência técnica\\\\ {\\small\\sl Nós " "lançamos quando está tudo pronto}" #. 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 "" "\\textbf{Liberdade} -- desenvolvedores e utilizadores unidos pelo " "\\textsl{Contracto Social}\\\\ Promovendo a cultura do Software Livre desde " "1993" #. 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 "" "\\textbf{Independência} -- nenhuma (nem uma) companhia toma conta da Debian\\" "\\ E processo de decisão-trabalho aberto (\\textsl{do-ocracy} + " "\\textsl{democracy})" #. type: itemize #: packaging-tutorial.tex:84 msgid "\\textbf{Amateur} in the best sense: done for the love of it" msgstr "\\textbf{Amador} no melhor sentido: feito com amor" #. type: frame{#2} #: packaging-tutorial.tex:105 msgid "Debian packages" msgstr "Pacotes Debian" #. type: itemize #: packaging-tutorial.tex:105 msgid "\\textbf{.deb} files (binary packages)" msgstr "ficheiros \\textbf{.deb} (pacotes binários)" #. type: itemize #: packaging-tutorial.tex:105 msgid "A very powerful and convenient way to distribute software to users" msgstr "" "Uma maneira muito poderosa e conveniente de distribuir software aos " "utilizadores" #. type: itemize #: packaging-tutorial.tex:105 msgid "One of the two most common package formats (with RPM)" msgstr "Um dos dois formatos de pacotes mais comuns (com o RPM)" #. type: itemize #: packaging-tutorial.tex:105 msgid "Universal:" msgstr "Universal:" #. 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 "" "30000 pacotes binários em Debian\\\\ $\\rightarrow$ a maioria do software " "livre disponível está empacotado em Debian!" #. type: itemize #: packaging-tutorial.tex:105 msgid "For 12 ports (architectures), including 2 non-Linux (Hurd; KFreeBSD)" msgstr "Para 12 portes (arquitecturas), incluindo 2 não-Linux (Hurd; KFreeBSD)" #. type: itemize #: packaging-tutorial.tex:105 msgid "Also used by 120 Debian derivative distributions" msgstr "Também usado por 120 distribuições derivadas de Debian" #. type: frame{#2} #: packaging-tutorial.tex:108 packaging-tutorial.tex:133 msgid "The Deb package format" msgstr "O formato de pacotes Deb" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{.deb} file: an \\texttt{ar} archive" msgstr "Ficheiro \\texttt{.deb}: um arquivo \\texttt{ar}" #. 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 "" "[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" " " #. $ #. type: itemize #: packaging-tutorial.tex:133 msgid "" "\\texttt{debian-binary}: version of the deb file format, " "\\texttt{\"2.0\\textbackslash{}n\"}" msgstr "" "\\texttt{debian-binary}: versão do formato de ficheiro deb, " "\\texttt{\"2.0\\textbackslash{}n\"}" #. 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 "" "\\texttt{control.tar.gz}: meta-dados acerca do pacote\\\\ {\\small " "\\texttt{\\textbf{control}, md5sums, (pre|post)(rm|inst), triggers, shlibs}, " "\\ldots}" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{data.tar.gz}: data files of the package" msgstr "\\texttt{data.tar.gz}: ficheiros de dados do pacote" #. 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 "" "Você poderia criar os seus ficheiros \\texttt{.deb} manualmente\\\\ " "{\\footnotesize \\url{http://tldp.org/HOWTO/html\\_single/Debian-Binary-" "Package-Building-HOWTO/}}" #. type: itemize #: packaging-tutorial.tex:133 msgid "But most people don't do it that way" msgstr "Mas a maioria das pessoas não o faz dessa maneira" #. type: textbf{#1} #: packaging-tutorial.tex:133 msgid "This tutorial: create Debian packages, the Debian way" msgstr "Este manual: criar pacotes Debian, à maneira Debian" #. type: frame{#2} #: packaging-tutorial.tex:153 msgid "Tools you will need" msgstr "Ferramentas que irá precisar" #. type: itemize #: packaging-tutorial.tex:153 msgid "A Debian (or Ubuntu) system (with root access)" msgstr "Um sistema Debian (ou Ubuntu) (com acesso a root)" #. type: itemize #: packaging-tutorial.tex:153 msgid "Some packages:" msgstr "Alguns pacotes:" #. 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 "" "\\textbf{build-essential}: tem dependências nos pacotes que irão ser " "assumidas para estarem disponíveis na máquina do desenvolvedor (não é " "preciso especificá-las no campo de controle \\texttt{Build-Depends:} do seu " "pacote)" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "includes a dependency on \\textbf{dpkg-dev}, which contains basic Debian-" "specific tools to create packages" msgstr "" "Inclui a dependência de \\textbf{dpkg-dev}, a qual contém ferramentas " "básicas específicas de Debian para criar pacotes" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "\\textbf{devscripts}: contains many useful scripts for Debian maintainers" msgstr "" "\\textbf{devscripts}: contém muitos scripts úteis para mantenedores de Debian" #. 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 "" "Muitas outras ferramentas serão também mencionadas mais tarde, tais como " "\\textbf{debhelper}, \\textbf{cdbs}, \\textbf{quilt}, \\textbf{pbuilder}, " "\\textbf{sbuild}, \\textbf{lintian}, \\textbf{svn-buildpackage}, " "\\textbf{git-buildpackage}, \\ldots\\\\ instale-as quando precisar delas." #. type: frame{#2} #: packaging-tutorial.tex:168 msgid "General packaging workflow" msgstr "Fluxo de trabalho de empacotamento geral" #. \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 "" "\\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] {onde a maioria do trabalho manual é feito}; \\node[node1] (bin) at " "(0, -4) {um ou vários pacotes binários}; \\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} (compilar e testar com \\textttc{lintian}) ou " "\\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);" #. type: subsection{#2} #: packaging-tutorial.tex:205 msgid "Rebuilding dash" msgstr "Recompilando o dash" #. type: frame{#2} #: packaging-tutorial.tex:205 msgid "Example: rebuilding dash" msgstr "Exemplo: recompilando o dash" #. 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 "" "Instale os pacotes necessários para compilar dash, e devscripts\\\\ " "{\\texttt{sudo apt-get build-dep dash}\\\\ (requer linhas \\texttt{deb-src} " "em \\texttt{/etc/apt/sources.list})}\\\\ {\\texttt{sudo apt-get install -{}-" "no-install-recommends devscripts fakeroot}}" #. 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 "" "Crie um directório de trabalho, e vá para ele :\\\\ \\texttt{mkdir /tmp/" "debian-tutorial ; cd /tmp/debian-tutorial}" #. 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 "" "Obtenha o pacote fonte do \\texttt{dash}\\\\ \\texttt{apt-get source dash}\\" "\\ {\\small (Para isto precisa de ter linhas \\texttt{deb-src} no seu " "\\texttt{/etc/apt/sources.list})}" #. 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 "" "Compile o pacote\\\\ {\\texttt{cd dash-*\\\\ debuild -us -uc}} ~~~(\\texttt{-" "us -uc} desactiva a assinatura do pacote com GPG)" #. type: enumerate #: packaging-tutorial.tex:218 msgid "Check that it worked" msgstr "Verifique que funcionou" #. type: itemize #: packaging-tutorial.tex:218 msgid "There are some new \\texttt{.deb} files in the parent directory" msgstr "Existem alguns ficheiros \\texttt{.deb} novos no directório pai" #. type: enumerate #: packaging-tutorial.tex:218 msgid "Look at the \\texttt{debian/} directory" msgstr "Observe o directório \\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:218 msgid "That's where the packaging work is done" msgstr "É onde o trabalho de empacotamento é feito" #. type: section{#2} #: packaging-tutorial.tex:256 msgid "Creating source packages" msgstr "Criar pacotes fonte" #. type: subsection{#2} #: packaging-tutorial.tex:256 msgid "Source packages basics" msgstr "Bases dos pacotes fonte" #. type: frame{#2} #: packaging-tutorial.tex:256 msgid "Source package" msgstr "Pacote fonte" #. 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 "" "Um pacote fonte pode gerar vários pacotes binários\\\\ {\\small ex, a fonte " "\\texttt{\\bfseries libtar} gera pacotes binários \\texttt{\\bfseries " "libtar0} e \\texttt{\\bfseries libtar-dev}}" #. type: itemize #: packaging-tutorial.tex:256 msgid "Two kinds of packages: (if unsure, use non-native)" msgstr "Dois tipos de pacotes: (em caso de dúvida, use não-nativo)" #. type: itemize #: packaging-tutorial.tex:256 msgid "" "Native packages: normally for Debian specific software (\\textsl{dpkg}, " "\\textsl{apt})" msgstr "" "Pacotes nativos: normalmente para software específico de Debian " "(\\textsl{dpkg}, \\textsl{apt})" #. type: itemize #: packaging-tutorial.tex:256 msgid "Non-native packages: software developed outside Debian" msgstr "Pacotes não-nativos: software desenvolvido fora de Debian" #. type: itemize #: packaging-tutorial.tex:256 msgid "Main file: \\texttt{.dsc} (meta-data)" msgstr "Ficheiro principal: \\texttt{.dsc} (meta-dados)" #. type: itemize #: packaging-tutorial.tex:256 msgid "Other files depending on the version of the source format" msgstr "Outros ficheiros que dependem da versão do formato fonte" #. type: itemize #: packaging-tutorial.tex:256 msgid "1.0 or 3.0 (native): \\texttt{package\\_version.tar.gz}" msgstr "1.0 or 3.0 (nativo): \\texttt{package\\_version.tar.gz}" #. type: itemize #: packaging-tutorial.tex:256 msgid "1.0 (non-native):" msgstr "1.0 (não-nativo):" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_ver.orig.tar.gz}: upstream source" msgstr "\\texttt{pkg\\_ver.orig.tar.gz}: fonte da autoria (upstream)" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.diff.gz}: patch to add Debian-specific changes" msgstr "" "\\texttt{pkg\\_debver.diff.gz}: patch para adicionar alterações específicas " "de Debian" #. type: itemize #: packaging-tutorial.tex:256 msgid "3.0 (quilt):" msgstr "3.0 (quilt):" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.debian.tar.gz}: tarball with the Debian changes" msgstr "" "\\texttt{pkg\\_debver.debian.tar.gz}: tarball com as alterações de Debian" #. type: frame #: packaging-tutorial.tex:256 msgid "(See \\texttt{dpkg-source(1)} for exact details)" msgstr "(Veja \\texttt{dpkg-source(1)} para detalhes exactos)" #. type: frame{#2} #: packaging-tutorial.tex:280 msgid "Source package example (wget\\_1.12-2.1.dsc)" msgstr "Exemplo de pacote fonte (wget\\_1.12-2.1.dsc)" #. 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" "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 "" "[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" "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" #. type: subsection{#2} #: packaging-tutorial.tex:308 msgid "Retrieving source packages" msgstr "Obtendo pacotes fonte" #. type: frame{#2} #: packaging-tutorial.tex:308 msgid "Retrieving an existing source package" msgstr "Obtendo um pacote fonte existente" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the Debian archive:" msgstr "Do arquivo Debian:" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package}}" msgstr "\\texttt{apt-get source \\textsl{pacote}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package=version}}" msgstr "\\texttt{apt-get source \\textsl{pacote=versão}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package/release}}" msgstr "\\texttt{apt-get source \\textsl{pacote/lançamento}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "(You need \\texttt{deb-src} lines in \\texttt{sources.list})" msgstr "(Você precisa de linhas \\texttt{deb-src} em \\texttt{sources.list})" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the Internet:" msgstr "Da Internet:" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{dget \\textsl{url-to.dsc}}" msgstr "\\texttt{dget \\textsl{url-to.dsc}}" #. 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 "" "\\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} " "disponibiliza todos os pacotes de Debian desde 2005)" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the (declared) version control system:" msgstr "Do sistema de controlo de versão (declarado):" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{debcheckout \\textsl{package}}" msgstr "\\texttt{debcheckout \\textsl{pacote}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "" "Once downloaded, extract with \\texttt{dpkg-source -x \\textsl{file.dsc}}" msgstr "" "Após a descarga, extraia com \\texttt{dpkg-source -x \\textsl{file.dsc}}" #. type: frame{#2} #: packaging-tutorial.tex:331 msgid "Creating a basic source package" msgstr "Criar um pacote fonte básico" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "Download the upstream source\\\\ (\\textsl{upstream source} = the one from " "the software's original developers)" msgstr "" "Descarregue a fonte do autor (upstream)\\\\ (\\textsl{upstream source} = " "aquela dos desenvolvedores originais do software)" #. 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 "" "Renomeie para \\texttt{<\\textsl{source\\_package}>\\_<\\textsl{upstream" "\\_version}>.orig.tar.gz}\\\\ (exemplo: \\texttt{simgrid\\_3.6.orig.tar.gz})" #. type: itemize #: packaging-tutorial.tex:331 msgid "Untar it" msgstr "Descompacte-o" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "Rename the directory to \\texttt{<\\textsl{source\\_package}>-<" "\\textsl{upstream\\_version}>}\\\\ (example: \\texttt{simgrid-3.6})" msgstr "" "Renomeie o directório para \\texttt{<\\textsl{source\\_package}>-<" "\\textsl{upstream\\_version}>}\\\\ (exemplo: \\texttt{simgrid-3.6})" #. 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 "" "\\texttt{cd \\texttt{<\\textsl{source\\_package}>-<\\textsl{upstream" "\\_version}>} \\&\\& dh\\_make}\\\\ (do pacote \\textbf{dh-make})" #. 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 "" "Existem algumas alternativas ao \\texttt{dh\\_make} para conjuntos " "específicos de pacotes: \\textbf{dh-make-perl}, \\textbf{dh-make-php}, " "\\ldots" #. type: itemize #: packaging-tutorial.tex:331 msgid "\\texttt{debian/} directory created, with a lot of files in it" msgstr "Directório \\texttt{debian/} criado, com muitos ficheiros lá dentro" #. type: frame{#2} #: packaging-tutorial.tex:360 msgid "Files in debian/" msgstr "Ficheiros em debian/" #. type: frame #: packaging-tutorial.tex:360 msgid "" "All the packaging work should be made by modifying files in \\texttt{debian/}" msgstr "" "Todo o trabalho de empacotamento deve ser feito ao modificar ficheiros em " "\\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:360 msgid "Main files:" msgstr "Ficheiros principais:" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{control} -- meta-data about the package (dependencies, etc.)" msgstr "\\textbf{control} -- meta-dados acerca do pacote (dependências, etc)" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{rules} -- specifies how to build the package" msgstr "\\textbf{rules} -- especifica como compilar o pacote" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{copyright} -- copyright information for the package" msgstr "\\textbf{copyright} -- informação de copyright para o pacote" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{changelog} -- history of the Debian package" msgstr "\\textbf{changelog} -- história do pacote Debian" #. type: itemize #: packaging-tutorial.tex:360 msgid "Other files:" msgstr "Outros ficheiros:" #. type: itemize #: packaging-tutorial.tex:360 msgid "compat" msgstr "compat" #. type: itemize #: packaging-tutorial.tex:360 msgid "watch" msgstr "watch" #. type: itemize #: packaging-tutorial.tex:360 msgid "dh\\_install* targets\\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}" msgstr "" "dh\\_install* targets\\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}" #. type: itemize #: packaging-tutorial.tex:360 msgid "maintainer scripts\\\\ {\\small *.postinst, *.prerm, \\ldots}" msgstr "scripts do mantenedor\\\\ {\\small *.postinst, *.prerm, \\ldots}" #. type: itemize #: packaging-tutorial.tex:360 msgid "source/format" msgstr "fonte/formato" #. type: itemize #: packaging-tutorial.tex:360 msgid "patches/ -- if you need to modify the upstream sources" msgstr "patches/ -- se você precisar de modificar as fontes do autor" #. type: itemize #: packaging-tutorial.tex:360 msgid "Several files use a format based on RFC 822 (mail headers)" msgstr "" "Vários ficheiros usam um formato baseado em RFC 822 (cabeçalhos principais)" #. type: frame{#2} #: packaging-tutorial.tex:372 msgid "debian/changelog" msgstr "debian/changelog" #. type: itemize #: packaging-tutorial.tex:372 msgid "Lists the Debian packaging changes" msgstr "Lista as alterações de empacotamento Debian" #. type: itemize #: packaging-tutorial.tex:372 msgid "Gives the current version of the package" msgstr "Dá a versão actual do pacote" #. 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 "" "\\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};" #. % #. type: itemize #: packaging-tutorial.tex:386 msgid "Edited manually or with \\textttc{dch}" msgstr "Editado manualmente ou com \\textttc{dch}" #. type: itemize #: packaging-tutorial.tex:386 msgid "Create a changelog entry for a new release: \\textttc{dch -i}" msgstr "" "Crie uma entrada no changelog para um novo lançamento: \\textttc{dch -i}" #. 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 "" "Formato especial para fechar automaticamente bugs de Debian ou Ubuntu\\\\ " "Debian: \\texttt{Closes:~\\#595268}; Ubuntu: \\texttt{LP:~\\#616929}" #. type: itemize #: packaging-tutorial.tex:386 msgid "" "Installed as \\texttt{/usr/share/doc/\\textit{package}/changelog.Debian.gz}" msgstr "" "Instalado como \\texttt{/usr/share/doc/\\textit{pacote}/changelog.Debian.gz}" #. 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 "" "[basicstyle=\\ttfamily\\footnotesize]\n" "mpich2 (1.2.1.1-5) unstable; urgency=low\n" "\n" #. 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 "" " * 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" #. type: lstlisting #: packaging-tutorial.tex:394 #, no-wrap msgid " -- Lucas Nussbaum Wed, 15 Sep 2010 18:13:44 +0200" msgstr " -- Lucas Nussbaum Wed, 15 Sep 2010 18:13:44 +0200" #. type: frame{#2} #: packaging-tutorial.tex:421 msgid "debian/control" msgstr "debian/control" #. type: itemize #: packaging-tutorial.tex:421 msgid "Package metadata" msgstr "Meta dados do pacote" #. type: itemize #: packaging-tutorial.tex:421 msgid "For the source package itself" msgstr "Para o próprio pacote fonte" #. type: itemize #: packaging-tutorial.tex:421 msgid "For each binary package built from this source" msgstr "Para cada pacote binário compilado desta fonte" #. type: itemize #: packaging-tutorial.tex:421 msgid "" "Package name, section, priority, maintainer, uploaders, build-dependencies, " "dependencies, description, homepage, \\ldots" msgstr "" "Nome do pacote, secção, prioridade, mantenedor, quem faz os uploads, " "dependências de compilação, dependências, descrição, página do projecto, " "\\ldots" #. type: itemize #: packaging-tutorial.tex:421 msgid "" "Documentation: Debian Policy chapter 5\\\\ \\url{http://www.debian.org/doc/" "debian-policy/ch-controlfields}" msgstr "" "Documentação: Politica Debian capítulo 5\\\\ \\url{http://www.debian.org/doc/" "debian-policy/ch-controlfields}" #. 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" "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 "" "[basicstyle=\\ttfamily\\footnotesize]\n" "Source: wget\n" "Section: web\n" "Priority: important\n" "Maintainer: Noel Kothe \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" #. 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 "" "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" #. type: frame{#2} #: packaging-tutorial.tex:456 msgid "Architecture: all or any" msgstr "Arquitectura: todas ou nenhuma" #. type: frame #: packaging-tutorial.tex:456 msgid "Two kinds of binary packages:" msgstr "Dois tipos de pacotes binários:" #. type: itemize #: packaging-tutorial.tex:456 msgid "Packages with different contents on each Debian architecture" msgstr "Pacotes com conteúdos diferentes para cada arquitectura Debian" #. type: itemize #: packaging-tutorial.tex:456 msgid "Example: C program" msgstr "Exemplo: programa C" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ any} in \\texttt{debian/control}" msgstr "\\texttt{Architecture:\\ any} em \\texttt{debian/control}" #. 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 "" "Ou, se apenas funcionar num sub-conjunto de arquitecturas:\\\\ " "\\texttt{Architecture:\\ amd64 i386 ia64 hurd-i386}" #. type: itemize #: packaging-tutorial.tex:456 msgid "buildd.debian.org: builds all the other architectures for you on upload" msgstr "" "buildd.debian.org: compila todas as outras arquitecturas para si ao submeter" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_" "\\textsl{architecture}.deb}" msgstr "" "Chamado \\texttt{\\textsl{pacote}\\_\\textsl{versão}\\_" "\\textsl{arquitectura}.deb}" #. type: itemize #: packaging-tutorial.tex:456 msgid "Packages with the same content on all architectures" msgstr "Pacotes com o mesmo conteúdo para todas as arquitecturas" #. type: itemize #: packaging-tutorial.tex:456 msgid "Example: Perl library" msgstr "Exemplo: biblioteca Perl" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ all} in \\texttt{debian/control}" msgstr "\\texttt{Architecture:\\ all} em \\texttt{debian/control}" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_\\textbf{all}.deb}" msgstr "" "Chamado \\texttt{\\textsl{pacote}\\_\\textsl{versão}\\_\\textbf{todas}.deb}" #. 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 "" "Um pacote fonte pode gerar uma mistura de pacotes binários de " "\\texttt{Arquitectura:\\ any} e \\texttt{Arquitectura:\\ all}" #. type: frame{#2} #: packaging-tutorial.tex:482 msgid "debian/rules" msgstr "debian/rules" #. type: itemize #: packaging-tutorial.tex:482 msgid "Makefile" msgstr "Makefile" #. type: itemize #: packaging-tutorial.tex:482 msgid "Interface used to build Debian packages" msgstr "Interface usada para compilar pacotes Debian" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "Documented in Debian Policy, chapter 4.8\\\\ {\\small \\url{http://www." "debian.org/doc/debian-policy/ch-source\\#s-debianrules}}" msgstr "" "Documentado em Politica Debian, capitulo 4.8\\\\ {\\small \\url{http://www." "debian.org/doc/debian-policy/ch-source\\#s-debianrules}}" #. type: itemize #: packaging-tutorial.tex:482 msgid "Required targets:" msgstr "Alvos necessários:" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "\\texttt{build, build-arch, build-indep}: should perform all the " "configuration and compilation" msgstr "" "\\texttt{build, build-arch, build-indep}: deve executar toda a configuração " "e compilação" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{binary, binary-arch, binary-indep}: build the binary packages" msgstr "" "\\texttt{binary, binary-arch, binary-indep}: compila os pacotes binários" #. 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 "" "\\texttt{dpkg-buildpackage} irá chamar \\texttt{binary} para compilar todos " "os pacotes, ou \\texttt{binary-arch} para compilar apenas os pacotes de " "\\texttt{Arquitectura:~any}" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{clean}: clean up the source directory" msgstr "\\texttt{clean}: limpa o directório fonte" #. type: subsection{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers" msgstr "Ajudantes de empacotamento" #. type: frame{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers -- debhelper" msgstr "Ajudantes de empacotamento -- debhelper" #. type: itemize #: packaging-tutorial.tex:516 msgid "You could write shell code in \\texttt{debian/rules} directly" msgstr "" "Você podia escrever código de shell directamente em \\texttt{debian/rules}" #. type: itemize #: packaging-tutorial.tex:516 msgid "See the \\texttt{adduser} package for example" msgstr "Veja o pacote \\texttt{adduser} como exemplo" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Better practice (used by most packages): use a \\textsl{Packaging helper}" msgstr "" "Melhor prática (usada pela maioria dos pacotes): use um \\textsl{Ajudante de " "Empacotamento}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Most popular one: \\textbf{debhelper} (used by 98\\% of packages)" msgstr "" "O mais popular deles: \\textbf{debhelper} (usado por 98\\% dos pacotes)" #. type: itemize #: packaging-tutorial.tex:516 msgid "Goals:" msgstr "Objectivos:" #. type: itemize #: packaging-tutorial.tex:516 msgid "Factor the common tasks in standard tools used by all packages" msgstr "" "Factoriza as tarefas comuns em ferramentas standard usadas por todos os " "pacotes" #. type: itemize #: packaging-tutorial.tex:516 msgid "Fix some packaging bugs once for all packages" msgstr "Corrige alguns bugs de empacotamento de uma vez para todos os pacotes" #. 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 "" "{\\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}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Called from \\texttt{debian/rules}" msgstr "Chamado de \\texttt{debian/rules}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Configurable using command parameters or files in \\texttt{debian/}" msgstr "" "Configurável usando parâmetros de comandos ou ficheiros em \\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "{\\footnotesize \\ttfamily \\textsl{package}.docs, \\textsl{package}." "examples, \\textsl{package}.install, \\textsl{package}.manpages, \\ldots}" msgstr "" "{\\footnotesize \\ttfamily \\textsl{package}.docs, \\textsl{package}." "exemplos, \\textsl{package}.install, \\textsl{package}.manpages, \\ldots}" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Third-party helpers for sets of packages: \\textbf{python-support}, " "\\textbf{dh\\_ocaml}, \\ldots" msgstr "" "Ajudantes de terceiros para conjuntos de pacotes: \\textbf{python-support}, " "\\textbf{dh\\_ocaml}, \\ldots" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Gotcha: \\texttt{debian/compat}: Debhelper compatibility version (use \"7\")" msgstr "" "Gotcha: \\texttt{debian/compat}: Versão de compatibilidade do Debhelper (use " "\"7\")" #. type: frame{#2} #: packaging-tutorial.tex:520 msgid "debian/rules using debhelper (1/2)" msgstr "debian/rules usando debhelper (1/2)" #. type: lstlisting #: packaging-tutorial.tex:520 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "#!/usr/bin/make -f\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "#!/usr/bin/make -f\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:523 #, no-wrap msgid "" "# Uncomment this to turn on verbose mode.\n" "#export DH_VERBOSE=1\n" "\n" msgstr "" "# Uncomment this to turn on verbose mode.\n" "#export DH_VERBOSE=1\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:527 #, no-wrap msgid "" "build: \n" " $(MAKE)\n" " #docbook-to-man debian/packagename.sgml > packagename.1\n" "\n" msgstr "" "build: \n" " $(MAKE)\n" " #docbook-to-man debian/packagename.sgml > packagename.1\n" "\n" #. 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 "" "clean: \n" " dh_testdir\n" " dh_testroot\n" " rm -f build-stamp configure-stamp\n" " $(MAKE) clean\n" " dh_clean \n" "\n" #. 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 "" "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" #. type: frame{#2} #: packaging-tutorial.tex:547 msgid "debian/rules using debhelper (2/2)" msgstr "debian/rules usando debhelper (2/2)" #. type: lstlisting #: packaging-tutorial.tex:547 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:550 #, no-wrap msgid "" "# Build architecture-independent files here.\n" "binary-indep: build install\n" "\n" msgstr "" "# Build architecture-independent files here.\n" "binary-indep: build install\n" "\n" #. 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 "" "# 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" #. 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 "" "binary: binary-indep binary-arch\n" ".PHONY: build clean binary-indep binary-arch binary install configure" #. type: frame{#2} #: packaging-tutorial.tex:603 msgid "CDBS" msgstr "CDBS" #. type: itemize #: packaging-tutorial.tex:603 msgid "With debhelper, still a lot of redundancy between packages" msgstr "Com o debhelper, ainda muita redundância entre pacotes" #. type: itemize #: packaging-tutorial.tex:603 msgid "Second-level helpers that factor common functionality" msgstr "Ajudantes de segundo-nível que factorizam funcionalidades comuns" #. type: itemize #: packaging-tutorial.tex:603 msgid "" "E.g. building with \\texttt{./configure \\&\\& make \\&\\& make install} or " "CMake" msgstr "" "Ex. compilando com \\texttt{./configure \\&\\& make \\&\\& make install} ou " "CMake" #. type: itemize #: packaging-tutorial.tex:603 msgid "CDBS:" msgstr "CDBS:" #. type: itemize #: packaging-tutorial.tex:603 msgid "Introduced in 2005, based on advanced \\textsl{GNU make} magic" msgstr "Introduzido em 2005, baseado na magia avançada do \\textsl{GNU make}" #. type: itemize #: packaging-tutorial.tex:603 msgid "Documentation: \\texttt{/usr/share/doc/cdbs/}" msgstr "Documentação: \\texttt{/usr/share/doc/cdbs/}" #. type: itemize #: packaging-tutorial.tex:603 msgid "Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots" msgstr "Suporte para Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots" #. type: itemize #: packaging-tutorial.tex:603 msgid "But some people hate it:" msgstr "Mas algumas pessoas detestam-o:" #. type: itemize #: packaging-tutorial.tex:603 msgid "" "Sometimes difficult to customize package builds:\\\\ \"\\textsl{twisty maze " "of makefiles and environment variables}\"" msgstr "" "Por vezes é difícil personalizar compilações de pacotes:\\\\ " "\"\\textsl{labirinto distorcido de makefiles e variáveis de ambiente}\"" #. type: itemize #: packaging-tutorial.tex:603 msgid "Slower than plain debhelper (many useless calls to \\texttt{dh\\_*})" msgstr "" "Mais lento que o debhelper simples (muitas chamadas desnecessárias a " "\\texttt{dh\\_*})" #. 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 "" "[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" #. 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 "" "# add an action after the build\n" "build/mypackage::\n" " /bin/bash debian/scripts/foo.sh\n" " " #. type: frame{#2} #: packaging-tutorial.tex:628 msgid "Dh (aka Debhelper 7, or dh7)" msgstr "Dh (aka Debhelper 7, ou dh7)" #. type: itemize #: packaging-tutorial.tex:628 msgid "Introduced in 2008 as a \\textsl{CDBS killer}" msgstr "Introduzido em 2008 como o \\textsl{matador do CDBS}" #. type: itemize #: packaging-tutorial.tex:628 msgid "\\textbf{dh} command that calls \\texttt{dh\\_*}" msgstr "\\textbf{dh} comando que chama \\texttt{dh\\_*}" #. type: itemize #: packaging-tutorial.tex:628 msgid "Simple \\textsl{debian/rules}, listing only overrides" msgstr "\\textsl{debian/rules} simples, listando apenas as sobreposições" #. type: itemize #: packaging-tutorial.tex:628 msgid "Easier to customize than CDBS" msgstr "Mais fácil de personalizar que o CDBS" #. 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 "" "Documentos: manpages (\\texttt{debhelper(7)}, \\texttt{dh(1)}) + slides da " "reunião DebConf9\\\\ \\url{http://kitenet.net/~joey/talks/debhelper/" "debhelper-slides.pdf}" #. type: lstlisting #: packaging-tutorial.tex:628 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "#!/usr/bin/make -f\n" "%:\n" " dh $@\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "#!/usr/bin/make -f\n" "%:\n" " dh $@\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:631 #, no-wrap msgid "" "override_dh_auto_configure:\n" " dh_auto_configure -- --with-kitchen-sink\n" "\n" msgstr "" "override_dh_auto_configure:\n" " dh_auto_configure -- --with-kitchen-sink\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:634 #, no-wrap msgid "" "override_dh_auto_build:\n" " make world\n" "\n" msgstr "" "override_dh_auto_build:\n" " make world\n" "\n" #. 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 "debhelper clássico contra CDBS contra dh" #. type: itemize #: packaging-tutorial.tex:656 msgid "" "Mind shares:\\\\ Classic debhelper: 27\\% \\hskip 1em CDBS: 18\\% \\hskip " "1em dh: 54\\%" msgstr "" "Mind shares:\\\\ debhelper clássico: 27\\% \\hskip 1em CDBS: 18\\% \\hskip " "1em dh: 54\\%" #. type: itemize #: packaging-tutorial.tex:656 msgid "Which one should I learn?" msgstr "Qual deles devo aprender?" #. type: itemize #: packaging-tutorial.tex:656 msgid "Probably a bit of all of them" msgstr "Provavelmente um pouco de todos eles" #. type: itemize #: packaging-tutorial.tex:656 msgid "You need to know debhelper to use dh and CDBS" msgstr "Você precisa de conhecer o debhelper para usar o dh e o CDBS" #. type: itemize #: packaging-tutorial.tex:656 msgid "You might have to modify CDBS packages" msgstr "Você poderá ter que modificar pacotes CDBS" #. type: itemize #: packaging-tutorial.tex:656 msgid "Which one should I use for a new package?" msgstr "Qual deles devo usar para um pacote novo?" #. type: itemize #: packaging-tutorial.tex:656 msgid "\\textbf{dh} (only solution with an increasing mind share)" msgstr "\\textbf{dh} (solução apenas com um aumento da mind share)" #. 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 "" "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" #. 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 "" "\\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}" #. type: section{#2} #: packaging-tutorial.tex:680 msgid "Building and testing packages" msgstr "Compilando e testando pacotes" #. type: frame{#2} #: packaging-tutorial.tex:680 msgid "Building packages" msgstr "Compilando pacotes" #. 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 "" "\\textttc{apt-get build-dep mypackage}\\\\ Instala as \\textsl{build-" "dependencies} (para um pacote já em Debian)\\\\ Ou \\textttc{mk-build-deps -" "ir} (para um pacote ainda não submetido)" #. type: itemize #: packaging-tutorial.tex:737 msgid "\\textttc{debuild}: build, test with \\texttt{lintian}, sign with GPG" msgstr "" "\\textttc{debuild}: compila, testa com \\texttt{lintian}, assina com GPG" #. type: itemize #: packaging-tutorial.tex:737 msgid "Also possible to call \\textttc{dpkg-buildpackage} directly" msgstr "Também possível chamar directamente \\textttc{dpkg-buildpackage}" #. type: itemize #: packaging-tutorial.tex:737 msgid "Usually with \\texttt{dpkg-buildpackage -us -uc}" msgstr "Normalmente com \\texttt{dpkg-buildpackage -us -uc}" #. type: itemize #: packaging-tutorial.tex:737 msgid "It is better to build packages in a clean \\& minimal environment" msgstr "É melhor compilar os pacotes num ambiente limpo \\& mínimo" #. type: itemize #: packaging-tutorial.tex:737 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 "" "\\textttc{pbuilder} -- ajudante para compilar pacotes em \\textsl{chroot}\\" "\\ Boa documentação: \\url{https://wiki.ubuntu.com/PbuilderHowto}\\\\ " "(optimização: \\textttc{cowbuilder} \\textttc{ccache} \\textttc{distcc})" #. type: itemize #: packaging-tutorial.tex:737 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 "" "\\textttc{schroot} e \\textttc{sbuild}: usados nos daemons de compilação de " "Debian\\\\ (não tão simples como \\texttt{pbuilder}, mas permite " "instantâneos LVM\\\\ veja: \\url{https://help.ubuntu.com/community/" "SbuildLVMHowto} )" #. type: itemize #: packaging-tutorial.tex:737 msgid "Generates \\texttt{.deb} files and a \\texttt{.changes} file" msgstr "Gera ficheiros \\texttt{.deb} e um ficheiro \\texttt{.changes}" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "\\texttt{.changes}: describes what was built; used to upload the package" msgstr "" "\\texttt{.changes}: descreve o que foi compilado; usado para fazer o upload " "do pacote" #. type: frame{#2} #: packaging-tutorial.tex:737 msgid "Installing and testing packages" msgstr "Instalando e testando pacotes" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Install the package locally: \\textttc{debi} (will use \\texttt{.changes} to " "know what to install)" msgstr "" "Instale o pacote localmente: \\textttc{debi} (irá usar \\texttt{.changes} " "para saber o que instalar)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "List the content of the package: \\texttt{{\\color{rouge}debc} ../" "mypackage.changes}" msgstr "" "Liste o conteúdo do pacote: \\texttt{{\\color{rouge}debc} ../mypackage." "changes}" #. type: itemize #: packaging-tutorial.tex:737 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 "" "Compara o pacote com a versão anterior:\\\\ \\texttt{{\\color{rouge}" "debdiff} ../mypackage\\_1\\_*.changes ../mypackage\\_2\\_*.changes}\\\\ ou " "para comparar as fontes:\\\\ \\texttt{{\\color{rouge}debdiff} ../mypackage" "\\_1\\_*.dsc ../mypackage\\_2\\_*.dsc}\\\\" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Check the package with \\texttt{lintian} (static analyzer):\\\\ " "\\texttt{{\\color{rouge}lintian} ../mypackage.changes}\\\\ " "\\texttt{lintian -i}: gives more information about the errors \\\\ " "\\texttt{lintian -EviIL +pedantic}: shows more problems" msgstr "" "Verifique o pacote com \\texttt{lintian} (analisador estático):\\\\ " "\\texttt{{\\color{rouge}lintian} ../mypackage.changes}\\\\ " "\\texttt{lintian -i}: dá mais informação acerca de erros \\\\ " "\\texttt{lintian -EviIL +pedantic}: mostra mais problemas" #. type: itemize #: packaging-tutorial.tex:737 msgid "Upload the package to Debian (\\textttc{dput}) (needs configuration)" msgstr "" "Faça o upload do pacote para Debian (\\textttc{dput}) (precisa de " "configuração)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Manage a private Debian archive with \\textttc{reprepro}\\\\ Documentation: " "\\url{http://mirrorer.alioth.debian.org/}" msgstr "" "Faça gestão de um arquivo Debian privado com \\textttc{reprepro}\\\\ " "Documentação: \\url{http://mirrorer.alioth.debian.org/}" #. type: frame{#2} #: packaging-tutorial.tex:737 packaging-tutorial.tex:1454 #: packaging-tutorial.tex:1460 msgid "Practical session 1: modifying the grep package" msgstr "Sessão prática 1: modificar o pacote grep" #. type: enumerate #: packaging-tutorial.tex:737 packaging-tutorial.tex:1460 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package (if you use Ubuntu 11.10 or later, or Debian " "testing or unstable, use version 2.9-1 or 2.9-2 instead)" msgstr "" "Vá a \\url{http://ftp.debian.org/debian/pool/main/g/grep/} e descarregue a " "versão 2.6.3-3 do pacote (se você usar Ubuntu 11.10 ou posterior, ou Debian " "testing ou unstable, então use a versão 2.9-1 ou 2.9-2)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "If the source package is not unpacked automatically, unpack it with " "\\texttt{dpkg-source~-x~grep\\_*.dsc}" msgstr "" "Se o pacote fonte não descompactar automaticamente, descompacte-o com " "\\texttt{dpkg-source~-x~grep\\_*.dsc}" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "Look at the files in \\texttt{debian/}." msgstr "Observe os ficheiros em \\texttt{debian/}." #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "How many binary packages are generated by this source package?" msgstr "Quantos pacotes binários são gerados por este pacote fonte?" #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "Which packaging helper does this package use?" msgstr "Qual o ajudante de empacotamento este pacote usa?" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1537 msgid "Build the package" msgstr "Compile o pacote" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1558 msgid "" "We are now going to modify the package. Add a changelog entry and increase " "the version number." msgstr "" "Agora você vai modificar o pacote. Adicione uma entrada changelog e " "incremente o número da versão." #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1578 msgid "Now disable perl-regexp support (it is a \\texttt{./configure} option)" msgstr "" "Agora desactive o suporte a perl-regexp (é uma opção de \\texttt{./" "configure})" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1578 msgid "Rebuild the package" msgstr "Re-compile o pacote" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Compare the original and the new package with debdiff" msgstr "Compare os pacotes original e novo com o debdiff" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Install the newly built package" msgstr "instale o pacote compilado recentemente" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Cry if you messed up ;)" msgstr "Chore se fez asneira ;)" #. type: section{#2} #: packaging-tutorial.tex:775 msgid "Advanced packaging topics" msgstr "Tópicos de empacotamento avançados" #. type: frame{#2} #: packaging-tutorial.tex:775 msgid "debian/copyright" msgstr "debian/copyright" #. type: itemize #: packaging-tutorial.tex:775 msgid "Copyright and license information for the source and the packaging" msgstr "Informação de copyright e licença para a fonte e o empacotamento" #. type: itemize #: packaging-tutorial.tex:775 msgid "Traditionally written as a text file" msgstr "Tradicionalmente escrito num ficheiro de texto" #. type: itemize #: packaging-tutorial.tex:775 msgid "" "New machine-readable format: {\\small\\url{http://www.debian.org/doc/" "packaging-manuals/copyright-format/1.0/}}" msgstr "" "Novo formato máquina-legível: {\\small\\url{http://www.debian.org/doc/" "packaging-manuals/copyright-format/1.0/}}" #. type: lstlisting #: packaging-tutorial.tex:775 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Format: http://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 "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Format: http://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" #. type: lstlisting #: packaging-tutorial.tex:785 #, no-wrap msgid "" "Files: *\n" "Copyright: Copyright 1998 John Doe \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 "" "Files: *\n" "Copyright: Copyright 1998 John Doe \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" #. type: lstlisting #: packaging-tutorial.tex:790 #, no-wrap msgid "" "Files: debian/*\n" "Copyright: Copyright 1998 Jane Smith \n" "License:\n" " [LICENSE TEXT]" msgstr "" "Files: debian/*\n" "Copyright: Copyright 1998 Jane Smith \n" "License:\n" " [LICENSE TEXT]" #. type: frame{#2} #: packaging-tutorial.tex:821 msgid "Modifying the upstream source" msgstr "Modificar a fonte do autor" #. type: frame #: packaging-tutorial.tex:821 msgid "Often needed:" msgstr "Muitas vezes necessário:" #. type: itemize #: packaging-tutorial.tex:821 msgid "Fix bugs or add customizations that are specific to Debian" msgstr "" "Corrigir bugs ou adicionar personalizações que são específicas de Debian" #. type: itemize #: packaging-tutorial.tex:821 msgid "Backport fixes from a newer upstream release" msgstr "" "Correcções a versões anteriores (backport) a partir de lançamento mais " "recente do autor" #. type: frame #: packaging-tutorial.tex:821 msgid "Several methods to do it:" msgstr "Vários métodos para o fazer:" #. type: itemize #: packaging-tutorial.tex:821 msgid "Modifying the files directly" msgstr "Modificar os ficheiros directamente" #. type: itemize #: packaging-tutorial.tex:821 msgid "Simple" msgstr "Simples" #. type: itemize #: packaging-tutorial.tex:821 msgid "But no way to track and document the changes" msgstr "Mas sem modo de acompanhar e documentar as alterações" #. type: itemize #: packaging-tutorial.tex:821 msgid "Using patch systems" msgstr "utilizando sistemas de patch" #. type: itemize #: packaging-tutorial.tex:821 msgid "Eases contributing your changes to upstream" msgstr "" "Facilita a contribuição das suas alterações para o autor original (upstream)" #. type: itemize #: packaging-tutorial.tex:821 msgid "Helps sharing the fixes with derivatives" msgstr "Ajuda a partilhar as correcções com os derivados" #. type: itemize #: packaging-tutorial.tex:821 msgid "" "Gives more exposure to the changes\\\\ \\url{http://patch-tracker.debian." "org/}" msgstr "" "Dá melhor exibição às alterações\\\\ \\url{http://patch-tracker.debian.org/}" #. type: frame{#2} #: packaging-tutorial.tex:851 msgid "Patch systems" msgstr "Sistemas de patch" #. type: itemize #: packaging-tutorial.tex:851 msgid "Principle: changes are stored as patches in \\texttt{debian/patches/}" msgstr "" "Princípio: as alterações são guardadas como patches em \\texttt{debian/" "patches/}" #. type: itemize #: packaging-tutorial.tex:851 msgid "Applied and unapplied during build" msgstr "Aplicado e \"des-aplicado\" durante a compilação" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Past: several implementations -- \\textsl{simple-patchsys} (\\textsl{cdbs}), " "\\textsl{dpatch}, \\textbf{\\textsl{quilt}}" msgstr "" "Passado: várias implementações -- \\textsl{simple-patchsys} " "(\\textsl{cdbs}), \\textsl{dpatch}, \\textbf{\\textsl{quilt}}" #. type: itemize #: packaging-tutorial.tex:851 msgid "Each supports two \\texttt{debian/rules} targets:" msgstr "Cada um suporta dois alvos \\texttt{debian/rules}:" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules patch}: apply all patches" msgstr "\\texttt{debian/rules patch}: aplica todas as patches" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules unpatch}: de-apply all patches" msgstr "" "\\texttt{debian/rules unpatch}: retira as alterações de todas as patches" #. type: itemize #: packaging-tutorial.tex:851 msgid "More documentation: \\url{http://wiki.debian.org/debian/patches}" msgstr "Mais documentação: \\url{http://wiki.debian.org/debian/patches}" #. type: textbf{#1} #: packaging-tutorial.tex:851 msgid "New source package format with built-in patch system: 3.0 (quilt)" msgstr "" "Novo formato de pacote fonte com sistema de patch integrado: 3.0 (quilt)" #. type: itemize #: packaging-tutorial.tex:851 msgid "Recommended solution" msgstr "Solução recomendada" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "You need to learn \\textsl{quilt}\\\\ \\url{http://pkg-perl.alioth.debian." "org/howto/quilt.html}" msgstr "" "Você precisa de aprender \\textsl{quilt}\\\\ \\url{http://pkg-perl.alioth." "debian.org/howto/quilt.html}" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Patch-system-agnostic tool in \\texttt{devscripts}: \\texttt{edit-patch}" msgstr "" "Ferramenta patch-system-agnostic em \\texttt{devscripts}: \\texttt{edit-" "patch}" #. type: frame{#2} #: packaging-tutorial.tex:868 msgid "Documentation of patches" msgstr "Documentação de patches" #. type: itemize #: packaging-tutorial.tex:868 msgid "Standard headers at the beginning of the patch" msgstr "Cabeçalhos standard no inicio da patch" #. type: itemize #: packaging-tutorial.tex:868 msgid "" "Documented in DEP-3 - Patch Tagging Guidelines\\\\ \\url{http://dep.debian." "net/deps/dep3/}" msgstr "" "Documentado em DEP-3 - Patch Tagging Guidelines\\\\ \\url{http://dep.debian." "net/deps/dep3/}" #. type: lstlisting #: packaging-tutorial.tex:868 #, 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 \n" "Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123\n" "Last-Update: 2010-03-29\n" "\n" msgstr "" "[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 \n" "Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123\n" "Last-Update: 2010-03-29\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:872 #, no-wrap msgid "" "--- a/src/widgets.c\n" "+++ b/src/widgets.c\n" "@@ -101,9 +101,6 @@ struct {" msgstr "" "--- a/src/widgets.c\n" "+++ b/src/widgets.c\n" "@@ -101,9 +101,6 @@ struct {" #. type: frame{#2} #: packaging-tutorial.tex:892 msgid "Doing things during installation and removal" msgstr "Fazer coisas durante a instalação e remoção" #. type: itemize #: packaging-tutorial.tex:892 msgid "Decompressing the package is sometimes not enough" msgstr "Descomprimir o pacote por vezes não é suficiente" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Create/remove system users, start/stop services, manage " "\\textsl{alternatives}" msgstr "" "Criar/remover utilizadores do sistema, iniciar/para serviços, gerir " "\\textsl{alternativas}" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Done in \\textsl{maintainer scripts}\\\\ \\texttt{preinst, postinst, prerm, " "postrm}" msgstr "" "Feito nos \\textsl{scripts do mantenedor}\\\\ \\texttt{preinst, postinst, " "prerm, postrm}" #. type: itemize #: packaging-tutorial.tex:892 msgid "Snippets for common actions can be generated by debhelper" msgstr "Podem ser gerados fragmentos para acções comuns pelo debhelper" #. type: itemize #: packaging-tutorial.tex:892 msgid "Documentation:" msgstr "Documentação:" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Debian Policy Manual, chapter 6\\\\ {\\footnotesize \\url{http://www.debian." "org/doc/debian-policy/ch-maintainerscripts}}" msgstr "" "Manual de politicas Debian, capítulo 6\\\\ {\\footnotesize \\url{http://www." "debian.org/doc/debian-policy/ch-maintainerscripts}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Debian Developer's Reference, chapter 6.4\\\\ {\\scriptsize \\url{http://www." "debian.org/doc/developers-reference/best-pkging-practices.html}}" msgstr "" "Referência dos Desenvolvedores de Debian, capítulo 6.4\\\\ {\\scriptsize " "\\url{http://www.debian.org/doc/developers-reference/best-pkging-practices." "html}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "{\\footnotesize \\url{http://people.debian.org/~srivasta/MaintainerScripts." "html}}" msgstr "" "{\\footnotesize \\url{http://people.debian.org/~srivasta/MaintainerScripts." "html}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "Prompting the user" msgstr "Questionando o utilizador" #. type: itemize #: packaging-tutorial.tex:908 msgid "Must be done with \\textbf{debconf}" msgstr "Tem de ser feito com \\textbf{debconf}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Documentation: \\texttt{debconf-devel(7)} (\\texttt{debconf-doc} package)" msgstr "" "Documentação: \\texttt{debconf-devel(7)} (pacote \\texttt{debconf-doc})" #. type: frame{#2} #: packaging-tutorial.tex:914 msgid "Monitoring upstream versions" msgstr "Monitorizando versões do autor (upstream)" #. type: itemize #: packaging-tutorial.tex:914 msgid "" "Specify where to look in \\texttt{debian/watch} (see \\texttt{uscan(1)})" msgstr "" "Especifica onde procurar em \\texttt{debian/watch} (veja \\texttt{uscan(1)})" #. type: lstlisting #: packaging-tutorial.tex:914 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:917 #, no-wrap msgid "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " msgstr "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Debian infrastructure that makes use of \\texttt{debian/watch}:\\\\ " "\\textbf{Debian External Health Status}\\\\ \\url{http://dehs.alioth.debian." "org/}" msgstr "" "Infraestrutura Debian que faz uso de \\texttt{debian/watch}:\\\\ " "\\textbf{Debian External Health Status}\\\\ \\url{http://dehs.alioth.debian." "org/}" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Maintainer warned by emails sent to the Package Tracking System\\\\ " "\\url{http://packages.qa.debian.org/}" msgstr "" "Mantenedor do pacote avisado por emails enviados para o Sistema de " "Acompanhamento de Pacotes\\\\ \\url{http://packages.qa.debian.org/}" #. type: itemize #: packaging-tutorial.tex:931 msgid "\\texttt{uscan}: run a manual check" msgstr "\\texttt{uscan}: corre uma verificação manual" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "\\texttt{uupdate}: try to update your package to the latest upstream version" msgstr "" "\\texttt{uupdate}: tenta actualizar o seu pacote para a versão do autor mais " "recente" #. type: subsection{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System (SVN, Git)" msgstr "Empacotar com um Sistema de Controlo de Versão (SVN, Git)" #. type: frame{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System" msgstr "Empacotar com um Sistema de Controlo de Versão" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "Several tools to help manage branches and tags for your packaging work:\\\\ " "\\texttt{svn-buildpackage}, \\texttt{git-buildpackage}" msgstr "" "Várias ferramentas para ajudar a gerir ramos e etiquetas para o seu trabalho " "de empacotamento:\\\\ \\texttt{svn-buildpackage}, \\texttt{git-buildpackage}" #. type: itemize #: packaging-tutorial.tex:969 msgid "Example: \\texttt{git-buildpackage}" msgstr "Exemplo: \\texttt{git-buildpackage}" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{upstream} branch to track upstream with \\texttt{upstream/" "\\textsl{version}} tags" msgstr "" "\\texttt{upstream} ramo para acompanhar a autoria com as etiquetas " "\\texttt{upstream/\\textsl{version}}" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{master} branch tracks the Debian package" msgstr "\\texttt{master} ramo que acompanha o pacote Debian" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{debian/\\textsl{version}} tags for each upload" msgstr "\\texttt{debian/\\textsl{version}} etiquetas para cada envio (upload)" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{pristine-tar} branch to be able to rebuild the upstream tarball" msgstr "" "\\texttt{pristine-tar} ramo para ser possível recompilar o tarball do autor" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{Vcs-*} fields in \\texttt{debian/control} to locate the repository" msgstr "" "\\texttt{Vcs-*} campos em \\texttt{debian/control} para localizar o " "repositório" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Git}" msgstr "\\url{http://wiki.debian.org/Alioth/Git}" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Svn}" msgstr "\\url{http://wiki.debian.org/Alioth/Svn}" #. type: lstlisting #: packaging-tutorial.tex:969 #, 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 "" "[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" " " #. type: lstlisting #: packaging-tutorial.tex:969 #, 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 "" "[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" " " #. type: itemize #: packaging-tutorial.tex:969 msgid "" "VCS-agnostic interface: \\texttt{debcheckout}, \\texttt{debcommit}, " "\\texttt{debrelease}\\\\" msgstr "" "Interface VCS-agnostic: \\texttt{debcheckout}, \\texttt{debcommit}, " "\\texttt{debrelease}\\\\" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{debcheckout grep} $\\rightarrow$ checks out the source package from " "Git" msgstr "\\texttt{debcheckout grep} $\\rightarrow$ obtém o pacote fonte de Git" #. type: frame{#2} #: packaging-tutorial.tex:992 msgid "Backporting packages" msgstr "Portar pacotes para trás (backporting)" #. type: itemize #: packaging-tutorial.tex:992 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 "" "Objectivo: usar uma nova versão de um pacote num sistema mais antigo\\\\ ex. " "usar \\textsl{mutt} de Debian \\textsl{unstable} em Debian \\textsl{stable}" #. type: itemize #: packaging-tutorial.tex:992 msgid "General idea:" msgstr "Ideia geral:" #. type: itemize #: packaging-tutorial.tex:992 msgid "Take the source package from Debian unstable" msgstr "Obtenha o pacote fonte de Debian unstable" #. type: itemize #: packaging-tutorial.tex:992 msgid "Modify it so that it builds and works fine on Debian stable" msgstr "Modifique para que compile e funcione bem em Debian stable" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes trivial (no changes needed)" msgstr "Às vezes é trivial (sem alterações necessárias)" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes difficult" msgstr "Às vezes é difícil" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes impossible (many unavailable dependencies)" msgstr "Às vezes é impossível (muitas dependências não disponíveis)" #. type: itemize #: packaging-tutorial.tex:992 msgid "" "Some backports are provided and supported by the Debian project\\\\ " "\\url{http://backports.debian.org/}" msgstr "" "Alguns \"backports\" são disponibilizados e suportados pelo projecto Debian\\" "\\ \\url{http://backports.debian.org/}" #. type: section{#2} #: packaging-tutorial.tex:1023 msgid "Maintaining packages in Debian" msgstr "Mantendo pacotes em Debian" #. type: frame{#2} #: packaging-tutorial.tex:1023 msgid "Several ways to contribute to Debian" msgstr "Várias maneiras de contribuir para Debian" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Worst} way to contribute:" msgstr "\\textbf{Pior} maneira de contribuir:" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Package your own application" msgstr "Empacote a sua própria aplicação" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Get it into Debian" msgstr "Entre para a Debian" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Disappear" msgstr "Desapareça" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Better} ways to contribute:" msgstr "\\textbf{Melhores} maneiras de contribuir:" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Get involved in packaging teams" msgstr "Envolva-se com as equipas de empacotamento" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Many teams that focus on set of packages, and need help" msgstr "" "Muitas equipas que se focam em conjuntos de pacotes, e precisam de ajuda" #. type: itemize #: packaging-tutorial.tex:1023 msgid "List available at \\url{http://wiki.debian.org/Teams}" msgstr "Lista disponível em \\url{http://wiki.debian.org/Teams}" #. type: itemize #: packaging-tutorial.tex:1023 msgid "An excellent way to learn from more experienced contributors" msgstr "" "uma excelente maneira de aprender a partir de contribuintes mais experientes" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Adopt existing unmaintained packages (\\textsl{orphaned packages})" msgstr "Adoptar pacotes não mantidos existentes (\\textsl{pacotes órfãos})" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Bring new software to Debian" msgstr "Traga novo software para Debian" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Only if it's interesting/useful enough, please" msgstr "Apenas se for suficientemente interessante/útil, por favor" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Are there alternatives already packaged in Debian?" msgstr "Existem alternativas já empacotadas em Debian?" #. type: frame{#2} #: packaging-tutorial.tex:1061 msgid "Adopting orphaned packages" msgstr "Adoptando pacotes órfãos" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Many unmaintained packages in Debian" msgstr "Muitos pacotes não mantidos em Debian" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Full list + process: \\url{http://www.debian.org/devel/wnpp/}" msgstr "Lista completa + processo: \\url{http://www.debian.org/devel/wnpp/}" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Installed on your machine: \\texttt{wnpp-alert}" msgstr "Instalado na sua máquina: \\texttt{wnpp-alert}" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Different states:" msgstr "Estados diferentes:" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{O}rphaned: the package is unmaintained\\\\ Feel free to adopt it" msgstr "" "\\textbf{O}rphaned: o pacote não é mantido\\\\ Sinta-se livre para o adoptar" #. type: itemize #: packaging-tutorial.tex:1061 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 "" "\\textbf{RFA}: \\textbf{R}equest \\textbf{F}ou \\textbf{A}dopter\\\\ O " "mantenedor procura quem adopte, mas entretanto continua a trabalhar\\\\ " "Sinta-se livre para adoptar. É cortês enviar um mail ao actual mantenedor" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt\\\\ Someone " "intends to adopt the package\\\\ You could propose your help!" msgstr "" "\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt\\\\ Alguém " "tenciona adoptar o pacote\\\\ Você pode propor-se a ajudar!" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp\\\\ The " "maintainer is looking for help" msgstr "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp\\\\ O " "mantenedor procura ajuda" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Some unmaintained packages not detected \\arr not orphaned yet" msgstr "" "Alguns pacotes não mantidos e não detectados \\arr ainda não estão órfãos" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "When in doubt, ask \\texttt{debian-qa@lists.debian.org} \\\\ or " "\\texttt{\\#debian-qa} on \\texttt{irc.debian.org}" msgstr "" "Quando em dúvidas, pergunte a \\texttt{debian-qa@lists.debian.org} \\\\ ou " "\\texttt{\\#debian-qa} em \\texttt{irc.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1068 msgid "Adopting a package: example" msgstr "Adoptando um pacote: exemplo" #. type: lstlisting #: packaging-tutorial.tex:1068 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "From: You \n" "To: 640454@bugs.debian.org, control@bugs.debian.org\n" "Cc: Francois Marier \n" "Subject: ITA: verbiste -- French conjugator\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "From: You \n" "To: 640454@bugs.debian.org, control@bugs.debian.org\n" "Cc: Francois Marier \n" "Subject: ITA: verbiste -- French conjugator\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1072 #, no-wrap msgid "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" msgstr "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1074 #, no-wrap msgid "" "Hi,\n" "\n" msgstr "" "Hi,\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1076 #, no-wrap msgid "" "I am using verbiste and I am willing to take care of the package.\n" "\n" msgstr "" "I am using verbiste and I am willing to take care of the package.\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1078 #, no-wrap msgid "" "Cheers,\n" "\n" msgstr "" "Cheers,\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1080 #, no-wrap msgid "You" msgstr "You" #. type: itemize #: packaging-tutorial.tex:1087 msgid "" "Polite to contact the previous maintainer (especially if the package was " "RFAed, not orphaned)" msgstr "" "Seja cortês ao contactar o anterior mantenedor (especialmente se o pacote " "estava em RFA, não órfão)" #. type: itemize #: packaging-tutorial.tex:1087 msgid "Very good idea to contact the upstream project" msgstr "É uma boa ideia contactar a autoria do projecto" #. type: frame{#2} #: packaging-tutorial.tex:1111 msgid "Getting your package in Debian" msgstr "Colocando o seu pacote na Debian" #. type: itemize #: packaging-tutorial.tex:1111 msgid "You do not need any official status to get your package into Debian" msgstr "" "Você não precisa de nenhum estado oficial para ter o seu pacote na Debian" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "" "Submit an \\textbf{ITP} bug (\\textbf{I}ntend \\textbf{T}o \\textbf{P}" "ackage) using \\texttt{reportbug wnpp}" msgstr "" "Submeter um \\textbf{ITP} bug (\\textbf{I}ntend \\textbf{T}o \\textbf{P}" "ackage) usando \\texttt{reportbug wnpp}" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "Prepare a source package" msgstr "Preparar um pacote fonte" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "Find a Debian Developer that will sponsor your package" msgstr "Encontre um Desenvolvedor Debian que patrocine o seu pacote" #. type: itemize #: packaging-tutorial.tex:1111 msgid "Official status (when you are an experienced package maintainer):" msgstr "Estado oficial (quando você é um mantenedor de pacotes experiente)" #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Maintainer (DM):}\\\\ Permission to upload your own packages" "\\\\ See \\url{http://wiki.debian.org/DebianMaintainer}" msgstr "" "\\textbf{Mantenedor Debian (DM):}\\\\ Permissão para submeter os seus " "próprios pacotes\\\\ Veja \\url{http://wiki.debian.org/DebianMaintainer}" #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Developer (DD):}\\\\ Debian project member; can vote and " "upload any package" msgstr "" "\\textbf{Desenvolvedor Debian (DD):}\\\\ Membro do projecto Debian; pode " "votar e submeter (upload) qualquer pacote" #. type: frame{#2} #: packaging-tutorial.tex:1139 msgid "Things to check before asking for sponsorship" msgstr "Coisas a verificar antes de pedir patrocínio" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Debian puts \\textbf{a lot of focus on quality}" msgstr "Debian tem \\textbf{muita atenção à qualidade}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Generally, \\textbf{sponsors are hard to find and busy}" msgstr "" "Geralmente, os \\textbf{patrocinadores são difíceis de encontrar e ocupados}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Make sure your package is ready before asking for sponsorship" msgstr "Certifique-se que o seu pacote está pronto antes de pedir patrocinador" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Things to check:" msgstr "Coisas a verificar:" #. type: itemize #: packaging-tutorial.tex:1139 msgid "" "Avoid missing build-dependencies: make sure that your package build fine in " "a clean \\textsl{sid} \\textsl{chroot}" msgstr "" "Evite dependências de compilação em falta: certifique-se que o seu pacote " "compila bem num \\textsl{chroot} de \\textsl{sid} limpo" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Using \\texttt{pbuilder} is recommended" msgstr "É recomendado usar o \\texttt{pbuilder}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Run \\texttt{lintian -EviIL +pedantic} on your package" msgstr "Corra \\texttt{lintian -EviIL +pedantic} no seu pacote" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Errors must be fixed, all other problems should be fixed" msgstr "" "Os erros têm de ser corrigidos, todos os outros problemas devem ser " "corrigidos" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Do extensive testing of your package, of course" msgstr "E claro, faça testes intensivos do seu pacote" #. type: itemize #: packaging-tutorial.tex:1139 msgid "In doubt, ask for help" msgstr "Em dúvidas, peça ajuda" #. type: frame{#2} #: packaging-tutorial.tex:1174 msgid "Where to find help?" msgstr "Onde encontrar ajuda?" #. type: frame #: packaging-tutorial.tex:1174 msgid "Help you will need:" msgstr "Ajuda que irá precisar:" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Advice and answers to your questions, code reviews" msgstr "Conselhos e respostas para as suas questões, revisões de código" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Sponsorship for your uploads, once your package is ready" msgstr "" "Patrocinador para os seus envios (uploads), assim que o seu pacote esteja " "pronto" #. type: frame #: packaging-tutorial.tex:1174 msgid "You can get help from:" msgstr "Você pode obter ajuda de:" #. type: textbf{#1} #: packaging-tutorial.tex:1174 msgid "Other members of a packaging team" msgstr "Outros membros de uma equipa de empacotamento" #. type: itemize #: packaging-tutorial.tex:1174 msgid "List of teams: \\url{http://wiki.debian.org/Teams}" msgstr "Lista de equipas: \\url{http://wiki.debian.org/Teams}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "The \\textbf{Debian Mentors group} (if your package does not fit in a team)" msgstr "" "O \\textbf{Debian Mentors group} (se o seu pacote não encaixar numa equipa)" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://wiki.debian.org/DebianMentorsFaq}" msgstr "\\url{http://wiki.debian.org/DebianMentorsFaq}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "Mailing list: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (also a " "good way to learn by accident)}" msgstr "" "Lista de mail: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (também " "uma boa maneira de aprender por acaso)}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "IRC: \\texttt{\\#debian-mentors} on \\texttt{irc.debian.org}" msgstr "IRC: \\texttt{\\#debian-mentors} em \\texttt{irc.debian.org}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://mentors.debian.net/}" msgstr "\\url{http://mentors.debian.net/}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Documentation: \\url{http://mentors.debian.net/intro-maintainers}" msgstr "Documentação: \\url{http://mentors.debian.net/intro-maintainers}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\textbf{Localized mailing lists} (get help in your language)" msgstr "\\textbf{Listas de mail localizadas} (obtenha ajuda na sua linguagem)" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "\\texttt{debian-devel-\\{french,italian,portuguese,spanish\\}@lists.d.o}" msgstr "" "\\texttt{debian-devel-\\{french,italian,portuguese,spanish\\}@lists.d.o}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Full list: \\url{https://lists.debian.org/devel.html}" msgstr "Lista completa: \\url{https://lists.debian.org/devel.html}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Or users lists: \\url{https://lists.debian.org/users.html}" msgstr "Ou listas de utilizadores: \\url{https://lists.debian.org/users.html}" #. type: frame{#2} #: packaging-tutorial.tex:1192 msgid "More documentation" msgstr "Mais documentação" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developers' Corner\\\\ \\url{http://www.debian.org/devel/}\\\\ " "{\\small Links to many resources about Debian development}" msgstr "" "O Cantinho dos Desenvolvedores de Debian\\\\ \\url{http://www.debian.org/" "devel/}\\\\ {\\small Links para muitos recursos acerca do desenvolvimento de " "Debian}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian New Maintainers' Guide\\\\ \\url{http://www.debian.org/doc/maint-" "guide/}\\\\ {\\small An introduction to Debian packaging, but could use an " "update}" msgstr "" "Guia dos Novos Mantenedores de Debian\\\\ \\url{http://www.debian.org/doc/" "maint-guide/}\\\\ {\\small Uma introdução ao empacotamento de Debian, mas " "que precisa de uma actualização}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developer's Reference\\\\ \\url{http://www.debian.org/doc/developers-" "reference/}\\\\ {\\small Mostly about Debian procedures, but also some best " "packaging practices (part 6)}" msgstr "" "Referência dos Desenvolvedores de Debian\\\\ \\url{http://www.debian.org/doc/" "developers-reference/}\\\\ {\\small Maioritariamente acerca dos " "procedimentos de Debian, mas também algumas das melhores práticas de " "empacotamento (parte 6)}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "Debian Policy\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\" msgstr "" "Politica de Debian\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\" #. type: itemize #: packaging-tutorial.tex:1198 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 "" "{\\small \\begin{itemize} \\item \\small Todos os requerimentos que cada " "pacote deve satisfazer \\item \\small Politicas específicas para Perl, Java, " "Python, \\ldots \\end{itemize}}" #. type: itemize #: packaging-tutorial.tex:1203 msgid "" "Ubuntu Packaging Guide\\\\ \\url{http://developer.ubuntu.com/resources/tools/" "packaging/}" msgstr "" "Guia de Empacotamento de Ubuntu\\\\ \\url{http://developer.ubuntu.com/" "resources/tools/packaging/}" #. type: frame{#2} #: packaging-tutorial.tex:1217 msgid "Debian dashboards for maintainers" msgstr "Bancadas Debian para mantenedores" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Source package centric}: Package Tracking System (PTS)\\\\ " "\\url{http://packages.qa.debian.org/dpkg}" msgstr "" "\\textbf{Centrado no pacote fonte}: Sistema de Acompanhamento de Pacotes " "(PTS)\\\\ \\url{http://packages.qa.debian.org/dpkg}" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Maintainer/team centric}: Developer's Packages Overview (DDPO)\\\\ " "\\url{http://qa.debian.org/developer.php?login=pkg-ruby-extras-" "maintainers@lists.alioth.debian.org}" msgstr "" "\\textbf{Centrado em mantenedor/equipa}: Visão Geral de Pacotes de " "Desenvolvedores (DDPO)\\\\ \\url{http://qa.debian.org/developer.php?" "login=pkg-ruby-extras-maintainers@lists.alioth.debian.org}" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{TODO-list oriented}: Debian Maintainer Dashboard (DMD)\\\\ " "\\url{http://udd.debian.org/dmd.cgi}" msgstr "" "\\textbf{Lista-A-FAZER orientada}: Bancada do Mantenedor Debian (DMD)\\\\ " "\\url{http://udd.debian.org/dmd.cgi}" #. type: frame{#2} #: packaging-tutorial.tex:1245 msgid "Using the Debian Bug Tracking System (BTS)" msgstr "Usando o Debian Bug Tracking System (BTS)" #. type: itemize #: packaging-tutorial.tex:1245 msgid "A quite unique way to manage bugs" msgstr "Uma maneira muito única de gerir os bugs" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Web interface to view bugs" msgstr "Interface web para ver os bugs" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Email interface to make changes to bugs" msgstr "Interface de email para fazer alterações aos bugs" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Adding information to bugs:" msgstr "Adicionar informação aos bugs:" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Write to \\texttt{123456@bugs.debian.org} (does not include the submitter, " "you need to add \\texttt{123456-submitter@bugs.debian.org})" msgstr "" "Escreva para \\texttt{123456@bugs.debian.org} (não inclui a pessoa que " "submeteu, você precisa adicionar \\texttt{123456-submitter@bugs.debian.org})" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Changing bug status:" msgstr "Alterar o estado do bug:" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Send commands to \\texttt{control@bugs.debian.org}" msgstr "Envie comandos para \\texttt{control@bugs.debian.org}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Command-line interface: \\texttt{bts} command in \\texttt{devscripts}" msgstr "" "Interface de linha de comandos: comando \\texttt{bts} em \\texttt{devscripts}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Documentation: \\url{http://www.debian.org/Bugs/server-control}" msgstr "Documentação: \\url{http://www.debian.org/Bugs/server-control}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Reporting bugs: use \\texttt{reportbug}" msgstr "Reportar bugs: use \\texttt{reportbug}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Normally used with a local mail server: install \\texttt{ssmtp} or " "\\texttt{nullmailer}" msgstr "" "Normalmente usado com um servidor de mail local: instale \\texttt{ssmtp} ou " "\\texttt{nullmailer}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Or use \\texttt{reportbug -\\@-template}, then send (manually) to " "\\texttt{submit@bugs.debian.org}" msgstr "" "Ou use \\texttt{reportbug -\\@-template}, depois envie (manualmente) para " "\\texttt{submit@bugs.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1271 msgid "Using the BTS: examples" msgstr "Usando o BTS: exemplos" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Sending an email to the bug and the submitter:\\\\ \\url{http://bugs.debian." "org/cgi-bin/bugreport.cgi?bug=680822\\#10}" msgstr "" "Enviar um email para o bug e para quem o submeteu:\\\\ \\url{http://bugs." "debian.org/cgi-bin/bugreport.cgi?bug=680822\\#10}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Tagging and changing the severity:\\\\ \\url{http://bugs.debian.org/cgi-bin/" "bugreport.cgi?bug=680227\\#10}" msgstr "" "Etiquetar e alterar a severidade:\\\\ \\url{http://bugs.debian.org/cgi-bin/" "bugreport.cgi?bug=680227\\#10}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Reassigning, changing the severity, retitling \\ldots: \\\\ \\url{http://" "bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#93}" msgstr "" "Re-atribuir, alterar a severidade, mudar o título \\ldots: \\\\ \\url{http://" "bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#93}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "\\texttt{notfound}, \\texttt{found}, \\texttt{notfixed}, \\texttt{fixed} are " "for \\textbf{version-tracking} \\\\ See \\url{https://wiki.debian.org/" "HowtoUseBTS\\#Version\\_tracking}" msgstr "" "\\texttt{notfound}, \\texttt{found}, \\texttt{notfixed}, \\texttt{fixed} são " "para \\textbf{version-tracking} \\\\ Veja \\url{https://wiki.debian.org/" "HowtoUseBTS\\#Version\\_tracking}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Using usertags: \\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;" "bug=642267}\\\\ See \\url{https://wiki.debian.org/bugs.debian.org/usertags}" msgstr "" "Usando usertags: \\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;" "bug=642267}\\\\ Veja \\url{https://wiki.debian.org/bugs.debian.org/usertags}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "BTS Documentation:" msgstr "Documentação de BTS:" #. type: itemize #: packaging-tutorial.tex:1271 msgid "\\url{http://www.debian.org/Bugs/}" msgstr "\\url{http://www.debian.org/Bugs/}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "\\url{https://wiki.debian.org/HowtoUseBTS}" msgstr "\\url{https://wiki.debian.org/HowtoUseBTS}" #. type: frame{#2} #: packaging-tutorial.tex:1298 msgid "More interested in Ubuntu?" msgstr "Mais interessado em Ubuntu?" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu mainly manages the divergence with Debian" msgstr "Ubuntu maioritariamente gere a divergência com Debian" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "No real focus on specific packages\\\\ Instead, collaboration with Debian " "teams" msgstr "" "Nenhuma focagem real em pacotes específicos\\\\ Em vez disso, colaboração " "com as equipas de Debian" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "Usually recommend uploading new packages to Debian first\\\\ \\url{https://" "wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" msgstr "" "Normalmente é recomendado enviar primeiro os novos pacote para Debian\\\\ " "\\url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Possibly a better plan:" msgstr "Possivelmente um plano melhor:" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Get involved in a Debian team and act as a bridge with Ubuntu" msgstr "Envolva-se numa equipa de Debian e actue como uma ponte com Ubuntu" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Help reduce divergence, triage bugs in Launchpad" msgstr "Ajuda reduz divergência, triagem de bugs no Launchpad" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Many Debian tools can help:" msgstr "Muitas ferramentas de Debian podem ajudar:" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu column on the Developer's packages overview" msgstr "Coluna do Ubuntu na visão geral de pacotes de Desenvolvedores" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu box on the Package Tracking System" msgstr "Caixa do Ubuntu no Sistema de Acompanhamento de Pacotes" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Receive launchpad bugmail via the PTS" msgstr "Recebe bugmail do launchpad via PTS" #. type: frame{#2} #: packaging-tutorial.tex:1328 msgid "Conclusions" msgstr "Conclusões" #. type: itemize #: packaging-tutorial.tex:1328 msgid "You now have a full overview of Debian packaging" msgstr "Agora você uma visão geral completa do empacotamento de Debian" #. type: itemize #: packaging-tutorial.tex:1328 msgid "But you will need to read more documentation" msgstr "Mas você irá precisar de ler mais documentação" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Best practices have evolved over the years" msgstr "As melhores práticas evoluíram com os anos" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "If not sure, use the \\textbf{dh} packaging helper, and the \\textbf{3.0 " "(quilt)} format" msgstr "" "Em dúvida, use o ajudante de empacotamento \\textbf{dh}, e o formato " "\\textbf{3.0 (quilt)}" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Things that were not covered in this tutorial:" msgstr "Coisas que não foram cobertas por este manual:" #. type: itemize #: packaging-tutorial.tex:1328 msgid "UCF -- manage user changes to configuration files when upgrading" msgstr "" "UCF -- gere as alterações do utilizador nos ficheiros de configuração quando " "actualiza" #. type: itemize #: packaging-tutorial.tex:1328 msgid "dpkg triggers -- group similar maintainer scripts actions together" msgstr "" "dpkg triggers -- agrupa e junta acções semelhantes de scripts de mantenedor" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian development organization:" msgstr "Organização de desenvolvimento de Debian:" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "Suites: stable, testing, unstable, experimental, security, *-updates, " "backports, \\ldots" msgstr "" "Suites: stable, testing, unstable, experimental, security, *-updates, " "backports, \\ldots" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian Blends -- subsets of Debian targeting specific groups" msgstr "" "Debian Blends -- subconjuntos de Debian que apontam a grupos específicos" #. type: centerline{#1} #: packaging-tutorial.tex:1328 msgid "\\large Feedback: \\textbf{packaging-tutorial@packages.debian.org}" msgstr "\\large Feedback: \\textbf{packaging-tutorial@packages.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1331 msgid "Legal stuff" msgstr "Matérias legais" #. type: frame #: packaging-tutorial.tex:1334 msgid "Copyright \\copyright 2011--2013 Lucas Nussbaum -- lucas@debian.org" msgstr "Copyright \\copyright 2011--2013 Lucas Nussbaum -- lucas@debian.org" #. type: frame #: packaging-tutorial.tex:1350 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 "" "{\\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} }" #. type: frame{#2} #: packaging-tutorial.tex:1379 msgid "Contribute to this tutorial" msgstr "Contribua para este manual" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Contribute:" msgstr "Contribuir:" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{apt-get source packaging-tutorial}}" msgstr "{\\small \\texttt{apt-get source packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{debcheckout packaging-tutorial}}" msgstr "{\\small \\texttt{debcheckout packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\texttt{git clone\\\\ git://git.debian.org/collab-maint/packaging-" "tutorial.git}}" msgstr "" "{\\small \\texttt{git clone\\\\ git://git.debian.org/collab-maint/packaging-" "tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" msgstr "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small Open bugs: \\url{bugs.debian.org/src:packaging-tutorial}}" msgstr "{\\small Bugs abertos: \\url{bugs.debian.org/src:packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Provide feedback:" msgstr "Forneça comentários de retorno (Feedback):" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "\\href{mailto:packaging-tutorial@packages.debian.org}" "{\\textbf{\\texttt{mailto:packaging-tutorial@packages.debian.org}}}" msgstr "" "\\href{mailto:packaging-tutorial@packages.debian.org}" "{\\textbf{\\texttt{mailto:packaging-tutorial@packages.debian.org}}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be added to this tutorial?}" msgstr "{\\small o que deve ser adicionado a este manual?}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be improved?}" msgstr "{\\small O que deve ser melhorado?}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{reportbug packaging-tutorial}}" msgstr "{\\small \\texttt{reportbug packaging-tutorial}}" #. type: frame{#2} #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Practical session 2: packaging GNUjump" msgstr "Sessão prática 2: empacotar o GNUjump" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "" "Download GNUjump 1.0.8 from \\url{http://ftp.gnu.org/gnu/gnujump/" "gnujump-1.0.8.tar.gz}" msgstr "" "Faça o download de GNUjump 1.0.8 de \\url{http://ftp.gnu.org/gnu/gnujump/" "gnujump-1.0.8.tar.gz}" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Create a Debian package for it" msgstr "Crie um pacote Debian para ele" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Install build-dependencies so that you can build the package" msgstr "Instale as dependências de compilação para que possa compilar o pacote" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Get a basic working package" msgstr "Obtenha um pacote funcional básico" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Finish filling \\texttt{debian/control} and other files" msgstr "Acabe de preencher \\texttt{debian/control} e outros ficheiros" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Enjoy" msgstr "Aprecie" #. type: frame{#2} #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Practical session 3: packaging a Java library" msgstr "Sessão prática 3: empacotando uma biblioteca Java" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Take a quick look at some documentation about Java packaging:\\\\" msgstr "" "Faça uma leitura rápida a alguma documentação sobre empacotamento de Java:\\" "\\" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java}" msgstr "\\url{http://wiki.debian.org/Java}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java/Packaging}" msgstr "\\url{http://wiki.debian.org/Java/Packaging}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" msgstr "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" msgstr "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 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 "" "Papel e slides de uma reunião Debconf10 acerca de 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}}" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Download IRClib from \\url{http://moepii.sourceforge.net/}" msgstr "Descarregue o IRClib de \\url{http://moepii.sourceforge.net/}" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Package it" msgstr "Empacote-o" #. type: frame{#2} #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Practical session 4: packaging a Ruby gem" msgstr "Sessão prática 4: empacotar uma gema Ruby" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Take a quick look at some documentation about Ruby packaging:\\\\" msgstr "" "Dê uma leitura rápida a alguma documentação acerca de empacotamento de Ruby:" "\\\\" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Ruby}" msgstr "\\url{http://wiki.debian.org/Ruby}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby}" msgstr "\\url{http://wiki.debian.org/Teams/Ruby}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" msgstr "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (in the \\texttt{gem2deb} " "package)" msgstr "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (no pacote \\texttt{gem2deb})" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "Create a basic Debian source package from the \\texttt{net-ssh} gem:\\\\ " "\\texttt{gem2deb net-ssh}" msgstr "" "Crie um pacote fonte Debian básico a partir da gema \\texttt{net-ssh}:\\\\ " "\\texttt{gem2deb net-ssh}" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Improve it so that it becomes a proper Debian package" msgstr "Melhore-o para que se torne num pacote Debian apropriado" #. type: section{#2} #: packaging-tutorial.tex:1445 msgid "Answers to practical sessions" msgstr "Respostas às sessões práticas" #. type: center #: packaging-tutorial.tex:1451 msgid "\\LARGE Answers to" msgstr "\\LARGE Respostas para" #. type: center #: packaging-tutorial.tex:1451 msgid "[0.5em] practical sessions" msgstr "[0.5em] sessões práticas" #. type: frame{#2} #: packaging-tutorial.tex:1509 msgid "Fetching the source" msgstr "Obtendo a fonte" #. type: enumerate #: packaging-tutorial.tex:1509 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package" msgstr "" "Vá a \\url{http://ftp.debian.org/debian/pool/main/g/grep/} e descarregue a " "versão 2.6.3-3 do pacote" #. type: itemize #: packaging-tutorial.tex:1509 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 "" "Use o dget para descarregar o ficheiro \\texttt{.dsc}:\\\\ {\\small " "\\texttt{dget http://cdn.debian.net/debian/pool/main/g/grep/grep\\_2.6.3-3." "dsc}}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "" "According to \\url{http://packages.qa.debian.org/grep}, \\texttt{grep} " "version 2.6.3-3 is currently in \\textsl{stable} (\\textsl{squeeze}). 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.6.3-3}\\\\ or " "\\texttt{apt-get source grep/stable}\\\\ or, if you feel lucky: \\texttt{apt-" "get source grep}" msgstr "" "De acordo com \\url{http://packages.qa.debian.org/grep}, \\texttt{grep} a " "versão 2.6.3-3 está actualmente em \\textsl{stable} (\\textsl{squeeze}). Se " "você tem linhas \\texttt{deb-src} para \\textsl{squeeze} no seu \\texttt{/" "etc/apt/sources.list}, pode usar:\\\\ \\texttt{apt-get source grep=2.6.3-3}\\" "\\ ou \\texttt{apt-get source grep/stable}\\\\ ou, se estiver com sorte: " "\\texttt{apt-get source grep}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "The \\texttt{grep} source package is composed of three files:" msgstr "O pacote fonte do \\texttt{grep} é composto por três ficheiros:" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.dsc}" msgstr "\\texttt{grep\\_2.6.3-3.dsc}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" msgstr "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3.orig.tar.bz2}" msgstr "\\texttt{grep\\_2.6.3.orig.tar.bz2}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "This is typical of the \"3.0 (quilt)\" format." msgstr "Isto é típico do formato \"3.0 (quilt)\"." #. type: itemize #: packaging-tutorial.tex:1509 msgid "" "If needed, uncompress the source with\\\\ \\texttt{dpkg-source -x grep" "\\_2.6.3-3.dsc}" msgstr "" "Se necessário, descomprima a fonte com\\\\ \\texttt{dpkg-source -x grep" "\\_2.6.3-3.dsc}" #. type: frame{#2} #: packaging-tutorial.tex:1528 msgid "Looking around and building the package" msgstr "Observando e compilando o pacote" #. type: itemize #: packaging-tutorial.tex:1528 msgid "" "According to \\texttt{debian/control}, this package only generates one " "binary package, named \\texttt{grep}." msgstr "" "De acordo com \\texttt{debian/control}, este pacote apenas gera um pacote " "binário, chamado \\texttt{grep}." #. type: itemize #: packaging-tutorial.tex:1528 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 "" "De acordo com \\texttt{debian/rules}, este pacote é típico de empacotamento " "\\textsl{classic} debhelper, sem usar \\textsl{CDBS} ou \\textsl{dh}. Pode-" "se ver as várias chamadas a comandos \\texttt{dh\\_*} em \\texttt{debian/" "rules}." #. type: itemize #: packaging-tutorial.tex:1537 msgid "Use \\texttt{apt-get build-dep grep} to fetch the build-dependencies" msgstr "" "Use \\texttt{apt-get build-dep grep} para obter as dependências de compilação" #. type: itemize #: packaging-tutorial.tex:1537 msgid "" "Then \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc} (Takes about 1 " "min)" msgstr "" "Depois \\texttt{debuild} ou \\texttt{dpkg-buildpackage -us -uc} (Demora " "cerca de 1 minuto)" #. type: frame{#2} #: packaging-tutorial.tex:1541 msgid "Editing the changelog" msgstr "Editando o registo de alterações (changelog)" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "\\texttt{debian/changelog} is a text file. You could edit it and add a new " "entry manually." msgstr "" "\\texttt{debian/changelog} é um ficheiro de texto Você pode editá-lo e " "adicionar uma nova entrada manualmente." #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Or you can use \\texttt{dch -i}, which will add an entry and open the editor" msgstr "" "Ou você pode usar \\texttt{dch -i}, que irá adicionar uma entrada e abrir o " "editor" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "The name and email can be defined using the \\texttt{DEBFULLNAME} and " "\\texttt{DEBEMAIL} environment variables" msgstr "" "O nome e email podem ser definidos usando as variáveis de ambiente " "\\texttt{DEBFULLNAME} e \\texttt{DEBEMAIL}" #. type: itemize #: packaging-tutorial.tex:1558 msgid "After that, rebuild the package: a new version of the package is built" msgstr "Após isso, recompile o pacote: é compilada uma nova versão do pacote" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Package versioning is detailed in section 5.6.12 of the Debian policy\\\\ " "\\url{http://www.debian.org/doc/debian-policy/ch-controlfields}" msgstr "" "O \"versionamento\" do pacote está detalhado na secção 5.6.12 da politica " "Debian\\\\ \\url{http://www.debian.org/doc/debian-policy/ch-controlfields}" #. type: frame{#2} #: packaging-tutorial.tex:1562 msgid "Disabling Perl regexp support and rebuilding" msgstr "Desactivando suporte regexp de Perl e recompilando" #. type: itemize #: packaging-tutorial.tex:1578 msgid "" "Check with \\texttt{./configure -{}-help}: the option to disable Perl regexp " "is \\texttt{-{}-disable-perl-regexp}" msgstr "" "Verifique com \\texttt{./configure -{}-help}: a opção para desactivar Perl " "regexp é \\texttt{-{}-disable-perl-regexp}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Edit \\texttt{debian/rules} and find the \\texttt{./configure} line" msgstr "Edite \\texttt{debian/rules} e encontre a linha \\texttt{./configure}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Add \\texttt{-{}-disable-perl-regexp}" msgstr "Adicione \\texttt{-{}-disable-perl-regexp}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Rebuild with \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc}" msgstr "Recompile com \\texttt{debuild} ou \\texttt{dpkg-buildpackage -us -uc}" #. type: frame{#2} #: packaging-tutorial.tex:1582 msgid "Comparing and testing the packages" msgstr "Comparar e testar os pacotes" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the binary packages: \\texttt{debdiff ../*changes}" msgstr "Compare os pacotes binários: \\texttt{debdiff ../*changes}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the source packages: \\texttt{debdiff ../*dsc}" msgstr "Compare os pacotes fonte: \\texttt{debdiff ../*dsc}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "Install the newly built package: \\texttt{debi}\\\\ Or \\texttt{dpkg -i ../" "grep\\_}" msgstr "" "Instale o pacote recentemente compilado: \\texttt{debi}\\\\ Ou \\texttt{dpkg " "-i ../grep\\_}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "\\texttt{grep -P foo} no longer works!" msgstr "\\texttt{grep -P foo} não funciona mais!" #. type: frame #: packaging-tutorial.tex:1608 msgid "Or not: reinstall the previous version of the package:" msgstr "Ou não: reinstale a versão anterior do pacote:" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= previous " "version)}" msgstr "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= previous " "version)}" #. type: frame{#2} #: packaging-tutorial.tex:1655 packaging-tutorial.tex:1769 #: packaging-tutorial.tex:1811 msgid "Step by step\\ldots" msgstr "Passo a passo\\ldots" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" msgstr "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" msgstr "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" msgstr "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{cd gnujump-1.0.8/}" msgstr "\\texttt{cd gnujump-1.0.8/}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{dh\\_make}" msgstr "\\texttt{dh\\_make}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "Type of package: single binary (for now)" msgstr "Tipo de pacote: binário simples (por agora)" #. type: lstlisting #: packaging-tutorial.tex:1655 #, 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 "" "[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" #. type: frame{#2} #: packaging-tutorial.tex:1682 packaging-tutorial.tex:1835 msgid "Step by step\\ldots (2)" msgstr "Passo a passo\\ldots (2)" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Look at \\texttt{debian/changelog}, \\texttt{debian/rules}, \\texttt{debian/" "control}\\\\ (auto-filled by \\textbf{dh\\_make})" msgstr "" "Observe \\texttt{debian/changelog}, \\texttt{debian/rules}, \\texttt{debian/" "control}\\\\ (auto-preenchido por \\textbf{dh\\_make})" #. type: itemize #: packaging-tutorial.tex:1682 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 "" "In \\texttt{debian/control}:\\\\ \\texttt{Build-Depends: debhelper (>= " "7.0.50~), autotools-dev}\\\\ Lista as \\textsl{build-dependencies} = pacotes " "necessários para compilar o pacote" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Try to build the package as-is (thanks to \\textbf{dh} magic)" msgstr "Tenta compilar o pacote como está (graças à magia do \\textbf{dh})" #. type: itemize #: packaging-tutorial.tex:1682 msgid "And add build-dependencies, until it builds" msgstr "E adicione as dependências de compilação, até que compile" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Hint: use \\texttt{apt-cache search} and \\texttt{apt-file} to find the " "packages" msgstr "" "Dica: use \\texttt{apt-cache search} e \\texttt{apt-file} para encontrar os " "pacotes" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Example:" msgstr "Exemplo:" #. type: lstlisting #: packaging-tutorial.tex:1682 #, 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 "" "[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!" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "$\\rightarrow$ Add \\textbf{libsdl1.2-dev} to Build-Depends and install it." msgstr "" "$\\rightarrow$ Adicione \\textbf{libsdl1.2-dev} às Build-Depends e instale-o." #. type: itemize #: packaging-tutorial.tex:1682 msgid "Better: use \\textbf{pbuilder} to build in a clean environment" msgstr "Melhor: use \\textbf{pbuilder} para compilar num ambiente limpo" #. type: frame{#2} #: packaging-tutorial.tex:1710 packaging-tutorial.tex:1849 msgid "Step by step\\ldots (3)" msgstr "Passo a passo\\ldots (3)" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "After installing \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-" "mixer1.2-dev}, the package builds fine." msgstr "" "Após instalar \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-mixer1.2-" "dev}, o pacote compila bem." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debc} to list the content of the generated package." msgstr "Use \\texttt{debc} para listar o conteúdo do pacote gerado." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debi} to install it and test it." msgstr "Use \\texttt{debi} para o instalar e testar." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Test the package with \\texttt{lintian}" msgstr "Teste o pacote com \\texttt{lintian}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "While not a strict requirement, it is recommended that packages uploaded to " "Debian are \\textsl{lintian-clean}" msgstr "" "Embora não seja um requerimento estrito, é recomendado que os pacotes " "enviados para Debian sejam \\textsl{lintian-clean} (passaram o teste do " "lintian)" #. type: itemize #: packaging-tutorial.tex:1710 msgid "More problems can be listed using \\texttt{lintian -EviIL +pedantic}" msgstr "" "Mais problemas podem ser listados usando \\texttt{lintian -EviIL +pedantic}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Some hints:" msgstr "Algumas dicas:" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Remove the files that you don't need in \\texttt{debian/}" msgstr "Remova os ficheiros que você não precisa em \\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Fill in \\texttt{debian/control}" msgstr "Preencha \\texttt{debian/control}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Install the executable to \\texttt{/usr/games} by overriding \\texttt{dh" "\\_auto\\_configure}" msgstr "" "Instale o executável para \\texttt{/usr/games} ao sobrepor \\texttt{dh\\_auto" "\\_configure}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Use \\textsl{hardening} compiler flags to increase security.\\\\ See " "\\url{http://wiki.debian.org/Hardening}" msgstr "" "Use flags de compilador \\textsl{hardening} para aumentar a segurança.\\\\ " "Veja \\url{http://wiki.debian.org/Hardening}" #. type: frame{#2} #: packaging-tutorial.tex:1723 msgid "Step by step\\ldots (4)" msgstr "Passo a passo\\ldots (4)" #. type: itemize #: packaging-tutorial.tex:1723 msgid "Compare your package with the one already packaged in Debian:" msgstr "Compare o seu pacote com aquele já empacotado em Debian:" #. type: itemize #: packaging-tutorial.tex:1723 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 "" "Divide os ficheiros de dados para um segundo pacote, que é o mesmo para " "todas as arquitecturas ($\\rightarrow$ poupa espaço no arquivo de Debian)" #. type: itemize #: packaging-tutorial.tex:1723 msgid "" "It installs a .desktop file (for the GNOME/KDE menus) and also integrates " "into the Debian menu" msgstr "" "Instala um ficheiro .desktop (para os menus de GNOME/KDE) e também o integra " "no menu Debian" #. type: itemize #: packaging-tutorial.tex:1723 msgid "It fixes a few minor problems using patches" msgstr "Corrige alguns problemas menores usando patches" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{apt-get install javahelper}" msgstr "\\texttt{apt-get install javahelper}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Create a basic source package: \\texttt{jh\\_makepkg}" msgstr "Crie um pacote fonte básico: \\texttt{jh\\_makepkg}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Library" msgstr "Biblioteca" #. type: itemize #: packaging-tutorial.tex:1769 msgid "None" msgstr "Nenhum" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Default Free compiler/runtime" msgstr "Compilador/executor em tempo real Livre Predefinido" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Look at and fix \\texttt{debian/*}" msgstr "Observe e corrija \\texttt{debian/*}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{dpkg-buildpackage -us -uc} or \\texttt{debuild}" msgstr "\\texttt{dpkg-buildpackage -us -uc} ou \\texttt{debuild}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{lintian}, \\texttt{debc}, etc." msgstr "\\texttt{lintian}, \\texttt{debc}, etc." #. type: itemize #: packaging-tutorial.tex:1769 msgid "Compare your result with the \\texttt{libirclib-java} source package" msgstr "Compare o seu resultado com o pacote fonte \\texttt{libirclib-java}" #. type: frame #: packaging-tutorial.tex:1811 msgid "\\texttt{gem2deb net-ssh}:" msgstr "\\texttt{gem2deb net-ssh}:" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Downloads the gem from rubygems.org" msgstr "Descarrega a gema de rubygems.org" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Creates a suitable .orig.tar.gz archive, and untar it" msgstr "Cria um arquivo .orig.tar.gz apropriado e descompacta-o" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Initializes a Debian source package based on the gem's metadata" msgstr "Inicializa um pacote fonte Debian baseado nos meta-dados da gema" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Named \\texttt{ruby-\\textsl{gemname}}" msgstr "Chamado \\texttt{ruby-\\textsl{gemname}}" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Tries to build the Debian binary package (this might fail)" msgstr "Tenta compilar o pacote binário Debian (isto pode falhar)" #. type: frame #: packaging-tutorial.tex:1811 msgid "" "\\texttt{dh\\_ruby} (included in \\textsl{gem2deb}) does the Ruby-specific " "tasks:" msgstr "" "\\texttt{dh\\_ruby} (incluído em \\textsl{gem2deb}) faz as tarefas " "específicas de Ruby:" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Build C extensions for each Ruby version" msgstr "Compila extensões de C para cada versão de Ruby" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Copy files to their destination directory" msgstr "Copie os ficheiros para o sue directório de destino" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Update shebangs in executable scripts" msgstr "Actualiza shebangs nos scripts executáveis" #. type: itemize #: packaging-tutorial.tex:1811 msgid "" "Run tests defined in \\texttt{debian/ruby-tests.rb} or \\texttt{debian/ruby-" "test-files.yaml}, as well as various other checks" msgstr "" "Corra os testes definido em \\texttt{debian/ruby-tests.rb} ou " "\\texttt{debian/ruby-test-files.yaml}, assim como várias outras verificações" #. type: frame #: packaging-tutorial.tex:1835 msgid "Improve the generated package:" msgstr "Melhore o pacote gerado" #. Translators: #. This context is very sensitive to line length. If you #. hit errors building the package around this line in your translated version #. see, e.g. in the Spanish or German version for versions with explicit line #. breaks for the translation #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Run \\texttt{debclean} to clean the source tree. Look at \\texttt{debian/}." msgstr "" "Corra \\texttt{debclean} para limpar a árvore fonte. Veja em " "\\texttt{debian/}." #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{changelog} and \\texttt{compat} should be correct" msgstr "\\texttt{changelog} e \\texttt{compat} devem estar correctos" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Edit \\texttt{debian/control}: uncomment \\texttt{Homepage}, improve " "\\texttt{Description}" msgstr "" "Edite \\texttt{debian/control}: descomente \\texttt{Homepage}, melhore " "\\texttt{Description}" #. type: itemize #: packaging-tutorial.tex:1835 msgid "Write a proper \\texttt{copyright} file based on the upstream files" msgstr "" "Escreva um ficheiro \\texttt{copyright} apropriado com base nos ficheiros do " "autor" #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{ruby-net-ssh.docs}: install \\texttt{README.rdoc}" msgstr "\\texttt{ruby-net-ssh.docs}: instale \\texttt{README.rdoc}" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "\\texttt{ruby-tests.rb}: run the tests. In that case, it is enough to do:\\" "\\ \\verb+$: << 'test' << 'lib' << '.'+\\\\ \\verb+require 'test/test_all." "rb'+" msgstr "" "\\texttt{ruby-tests.rb}: corre os testes. Neste caso é suficiente fazer:\\\\ " "\\verb+$: << 'test' << 'lib' << '.'+\\\\ \\verb+require 'test/test_all.rb'+" #. type: frame #: packaging-tutorial.tex:1849 msgid "Build the package. It fails to build. There are two problems:" msgstr "Compile o pacote. Ele falha a compilar. Existem dois problemas:" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "You need to disable the \\texttt{gem} call in the test suite.\\\\ In " "\\texttt{test/common.rb}, remove the \\verb+gem \"test-unit\"+ line:" msgstr "" "Você precisa de desactiva a chamada \\texttt{gem} na suite de teste.\\\\ Em " "\\texttt{test/common.rb}, remova a linha \\verb+gem \"test-unit\"+:" #. type: itemize #: packaging-tutorial.tex:1849 msgid "\\texttt{edit-patch disable-gem.patch}" msgstr "\\texttt{edit-patch disable-gem.patch}" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "Edit \\texttt{test/common.rb}, remove the \\texttt{gem} line. Exit the sub-" "shell" msgstr "" "Edite \\texttt{test/common.rb}, remova a linha \\texttt{gem}. Saia da sub-" "shell" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Describe the changes in \\texttt{debian/changelog}" msgstr "Descreva as alterações em \\texttt{debian/changelog}" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Document the patch in \\texttt{debian/patches/disable-gem.patch}" msgstr "Documente a patch em \\texttt{debian/patches/disable-gem.patch}" #. type: itemize #: packaging-tutorial.tex:1854 msgid "" "The package lacks a build-dependency on \\texttt{ruby-mocha}, which is used " "by the test suite (you might need to build your package in a clean " "environment, using \\texttt{pbuilder}, to reproduce that problem)" msgstr "" "O pacote tem falta de dependência de compilação em \\texttt{ruby-mocha}, que " "é usado pela suite de teste (talvez tenha que compilar o seu pacote num " "ambiente limpo, usando \\texttt{pbuilder}, para reproduzir este problema)" #. type: itemize #: packaging-tutorial.tex:1857 msgid "Add \\texttt{ruby-mocha} to the package's \\texttt{Build-Depends}" msgstr "Adicione \\texttt{ruby-mocha} às \\texttt{Build-Depends} do pacote" #. type: itemize #: packaging-tutorial.tex:1868 msgid "" "\\textsl{gem2deb} copies the dependencies documented in the \\textsl{gem} as " "comments in \\texttt{debian/control}, but \\textsl{mocha} is not listed as a " "development dependency by the gem (that's a bug in the gem)" msgstr "" "\\textsl{gem2deb} copia as dependências documentadas em \\textsl{gem} como " "comentários em \\texttt{debian/control}, mas \\textsl{mocha} não está " "listado como uma dependência de desenvolvimento pela gema (é um bug na gema)" #. type: frame #: packaging-tutorial.tex:1868 msgid "" "Compare your package with the \\texttt{ruby-net-ssh} package in the Debian " "archive" msgstr "" "Compare o seu pacote com o pacote \\texttt{ruby-net-ssh} no arquivo Debian" packaging-tutorial-0.12/po4a/po/ru.po0000644000000000000000000044703512234414737014402 0ustar # Translation of packaging-tutorial documentation to Russian # Copyright (C) Lev Lamberov , 2013 # This file is distributed under the same license as the package-tutorial package. # msgid "" msgstr "" "Project-Id-Version: package-tutorial 0.10\n" "POT-Creation-Date: 2013-10-29 20:42+0100\n" "PO-Revision-Date: 2013-09-16 16:07+0200\n" "Last-Translator: Lev Lamberov \n" "Language-Team: ru \n" "Language: Russian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: Plain text #: packaging-tutorial.tex:4 msgid "\\mode \\usetheme{debian}" msgstr "\\mode \\usetheme{debian}" #. 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 "\\usepackage{debiantutorial.ru} \\usepackage[russian]{babel}" #. type: title{#2} #: packaging-tutorial.tex:14 msgid "Debian Packaging Tutorial" msgstr "Руководство по созданию пакетов Debian" #. type: author{#2} #: packaging-tutorial.tex:14 msgid "" "Lucas Nussbaum\\\\{\\small\\texttt{packaging-tutorial@packages.debian.org}}" msgstr "" "Лукас Нуссбаум\\\\{\\small\\texttt{packaging-tutorial@packages.debian.org}}" #. 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 #, fuzzy #| msgid "version 0.10 -- 2013-08-20" msgid "version 0.11 -- 2013-10-29" msgstr "version 0.10 -- 2013-08-20" #. 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 "" "Цель: \\textbf{сообщить вам то, что вам действительно нужно знать о создании " "пакетов Debian}" #. 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 "Взаимодействие с сообществом Debian" #. type: itemize #: packaging-tutorial.tex:52 msgid "Become a Debian power-user" msgstr "Становимся продвинутым пользователем Debian" #. 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 "" "Большая часть изложения применима к производным от Debian дистрибутивам" #. type: itemize #: packaging-tutorial.tex:52 msgid "That includes Ubuntu" msgstr "Включая и Ubuntu" #. 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 "Debian" #. type: textbf{#1} #: packaging-tutorial.tex:84 msgid "GNU/Linux distribution" msgstr "Дистрибутив GNU/Linux" #. type: itemize #: packaging-tutorial.tex:84 msgid "1st major distro developed ``openly in the spirit of GNU''" msgstr "Первый крупный дистрибутив, разрабатываемый ``открыто в духе GNU''" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Non-commercial}, built collaboratively by over 1,000 volunteers" msgstr "" "\\textbf{Некоммерческий}, создан совместно более чем 1,000 добровольцами" #. type: itemize #: packaging-tutorial.tex:84 msgid "3 main features:" msgstr "3 основных особенности" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Quality} -- culture of technical excellence\\\\ {\\small\\sl We " "release when it's ready}" msgstr "" "\\textbf{Качество} -- культура технического совершенства\\\\ {\\small\\sl Мы " "выпускаем очередную версию, только когда она готова}" #. 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 "" "\\textbf{Свобода} -- разработчики и пользователи связаны " "\\textsl{Общественным договором}\\\\ Продвигаем культуру Свободного ПО с " "1993 года" #. 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 "" "\\textbf{Независимость} -- нет (ни одной) компаний, опекающих Debian\\\\ " "Открытый процесс принятия решений (\\textsl{управление тех, кто делает} + " "\\textsl{демократия})" #. type: itemize #: packaging-tutorial.tex:84 msgid "\\textbf{Amateur} in the best sense: done for the love of it" msgstr "" "\\textbf{Любительский} дистрибутив в лучшем смысле этого слова: создаётся " "ради него самого" #. type: frame{#2} #: packaging-tutorial.tex:105 msgid "Debian packages" msgstr "Пакеты Debian" #. type: itemize #: packaging-tutorial.tex:105 msgid "\\textbf{.deb} files (binary packages)" msgstr "Файлы \\textbf{.deb} (двоичные пакеты)" #. 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 "Один из двух наиболее распространённых форматов пакетов (наряду с RPM)" #. 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 "" "30,000 двоичных пакетов в Debian\\\\ $\\rightarrow$ для большей части " "доступного свободного ПО создан пакет Debian!" #. type: itemize #: packaging-tutorial.tex:105 msgid "For 12 ports (architectures), including 2 non-Linux (Hurd; KFreeBSD)" msgstr "" "12 переносов (архитектур), включая переносы на отличное от Linux ядро (Hurd; " "kFreeBSD)" #. type: itemize #: packaging-tutorial.tex:105 msgid "Also used by 120 Debian derivative distributions" msgstr "Используется 120 ответвлениями от дистрибутива Debian" #. type: frame{#2} #: packaging-tutorial.tex:108 packaging-tutorial.tex:133 msgid "The Deb package format" msgstr "Формат пакетов deb" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{.deb} file: an \\texttt{ar} archive" msgstr "Файл \\texttt{.deb}: архив \\texttt{ar}" #. 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 "" "\\texttt{debian-binary}: версия формата файла deb, " "\\texttt{\"2.0\\textbackslash{}n\"}" #. 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 "" "\\texttt{control.tar.gz}: метаданные о пакете\\\\ {\\small " "\\texttt{\\textbf{control}, md5sums, (pre|post)(rm|inst), triggers, shlibs}, " "\\ldots}" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{data.tar.gz}: data files of the package" msgstr "\\texttt{data.tar.gz}: файлы данных пакета" #. 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 "" "Можно создавать файлы \\texttt{.deb} вручную\\\\ {\\footnotesize " "\\url{http://tldp.org/HOWTO/html\\_single/Debian-Binary-Package-Building-" "HOWTO/}}" #. 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 "Настоящее руководство: создание пакетов Debian способом Debian" #. type: frame{#2} #: 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 "Доступ к системе Debian (или Ubuntu) с правами суперпользователя" #. 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 "" "\\textbf{build-essential}: имеет зависимости от пакетов, которые, как это " "предполагается, доступны на машине разработчика (не нужно указывать их в " "поле \\texttt{Build-Depends:} управляющего файла вашего пакета)" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "includes a dependency on \\textbf{dpkg-dev}, which contains basic Debian-" "specific tools to create packages" msgstr "" "включает зависимость от \\textbf{dpkg-dev}, который содержит базовые " "инструменты Debian для создания пакетов" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "\\textbf{devscripts}: contains many useful scripts for Debian maintainers" msgstr "" "\\textbf{devscripts}: содержит множество полезных сценариев для " "сопровождающих Debian" #. 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 "" "Множество других инструментов, которые также будут упомянуты в дальнейшем, " "такие как \\textbf{debhelper}, \\textbf{cdbs}, \\textbf{quilt}, " "\\textbf{pbuilder}, \\textbf{sbuild}, \\textbf{lintian}, \\textbf{svn-" "buildpackage}, \\textbf{git-buildpackage}, \\ldots\\\\ Установите их, если " "они вам нужны." #. type: frame{#2} #: 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 "" "\\node[node1] (www) at (0, 0) {Веб}; \\node[node1] (us) at (2.5, 0) " "{исходный код основной ветки разработки}; \\node[node1] (da) at (-2.5, 0) " "{зеркало Debian}; \\node[node1] (sp) at (0, -2) {пакет с исходным кодом}; " "\\draw[arr,<-,dashed,thick] (sp) -- (2.5,-2) node[right=0cm,text " "width=2.98cm,text centered,font=\\small\\sl] {большая часть ручной работы}; " "\\node[node1] (bin) at (0, -4) {один или несколько двоичных пакетов}; " "\\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} (сборка и тестирование при помощи " "\\textttc{lintian}) или \\textttc{dpkg-buildpackage}}; \\draw[arr,->] (bin) " "-- (1,-6) node[pos=0.5,right] {установка (\\textttc{debi})}; " "\\draw[transparent] (bin) -- (-1,-6) node[pos=0.5,left,opaque] {загрузка " "(\\textttc{dput})}; \\draw[arr,->,rounded corners] (bin) -- (-1,-6) -- " "(-4.5,-6) -- (-4.5,0) -- (da); \\useasboundingbox (-4,-6) rectangle (6,0);" #. type: subsection{#2} #: packaging-tutorial.tex:205 msgid "Rebuilding dash" msgstr "Пересборка dash" #. type: frame{#2} #: packaging-tutorial.tex:205 msgid "Example: rebuilding dash" msgstr "Пример: пересборка dash" #. 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 "" "Установите пакеты, необходимые для сборки dash, а также devscripts\\\\ " "{\\texttt{sudo apt-get build-dep dash}\\\\ (требуются строки \\texttt{deb-" "src} в \\texttt{/etc/apt/sources.list})}\\\\ {\\texttt{sudo apt-get install -" "{}-no-install-recommends devscripts fakeroot}}" #. 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 "" "Создайте рабочий каталог, и перейдите в него:\\\\ \\texttt{mkdir /tmp/debian-" "tutorial ; cd /tmp/debian-tutorial}" #. 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 "" "Загрузите пакет с исходным кодом \\texttt{dash}\\\\ \\texttt{apt-get source " "dash}\\\\ {\\small (Для этого требуются строки \\texttt{deb-src} в вашем " "файле \\texttt{/etc/apt/sources.list})}" #. 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 "" "Соберите пакет\\\\ {\\texttt{cd dash-*\\\\ debuild -us -uc}} ~~~(\\texttt{-" "us -uc} отключают подписывание пакета с помощью GPG)" #. 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 "В родительском каталоге присутствуют новые файлы \\texttt{.deb}" #. type: enumerate #: packaging-tutorial.tex:218 msgid "Look at the \\texttt{debian/} directory" msgstr "Посмотрите каталог \\texttt{debian/}" #. 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 "" "Один пакет с исходным кодом может создавать несколько двоичных пакетов\\\\ " "{\\small напр., исходный код \\texttt{\\bfseries libtar} создаёт двоичные " "пакеты \\texttt{\\bfseries libtar0} и \\texttt{\\bfseries libtar-dev}}" #. type: itemize #: packaging-tutorial.tex:256 msgid "Two kinds of packages: (if unsure, use non-native)" msgstr "Два вида пакетов: (если не уверены, используйте non-native)" #. type: itemize #: packaging-tutorial.tex:256 msgid "" "Native packages: normally for Debian specific software (\\textsl{dpkg}, " "\\textsl{apt})" msgstr "" "Пакеты native: обычно это ПО, специфичное для Debian (\\textsl{dpkg}, " "\\textsl{apt})" #. type: itemize #: packaging-tutorial.tex:256 msgid "Non-native packages: software developed outside Debian" msgstr "Пакеты non-native: ПО, разрабатываемое за пределами Debian" #. type: itemize #: packaging-tutorial.tex:256 msgid "Main file: \\texttt{.dsc} (meta-data)" msgstr "Основной файл: \\texttt{.dsc} (метаданные)" #. 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 "1.0 или 3.0 (native): \\texttt{package\\_version.tar.gz}" #. type: itemize #: packaging-tutorial.tex:256 msgid "1.0 (non-native):" msgstr "1.0 (non-native):" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_ver.orig.tar.gz}: upstream source" msgstr "" "\\texttt{pkg\\_ver.orig.tar.gz}: исходный код основной ветки разработки" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.diff.gz}: patch to add Debian-specific changes" msgstr "" "\\texttt{pkg\\_debver.diff.gz}: заплата для добавления специфичных для " "Debian изменений" #. type: itemize #: packaging-tutorial.tex:256 msgid "3.0 (quilt):" msgstr "3.0 (quilt):" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.debian.tar.gz}: tarball with the Debian changes" msgstr "\\texttt{pkg\\_debver.debian.tar.gz}: tarball с изменениями Debian" #. type: frame #: packaging-tutorial.tex:256 msgid "(See \\texttt{dpkg-source(1)} for exact details)" msgstr "(Детали см. в \\texttt{dpkg-source(1)})" #. type: frame{#2} #: packaging-tutorial.tex:280 msgid "Source package example (wget\\_1.12-2.1.dsc)" msgstr "Пример пакета с исходным кодом (wget\\_1.12-2.1.dsc)" #. 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" "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 "Из архива Debian:" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package}}" msgstr "\\texttt{apt-get source \\textsl{пакет}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package=version}}" msgstr "\\texttt{apt-get source \\textsl{пакет=версия}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package/release}}" msgstr "\\texttt{apt-get source \\textsl{пакет/выпуск}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "(You need \\texttt{deb-src} lines in \\texttt{sources.list})" msgstr "(Требуются строки \\texttt{deb-src} в \\texttt{sources.list})" #. 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 "\\texttt{dget \\textsl{адрес.dsc}}" #. 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 "" "\\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} " "предоставляет все пакеты из Debian с 2005 года)" #. 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 "\\texttt{debcheckout \\textsl{пакет}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "" "Once downloaded, extract with \\texttt{dpkg-source -x \\textsl{file.dsc}}" msgstr "" "Когда пакет будет загружен, разверните его с помощью \\texttt{dpkg-source -x " "\\textsl{файл.dsc}}" #. type: frame{#2} #: 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 "" "Загрузите исходный код основной ветки разработки\\\\ (\\textsl{исходный код " "основной ветки разработки} = исходный код от исходных разработчиков ПО)" #. 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 "" "Переименуйте его в \\texttt{<\\textsl{пакет\\_с\\_исходным\\_кодом}>\\_<" "\\textsl{версия\\_основной\\_ветки}>.orig.tar.gz}\\\\ (пример: " "\\texttt{simgrid\\_3.6.orig.tar.gz})" #. 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 "" "Переименуйте каталог в \\texttt{<\\textsl{пакет\\_с\\_исходным\\_кодом}>-<" "\\textsl{версия\\_основной\\_ветки}>}\\\\ (пример: \\texttt{simgrid-3.6})" #. 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 "" "\\texttt{cd \\texttt{<\\textsl{пакет\\_с\\_исходным\\_кодом}>-<" "\\textsl{версия\\_основной\\_ветки}>} \\&\\& dh\\_make}\\\\ (из пакета " "\\textbf{dh-make})" #. 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 "" "Для \\texttt{dh\\_make} имеются некоторые альтернативы для конкретных " "наборов пакетов: \\textbf{dh-make-perl}, \\textbf{dh-make-php}, \\ldots" #. type: itemize #: packaging-tutorial.tex:331 msgid "\\texttt{debian/} directory created, with a lot of files in it" msgstr "Будет создан каталог \\texttt{debian/} с множеством файлов в нём" #. type: frame{#2} #: packaging-tutorial.tex:360 msgid "Files in debian/" msgstr "Файлы в debian/" #. type: frame #: packaging-tutorial.tex:360 msgid "" "All the packaging work should be made by modifying files in \\texttt{debian/}" msgstr "" "Вся работа по созданию пакетов должна осуществляться путём изменения файлов " "в \\texttt{debian/}" #. 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 "\\textbf{control} -- метаданные о пакете (зависимости и т.д.)" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{rules} -- specifies how to build the package" msgstr "\\textbf{rules} -- определяет то, как собирать пакет" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{copyright} -- copyright information for the package" msgstr "" "\\textbf{copyright} -- информация об авторских правах для данного пакета" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{changelog} -- history of the Debian package" msgstr "\\textbf{changelog} -- история пакета Debian" #. type: itemize #: packaging-tutorial.tex:360 msgid "Other files:" msgstr "Другие файлы:" #. type: itemize #: packaging-tutorial.tex:360 msgid "compat" msgstr "compat" #. type: itemize #: packaging-tutorial.tex:360 msgid "watch" msgstr "watch" #. type: itemize #: packaging-tutorial.tex:360 msgid "dh\\_install* targets\\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}" msgstr "цели dh\\_install* \\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}" #. type: itemize #: packaging-tutorial.tex:360 msgid "maintainer scripts\\\\ {\\small *.postinst, *.prerm, \\ldots}" msgstr "сценарии сопровождающего\\\\ {\\small *.postinst, *.prerm, \\ldots}" #. type: itemize #: packaging-tutorial.tex:360 msgid "source/format" msgstr "source/format" #. type: itemize #: packaging-tutorial.tex:360 msgid "patches/ -- if you need to modify the upstream sources" msgstr "patches/ -- если вам нужно изменить исходный код основной ветки" #. type: itemize #: packaging-tutorial.tex:360 msgid "Several files use a format based on RFC 822 (mail headers)" msgstr "" "Некоторые файлы используют формат на основе RFC 822 (почтовые заголовки)" #. type: frame{#2} #: packaging-tutorial.tex:372 msgid "debian/changelog" msgstr "debian/changelog" #. type: itemize #: packaging-tutorial.tex:372 msgid "Lists the Debian packaging changes" msgstr "Содержит список изменений пакета Debian" #. 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 "" "\\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-ревизия}; \\draw [decorate," "decoration={brace}] (1.4,0) -- (0,0) node[midway,below,text width=1.6cm,text " "centered] { \\small Основная версия};" #. % #. type: itemize #: packaging-tutorial.tex:386 msgid "Edited manually or with \\textttc{dch}" msgstr "Редактируется вручную или с помощью \\textttc{dch}" #. type: itemize #: packaging-tutorial.tex:386 msgid "Create a changelog entry for a new release: \\textttc{dch -i}" msgstr "Создать запись об изменении для нового выпуска: \\textttc{dch -i}" #. 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 "" "Специальный формат для автоматического закрытия ошибок Debian или Ubuntu\\\\ " "Debian: \\texttt{Closes:~\\#595268}; Ubuntu: \\texttt{LP:~\\#616929}" #. type: itemize #: packaging-tutorial.tex:386 msgid "" "Installed as \\texttt{/usr/share/doc/\\textit{package}/changelog.Debian.gz}" msgstr "" "Устанавливается как \\texttt{/usr/share/doc/\\textit{package}/changelog." "Debian.gz}" #. 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 Wed, 15 Sep 2010 18:13:44 +0200" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:421 msgid "debian/control" msgstr "debian/control" #. 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 "" "Имя, раздел, приоритет, сопровождающий, загружающие, сборочные зависимости, " "зависимости, описание, домашняя страница, \\ldots" #. type: itemize #: packaging-tutorial.tex:421 msgid "" "Documentation: Debian Policy chapter 5\\\\ \\url{http://www.debian.org/doc/" "debian-policy/ch-controlfields}" msgstr "" "Документация: Политика Debian, глава 5\\\\ \\url{http://www.debian.org/doc/" "debian-policy/ch-controlfields}" #. 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" "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 "Пакеты с разным содержимым на каждой архитектуре Debian" #. type: itemize #: packaging-tutorial.tex:456 msgid "Example: C program" msgstr "Пример: программа на C" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ any} in \\texttt{debian/control}" msgstr "\\texttt{Architecture:\\ any} в \\texttt{debian/control}" #. 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 "" "Либо, если она работает только на некоторых архитектурах:\\\\ " "\\texttt{Architecture:\\ amd64 i386 ia64 hurd-i386}" #. type: itemize #: packaging-tutorial.tex:456 msgid "buildd.debian.org: builds all the other architectures for you on upload" msgstr "" "buildd.debian.org: собирает для вас все остальные архитектуры при загрузке" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_" "\\textsl{architecture}.deb}" msgstr "" "Имеет имя \\texttt{\\textsl{пакет}\\_\\textsl{версия}\\_" "\\textsl{архитектура}.deb}" #. 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 "Пример: библиотека Perl" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ all} in \\texttt{debian/control}" msgstr "\\texttt{Architecture:\\ all} в \\texttt{debian/control}" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_\\textbf{all}.deb}" msgstr "" "Имеет имя \\texttt{\\textsl{пакет}\\_\\textsl{версия}\\_\\textbf{all}.deb}" #. 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 "" "Пакет с исходным кодом может создавать двоичные пакеты и с " "\\texttt{Architecture:\\ какая-то}, и с \\texttt{Architecture:\\ all}" #. type: frame{#2} #: packaging-tutorial.tex:482 msgid "debian/rules" msgstr "debian/rules" #. type: itemize #: packaging-tutorial.tex:482 msgid "Makefile" msgstr "Makefile" #. type: itemize #: packaging-tutorial.tex:482 msgid "Interface used to build Debian packages" msgstr "Интерфейс, используемый для сборки пакетов Debian" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "Documented in Debian Policy, chapter 4.8\\\\ {\\small \\url{http://www." "debian.org/doc/debian-policy/ch-source\\#s-debianrules}}" msgstr "" "Документирован в Политике Debian, глава 4.8\\\\ {\\small \\url{http://www." "debian.org/doc/debian-policy/ch-source\\#s-debianrules}}" #. 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 "" "\\texttt{build, build-arch, build-indep}: должны выполнить все настройки и " "компиляцию" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{binary, binary-arch, binary-indep}: build the binary packages" msgstr "\\texttt{binary, binary-arch, binary-indep}: сборка двоичных пакетов" #. 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 "" "\\texttt{dpkg-buildpackage} вызовет \\texttt{binary} для сборки всех " "пакетов, либо \\texttt{binary-arch} для сборки \\texttt{Architecture:~какая-" "то} пакетов" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{clean}: clean up the source directory" msgstr "\\texttt{clean}: очищает каталог с исходным кодом" #. type: subsection{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers" msgstr "Утилиты, упрощающие создание пакетов" #. type: frame{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers -- debhelper" msgstr "Утилиты, упрощающие создание пакетов -- debhelper" #. type: itemize #: packaging-tutorial.tex:516 msgid "You could write shell code in \\texttt{debian/rules} directly" msgstr "Вы можете добавить код оболочки напрямую в \\texttt{debian/rules}" #. type: itemize #: packaging-tutorial.tex:516 msgid "See the \\texttt{adduser} package for example" msgstr "Пример см. в пакете \\texttt{adduser}" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Better practice (used by most packages): use a \\textsl{Packaging helper}" msgstr "" "Лучше всего (используется большинством пакетов): использовать " "\\textsl{утилиту, упрощающую создание пакетов}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Most popular one: \\textbf{debhelper} (used by 98\\% of packages)" msgstr "Наиболее популярен: \\textbf{debhelper} (используется в 98\\% пакетов)" #. 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 "" "{\\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}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Called from \\texttt{debian/rules}" msgstr "Вызывается из \\texttt{debian/rules}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Configurable using command parameters or files in \\texttt{debian/}" msgstr "Настройка через параметры команды или файлы в \\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "{\\footnotesize \\ttfamily \\textsl{package}.docs, \\textsl{package}." "examples, \\textsl{package}.install, \\textsl{package}.manpages, \\ldots}" msgstr "" "{\\footnotesize \\ttfamily \\textsl{пакет}.docs, \\textsl{пакет}.examples, " "\\textsl{пакет}.install, \\textsl{пакет}.manpages, \\ldots}" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Third-party helpers for sets of packages: \\textbf{python-support}, " "\\textbf{dh\\_ocaml}, \\ldots" msgstr "" "Сторонние утилиты для ряда пакетов: \\textbf{python-support}, \\textbf{dh" "\\_ocaml}, \\ldots" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Gotcha: \\texttt{debian/compat}: Debhelper compatibility version (use \"7\")" msgstr "" "Попался: \\texttt{debian/compat}: версия совместимости debhelper " "(используйте \"7\")" #. type: frame{#2} #: packaging-tutorial.tex:520 msgid "debian/rules using debhelper (1/2)" msgstr "debian/rules, использующий debhelper (1/2)" #. 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 "debian/rules, использующий debhelper (2/2)" #. 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 "CDBS" #. type: itemize #: packaging-tutorial.tex:603 msgid "With debhelper, still a lot of redundancy between packages" msgstr "С debhelper всё равно остаётся много лишней работы" #. 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 "" "Напр., сборка с \\texttt{./configure \\&\\& make \\&\\& make install} или " "CMake" #. type: itemize #: packaging-tutorial.tex:603 msgid "CDBS:" msgstr "CDBS:" #. type: itemize #: packaging-tutorial.tex:603 msgid "Introduced in 2005, based on advanced \\textsl{GNU make} magic" msgstr "" "Представлен в 2005 году, основан на продвинутой магии \\textsl{GNU make}" #. type: itemize #: packaging-tutorial.tex:603 msgid "Documentation: \\texttt{/usr/share/doc/cdbs/}" msgstr "Документация: \\texttt{/usr/share/doc/cdbs/}" #. type: itemize #: packaging-tutorial.tex:603 msgid "Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots" msgstr "Поддержка Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots" #. 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 "" "Иногда трудно настраивать сборку пакетов:\\\\ \"\\textsl{лабиринт make-" "файлов и переменных окружения}\"" #. type: itemize #: packaging-tutorial.tex:603 msgid "Slower than plain debhelper (many useless calls to \\texttt{dh\\_*})" msgstr "" "Медленнее, чем обычный debhelper (множество бесполезных вызовов \\texttt{dh" "\\_*})" #. 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 "Dh (также известный как Debhelper 7, либо dh7)" #. type: itemize #: packaging-tutorial.tex:628 msgid "Introduced in 2008 as a \\textsl{CDBS killer}" msgstr "Представлен в 2008 году как \\textsl{убийца CDBS}" #. type: itemize #: packaging-tutorial.tex:628 msgid "\\textbf{dh} command that calls \\texttt{dh\\_*}" msgstr "Команда \\textbf{dh}, вызывающая \\texttt{dh\\_*}" #. type: itemize #: packaging-tutorial.tex:628 msgid "Simple \\textsl{debian/rules}, listing only overrides" msgstr "" "Простой файл \\textsl{debian/rules}, содержащий только список отклонений" #. type: itemize #: packaging-tutorial.tex:628 msgid "Easier to customize than CDBS" msgstr "Проще настраивать, чем CDBS" #. 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 "" "Документация: справочные страницы (\\texttt{debhelper(7)}, \\texttt{dh(1)}) " "+ слайды с выступления на DebConf9\\\\ \\url{http://kitenet.net/~joey/talks/" "debhelper/debhelper-slides.pdf}" #. 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 "Классический debhelper против CDBS и dh" #. type: itemize #: packaging-tutorial.tex:656 msgid "" "Mind shares:\\\\ Classic debhelper: 27\\% \\hskip 1em CDBS: 18\\% \\hskip " "1em dh: 54\\%" msgstr "" "Доля использования:\\\\ Классический debhelper: 27\\% \\hskip 1em CDBS: 18\\" "% \\hskip 1em dh: 54\\%" #. 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 "Вам нужно знать debhelper для использования dh и CDBS" #. type: itemize #: packaging-tutorial.tex:656 msgid "You might have to modify CDBS packages" msgstr "Вам может потребоваться изменить пакеты CDBS" #. 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 "" "\\textbf{dh} (единственное решение с увеличивающейся долей использования)" #. 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 "" "small,label style={font=\\footnotesize},xlabel={\\small Время}," "ylabel={\\small Доля (\\%)}, 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" #. 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 "" "\\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}" #. type: section{#2} #: packaging-tutorial.tex:680 msgid "Building and testing packages" msgstr "Сборка и тестирование пакетов" #. type: frame{#2} #: 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 "" "\\textttc{apt-get build-dep мой\\_пакет}\\\\ Устанавливает зависимости для " "сборки (\\textsl{build-dependencies}) (для пакета, уже включённого в " "Debian)\\\\ Либо \\textttc{mk-build-deps -ir} (для пакета, который пока не " "загружен)" #. type: itemize #: packaging-tutorial.tex:737 msgid "\\textttc{debuild}: build, test with \\texttt{lintian}, sign with GPG" msgstr "" "\\textttc{debuild}: сборка, тестирование с помощью \\texttt{lintian}, " "подпись GPG" #. type: itemize #: packaging-tutorial.tex:737 msgid "Also possible to call \\textttc{dpkg-buildpackage} directly" msgstr "Также можно вызвать \\textttc{dpkg-buildpackage} напрямую" #. type: itemize #: packaging-tutorial.tex:737 msgid "Usually with \\texttt{dpkg-buildpackage -us -uc}" msgstr "Обычно с помощью \\texttt{dpkg-buildpackage -us -uc}" #. type: itemize #: packaging-tutorial.tex:737 msgid "It is better to build packages in a clean \\& minimal environment" msgstr "Лучше собирать пакеты в чистом минимальном окружении" #. type: itemize #: packaging-tutorial.tex:737 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 "" "\\textttc{pbuilder} -- утилита, облегчающая сборку пакетов в " "\\textsl{chroot}\\\\ Хорошая документация: \\url{https://wiki.ubuntu.com/" "PbuilderHowto}\\\\ (оптимизация: \\textttc{cowbuilder} \\textttc{ccache} " "\\textttc{distcc})" #. type: itemize #: packaging-tutorial.tex:737 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 "" "\\textttc{schroot} и \\textttc{sbuild}: используются в службах сборки Debian" "\\\\ (не так просты как \\texttt{pbuilder}, но позволяют делать снимки LVM\\" "\\ см.: \\url{https://help.ubuntu.com/community/SbuildLVMHowto} )" #. type: itemize #: packaging-tutorial.tex:737 msgid "Generates \\texttt{.deb} files and a \\texttt{.changes} file" msgstr "Создаёт файлы \\texttt{.deb} и файл \\texttt{.changes}" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "\\texttt{.changes}: describes what was built; used to upload the package" msgstr "\\texttt{.changes}: описывает, что было собрано; для загрузки пакета" #. type: frame{#2} #: packaging-tutorial.tex:737 msgid "Installing and testing packages" msgstr "Установка и тестирование пакетов" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Install the package locally: \\textttc{debi} (will use \\texttt{.changes} to " "know what to install)" msgstr "" "Установить пакет локально: \\textttc{debi} (будет использовать \\texttt{." "changes} для того, чтобы определить, что устанавливать)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "List the content of the package: \\texttt{{\\color{rouge}debc} ../" "mypackage.changes}" msgstr "" "Список содержимого пакета: \\texttt{{\\color{rouge}debc} ../мой\\_пакет." "changes}" #. type: itemize #: packaging-tutorial.tex:737 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 "" "Сравнить пакет с предыдущей версией:\\\\ \\texttt{{\\color{rouge}debdiff} ../" "мой\\_пакет\\_1\\_*.changes ../мой\\_пакет\\_2\\_*.changes}\\\\ или сравнить " "с исходным кодом:\\\\ \\texttt{{\\color{rouge}debdiff} ../мой\\_пакет" "\\_1\\_*.dsc ../мой\\_пакет\\_2\\_*.dsc}\\\\" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Check the package with \\texttt{lintian} (static analyzer):\\\\ " "\\texttt{{\\color{rouge}lintian} ../mypackage.changes}\\\\ " "\\texttt{lintian -i}: gives more information about the errors \\\\ " "\\texttt{lintian -EviIL +pedantic}: shows more problems" msgstr "" "Проверить пакет с помощью \\texttt{lintian} (статический анализатор):\\\\ " "\\texttt{{\\color{rouge}lintian} ../мой\\_пакет.changes}\\\\ " "\\texttt{lintian -i}: выдаёт дополнительную информацию об ошибках \\\\ " "\\texttt{lintian -EviIL +pedantic}: показывает больше проблем" #. type: itemize #: packaging-tutorial.tex:737 msgid "Upload the package to Debian (\\textttc{dput}) (needs configuration)" msgstr "Загрузить пакет в Debian (\\textttc{dput}) (требуется настройка)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Manage a private Debian archive with \\textttc{reprepro}\\\\ Documentation: " "\\url{http://mirrorer.alioth.debian.org/}" msgstr "" "Управлять частным архивом Debian с помощью \\textttc{reprepro}\\\\ " "Документация: \\url{http://mirrorer.alioth.debian.org/}" #. type: frame{#2} #: packaging-tutorial.tex:737 packaging-tutorial.tex:1454 #: packaging-tutorial.tex:1460 msgid "Practical session 1: modifying the grep package" msgstr "Практика 1: изменение пакета grep" #. type: enumerate #: packaging-tutorial.tex:737 packaging-tutorial.tex:1460 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package (if you use Ubuntu 11.10 or later, or Debian " "testing or unstable, use version 2.9-1 or 2.9-2 instead)" msgstr "" "Перейдите по адресу \\url{http://ftp.debian.org/debian/pool/main/g/grep/} и " "скачайте версию 2.6.3-3 (если вы используете Ubuntu 11.10 или новее, либо " "Debian testing или unstable, используйте 2.9-1 или 2.9-2)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "If the source package is not unpacked automatically, unpack it with " "\\texttt{dpkg-source~-x~grep\\_*.dsc}" msgstr "" "Если пакет с исходным кодом не распаковывается автоматически, распакуйте его " "с помощью \\texttt{dpkg-source~-x~grep\\_*.dsc}" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "Look at the files in \\texttt{debian/}." msgstr "Посмотрите файлы в \\texttt{debian/}." #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "How many binary packages are generated by this source package?" msgstr "Сколько двоичных пакетов создаётся этим пакетом?" #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "Which packaging helper does this package use?" msgstr "Какая утилита для создания пакетов используется?" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1537 msgid "Build the package" msgstr "Соберите пакет" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1558 msgid "" "We are now going to modify the package. Add a changelog entry and increase " "the version number." msgstr "" "Мы собираемся изменить пакет. Добавьте запись в журнал изменений и увеличьте " "номер версии." #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1578 msgid "Now disable perl-regexp support (it is a \\texttt{./configure} option)" msgstr "" "Теперь отключите поддержку регулярных выражений Perl (perl-regexp) (это " "опция \\texttt{./configure})" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1578 msgid "Rebuild the package" msgstr "Соберите пакет заново" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Compare the original and the new package with debdiff" msgstr "Сравните оригинальный и новый пакеты с помощью debdiff" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Install the newly built package" msgstr "Установите собранный заново пакет" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Cry if you messed up ;)" msgstr "Покричите, если что-то испортили ;)" #. type: section{#2} #: packaging-tutorial.tex:775 msgid "Advanced packaging topics" msgstr "Продвинутые темы в сборке пакетов" #. type: frame{#2} #: packaging-tutorial.tex:775 msgid "debian/copyright" msgstr "debian/copyright" #. type: itemize #: packaging-tutorial.tex:775 msgid "Copyright and license information for the source and the packaging" msgstr "" "Авторское право и лицензионная информация для исходного кода и создания " "пакета" #. type: itemize #: packaging-tutorial.tex:775 msgid "Traditionally written as a text file" msgstr "Традиционно записывается в виде текстового файла" #. type: itemize #: packaging-tutorial.tex:775 msgid "" "New machine-readable format: {\\small\\url{http://www.debian.org/doc/" "packaging-manuals/copyright-format/1.0/}}" msgstr "" "Новый машиночитаемый формат: {\\small\\url{http://www.debian.org/doc/" "packaging-manuals/copyright-format/1.0/}}" #. type: lstlisting #: packaging-tutorial.tex:775 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Format: http://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:785 #, no-wrap msgid "" "Files: *\n" "Copyright: Copyright 1998 John Doe \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:790 #, no-wrap msgid "" "Files: debian/*\n" "Copyright: Copyright 1998 Jane Smith \n" "License:\n" " [LICENSE TEXT]" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:821 msgid "Modifying the upstream source" msgstr "Изменение исходного кода основной ветки разработки" #. type: frame #: packaging-tutorial.tex:821 msgid "Often needed:" msgstr "Зачастую требуется:" #. type: itemize #: packaging-tutorial.tex:821 msgid "Fix bugs or add customizations that are specific to Debian" msgstr "Исправить ошибки или добавить изменения, специфичные для Debian" #. type: itemize #: packaging-tutorial.tex:821 msgid "Backport fixes from a newer upstream release" msgstr "Перенести исправления из более нового выпуска основной ветки" #. type: frame #: packaging-tutorial.tex:821 msgid "Several methods to do it:" msgstr "Несколько методов, чтобы сделать это:" #. type: itemize #: packaging-tutorial.tex:821 msgid "Modifying the files directly" msgstr "Изменение файлов напрямую" #. type: itemize #: packaging-tutorial.tex:821 msgid "Simple" msgstr "Просто" #. type: itemize #: packaging-tutorial.tex:821 msgid "But no way to track and document the changes" msgstr "Нет возможность отследить и задокументировать изменения" #. type: itemize #: packaging-tutorial.tex:821 msgid "Using patch systems" msgstr "Использование систем заплат" #. type: itemize #: packaging-tutorial.tex:821 msgid "Eases contributing your changes to upstream" msgstr "Упрощает внесение ваших изменений в основную ветку" #. type: itemize #: packaging-tutorial.tex:821 msgid "Helps sharing the fixes with derivatives" msgstr "Помогает делиться исправлениями с производными дистрибутивами" #. type: itemize #: packaging-tutorial.tex:821 msgid "" "Gives more exposure to the changes\\\\ \\url{http://patch-tracker.debian." "org/}" msgstr "" "Больший контроль изменениям\\\\ \\url{http://patch-tracker.debian.org/}" #. type: frame{#2} #: packaging-tutorial.tex:851 msgid "Patch systems" msgstr "Системы заплат" #. type: itemize #: packaging-tutorial.tex:851 msgid "Principle: changes are stored as patches in \\texttt{debian/patches/}" msgstr "" "Принцип: изменения сохраняются в виде заплат в \\texttt{debian/patches/}" #. type: itemize #: packaging-tutorial.tex:851 msgid "Applied and unapplied during build" msgstr "Применяются или не применяются во время сборки" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Past: several implementations -- \\textsl{simple-patchsys} (\\textsl{cdbs}), " "\\textsl{dpatch}, \\textbf{\\textsl{quilt}}" msgstr "" "В прошлом: несколько реализаций -- \\textsl{simple-patchsys} " "(\\textsl{cdbs}), \\textsl{dpatch}, \\textbf{\\textsl{quilt}}" #. type: itemize #: packaging-tutorial.tex:851 msgid "Each supports two \\texttt{debian/rules} targets:" msgstr "Каждая поддерживает две цели \\texttt{debian/rules}:" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules patch}: apply all patches" msgstr "\\texttt{debian/rules patch}: применяет все заплаты" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules unpatch}: de-apply all patches" msgstr "\\texttt{debian/rules unpatch}: отменяет все заплаты" #. type: itemize #: packaging-tutorial.tex:851 msgid "More documentation: \\url{http://wiki.debian.org/debian/patches}" msgstr "" "Дополнительная документация: \\url{http://wiki.debian.org/debian/patches}" #. type: textbf{#1} #: packaging-tutorial.tex:851 msgid "New source package format with built-in patch system: 3.0 (quilt)" msgstr "" "Новый формат пакетов с исходным кодом со встроенной системой заплат: 3.0 " "(quilt)" #. type: itemize #: packaging-tutorial.tex:851 msgid "Recommended solution" msgstr "Рекомендуемое решение" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "You need to learn \\textsl{quilt}\\\\ \\url{http://pkg-perl.alioth.debian." "org/howto/quilt.html}" msgstr "" "Вам необходимо изучить \\textsl{quilt}\\\\ \\url{http://pkg-perl.alioth." "debian.org/howto/quilt.html}" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Patch-system-agnostic tool in \\texttt{devscripts}: \\texttt{edit-patch}" msgstr "" "Независимый от системы заплат инструмент в \\texttt{devscripts}: " "\\texttt{edit-patch}" #. type: frame{#2} #: packaging-tutorial.tex:868 msgid "Documentation of patches" msgstr "Документирование заплат" #. type: itemize #: packaging-tutorial.tex:868 msgid "Standard headers at the beginning of the patch" msgstr "Стандартные заголовки в начале заплаты" #. type: itemize #: packaging-tutorial.tex:868 msgid "" "Documented in DEP-3 - Patch Tagging Guidelines\\\\ \\url{http://dep.debian." "net/deps/dep3/}" msgstr "" "Документированы в DEP-3 - Руководство по тегам заплат\\\\ \\url{http://dep." "debian.net/deps/dep3/}" #. type: lstlisting #: packaging-tutorial.tex:868 #, 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 \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:872 #, 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:892 msgid "Doing things during installation and removal" msgstr "Сделать что-то во время установки или удаления" #. type: itemize #: packaging-tutorial.tex:892 msgid "Decompressing the package is sometimes not enough" msgstr "Иногда недостаточно просто распаковать пакет" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Create/remove system users, start/stop services, manage " "\\textsl{alternatives}" msgstr "" "Создать/удалить системных пользователей, запустить/остановить службы, " "обработать \\textsl{альтернативы}" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Done in \\textsl{maintainer scripts}\\\\ \\texttt{preinst, postinst, prerm, " "postrm}" msgstr "" "Осуществляется в \\textsl{сценариях сопровождающего}\\\\ \\texttt{preinst, " "postinst, prerm, postrm}" #. type: itemize #: packaging-tutorial.tex:892 msgid "Snippets for common actions can be generated by debhelper" msgstr "Части общих действий могут быть созданы при помощи debhelper" #. type: itemize #: packaging-tutorial.tex:892 msgid "Documentation:" msgstr "Документация:" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Debian Policy Manual, chapter 6\\\\ {\\footnotesize \\url{http://www.debian." "org/doc/debian-policy/ch-maintainerscripts}}" msgstr "" "Руководство по политике Debian, глава 6\\\\ {\\footnotesize \\url{http://www." "debian.org/doc/debian-policy/ch-maintainerscripts}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Debian Developer's Reference, chapter 6.4\\\\ {\\scriptsize \\url{http://www." "debian.org/doc/developers-reference/best-pkging-practices.html}}" msgstr "" "Справочник разработчика Debian, глава 6.4\\\\ {\\scriptsize \\url{http://www." "debian.org/doc/developers-reference/best-pkging-practices.html}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "{\\footnotesize \\url{http://people.debian.org/~srivasta/MaintainerScripts." "html}}" msgstr "" "{\\footnotesize \\url{http://people.debian.org/~srivasta/MaintainerScripts." "html}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "Prompting the user" msgstr "Приглашение пользователя" #. type: itemize #: packaging-tutorial.tex:908 msgid "Must be done with \\textbf{debconf}" msgstr "Должно осуществляться с помощью \\textbf{debconf}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Documentation: \\texttt{debconf-devel(7)} (\\texttt{debconf-doc} package)" msgstr "Документация: \\texttt{debconf-devel(7)} (пакет \\texttt{debconf-doc})" #. type: frame{#2} #: packaging-tutorial.tex:914 msgid "Monitoring upstream versions" msgstr "Отслеживание версий основной ветки" #. type: itemize #: packaging-tutorial.tex:914 msgid "" "Specify where to look in \\texttt{debian/watch} (see \\texttt{uscan(1)})" msgstr "" "В файле \\texttt{debian/watch} укажите где искать (см. \\texttt{uscan(1)})" #. type: lstlisting #: packaging-tutorial.tex:914 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:917 #, no-wrap msgid "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " msgstr "" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Debian infrastructure that makes use of \\texttt{debian/watch}:\\\\ " "\\textbf{Debian External Health Status}\\\\ \\url{http://dehs.alioth.debian." "org/}" msgstr "" "Инфраструктура Debian, которая использует \\texttt{debian/watch}:\\\\ " "\\textbf{Статус внешнего здоровья Debian}\\\\ \\url{http://dehs.alioth." "debian.org/}" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Maintainer warned by emails sent to the Package Tracking System\\\\ " "\\url{http://packages.qa.debian.org/}" msgstr "" "Сопровождающий предупреждается с помощью сообщений электронной почты, " "отправляемых в систему отслеживания пакетов\\\\ \\url{http://packages.qa." "debian.org/}" #. type: itemize #: packaging-tutorial.tex:931 msgid "\\texttt{uscan}: run a manual check" msgstr "\\texttt{uscan}: запустить ручную проверку" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "\\texttt{uupdate}: try to update your package to the latest upstream version" msgstr "" "\\texttt{uupdate}: попытаться обновить ваш пакет до самой последней версии " "основной ветки разработки" #. type: subsection{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System (SVN, Git)" msgstr "Создание пакетов в системе контроля версий (SVN, Git)" #. type: frame{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System" msgstr "Создание пакетов в системе контроля версий" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "Several tools to help manage branches and tags for your packaging work:\\\\ " "\\texttt{svn-buildpackage}, \\texttt{git-buildpackage}" msgstr "" "Инструменты, помогающие управлять ветками и тегам вашей работы по созданию " "пакетов:\\\\ \\texttt{svn-buildpackage}, \\texttt{git-buildpackage}" #. type: itemize #: packaging-tutorial.tex:969 msgid "Example: \\texttt{git-buildpackage}" msgstr "Пример: \\texttt{git-buildpackage}" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{upstream} branch to track upstream with \\texttt{upstream/" "\\textsl{version}} tags" msgstr "" "Ветка \\texttt{upstream} для отслеживания основной ветки с тегами " "\\texttt{upstream/\\textsl{version}}" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{master} branch tracks the Debian package" msgstr "Ветка \\texttt{master} отслеживает пакет Debian" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{debian/\\textsl{version}} tags for each upload" msgstr "Теги \\texttt{debian/\\textsl{version}} для каждой загрузки" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{pristine-tar} branch to be able to rebuild the upstream tarball" msgstr "Ветка \\texttt{pristine-tar} для сборки tarball из основной ветки" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{Vcs-*} fields in \\texttt{debian/control} to locate the repository" msgstr "" "Поля \\texttt{Vcs-*} в \\texttt{debian/control} для определения репозитория" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Git}" msgstr "\\url{http://wiki.debian.org/Alioth/Git}" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Svn}" msgstr "\\url{http://wiki.debian.org/Alioth/Svn}" #. type: lstlisting #: packaging-tutorial.tex:969 #, 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:969 #, 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:969 msgid "" "VCS-agnostic interface: \\texttt{debcheckout}, \\texttt{debcommit}, " "\\texttt{debrelease}\\\\" msgstr "" "Интерфейс, независящий от системы контроля версий: \\texttt{debcheckout}, " "\\texttt{debcommit}, \\texttt{debrelease}\\\\" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{debcheckout grep} $\\rightarrow$ checks out the source package from " "Git" msgstr "" "\\texttt{debcheckout grep} $\\rightarrow$ выгружает пакет с исходным кодом " "из Git" #. type: frame{#2} #: packaging-tutorial.tex:992 msgid "Backporting packages" msgstr "Обратный перенос пакетов" #. type: itemize #: packaging-tutorial.tex:992 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 "" "Цель: использовать более новую версию пакета на старой системе\\\\ напр., " "использовать \\textsl{mutt} из Debian \\textsl{unstable} на Debian " "\\textsl{stable}" #. type: itemize #: packaging-tutorial.tex:992 msgid "General idea:" msgstr "Общая идея:" #. type: itemize #: packaging-tutorial.tex:992 msgid "Take the source package from Debian unstable" msgstr "Взять пакет с исходным кодом из Debian unstable" #. type: itemize #: packaging-tutorial.tex:992 msgid "Modify it so that it builds and works fine on Debian stable" msgstr "" "Изменить его так, чтобы он собирался и нормально работал в Debian stable" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes trivial (no changes needed)" msgstr "Иногда тривиально (изменения не требуются)" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes difficult" msgstr "Иногда сложно" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes impossible (many unavailable dependencies)" msgstr "Иногда невозможно (много недоступных зависимостей)" #. type: itemize #: packaging-tutorial.tex:992 msgid "" "Some backports are provided and supported by the Debian project\\\\ " "\\url{http://backports.debian.org/}" msgstr "" "Некоторые обратные переносы предоставляются и поддерживаются Проектом Debian" "\\\\ \\url{http://backports.debian.org/}" #. type: section{#2} #: packaging-tutorial.tex:1023 msgid "Maintaining packages in Debian" msgstr "Сопровождение пакетов в Debian" #. type: frame{#2} #: packaging-tutorial.tex:1023 msgid "Several ways to contribute to Debian" msgstr "Несколько способов внести вклад в Debian" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Worst} way to contribute:" msgstr "\\textbf{Худший} способ участия:" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Package your own application" msgstr "Создать пакет для вашего собственного приложения" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Get it into Debian" msgstr "Добавить его в Debian" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Disappear" msgstr "Исчезнуть" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Better} ways to contribute:" msgstr "\\textbf{Лучший} способы участия:" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Get involved in packaging teams" msgstr "Подключиться к работе команд по созданию пакетов" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Many teams that focus on set of packages, and need help" msgstr "Многие команды концентрируются на наборах пакетов, им нужна помощь" #. type: itemize #: packaging-tutorial.tex:1023 msgid "List available at \\url{http://wiki.debian.org/Teams}" msgstr "Список доступен по адресу \\url{http://wiki.debian.org/Teams}" #. type: itemize #: packaging-tutorial.tex:1023 msgid "An excellent way to learn from more experienced contributors" msgstr "Отличный способ научиться у более опытных участников" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Adopt existing unmaintained packages (\\textsl{orphaned packages})" msgstr "" "Усыновление существующих несопровождаемых пакетов (\\textsl{осиротевших " "пакетов})" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Bring new software to Debian" msgstr "Привнести в Debian новое ПО" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Only if it's interesting/useful enough, please" msgstr "Пожалуйста, только если оно достаточно интересно/полезно" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Are there alternatives already packaged in Debian?" msgstr "" "Существуют ли какие-либо альтернативы для которых уже созданы пакеты Debian?" #. type: frame{#2} #: packaging-tutorial.tex:1061 msgid "Adopting orphaned packages" msgstr "Усыновление осиротевших пакетов" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Many unmaintained packages in Debian" msgstr "В Debian много несопровождаемых пакетов" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Full list + process: \\url{http://www.debian.org/devel/wnpp/}" msgstr "Полный список + процесс: \\url{http://www.debian.org/devel/wnpp/}" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Installed on your machine: \\texttt{wnpp-alert}" msgstr "Установлены на вашей машине: \\texttt{wnpp-alert}" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Different states:" msgstr "Различные состояния:" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{O}rphaned: the package is unmaintained\\\\ Feel free to adopt it" msgstr "" "\\textbf{O}rphaned (осиротевший): пакет не сопровождается\\\\ Усыновите его" #. type: itemize #: packaging-tutorial.tex:1061 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 "" "\\textbf{RFA}: \\textbf{R}equest \\textbf{F}or \\textbf{A}dopter (Требуется " "усыновитель)\\\\ Сопровождающий ищет усыновителя, но пока продолжает работать" "\\\\ Усыновите его. Обратитесь к текущему сопровождающему" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt\\\\ Someone " "intends to adopt the package\\\\ You could propose your help!" msgstr "" "\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt (Собираюсь " "усыновить)\\\\ Кто-то намерен усыновить пакет\\\\ Помогите ему!" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp\\\\ The " "maintainer is looking for help" msgstr "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp (Запрос о " "помощи)\\\\ Сопровождающий ищет помощь" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Some unmaintained packages not detected \\arr not orphaned yet" msgstr "Ряд несопровождаемых пакетов ещё не обнаружен \\arr не осиротели" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "When in doubt, ask \\texttt{debian-qa@lists.debian.org} \\\\ or " "\\texttt{\\#debian-qa} on \\texttt{irc.debian.org}" msgstr "" "Спрашивайте на \\texttt{debian-qa@lists.debian.org} \\\\ или в " "\\texttt{\\#debian-qa} на \\texttt{irc.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1068 msgid "Adopting a package: example" msgstr "Усыновление пакета: пример" #. type: lstlisting #: packaging-tutorial.tex:1068 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "From: You \n" "To: 640454@bugs.debian.org, control@bugs.debian.org\n" "Cc: Francois Marier \n" "Subject: ITA: verbiste -- French conjugator\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1072 #, no-wrap msgid "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1074 #, no-wrap msgid "" "Hi,\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1076 #, 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:1078 #, no-wrap msgid "" "Cheers,\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1080 #, no-wrap msgid "You" msgstr "" #. type: itemize #: packaging-tutorial.tex:1087 msgid "" "Polite to contact the previous maintainer (especially if the package was " "RFAed, not orphaned)" msgstr "" "Считается вежливым, если вы свяжитесь с предыдущим сопровождающим (особенно, " "если пакет имеет статус RFA и пока не осиротел)" #. type: itemize #: packaging-tutorial.tex:1087 msgid "Very good idea to contact the upstream project" msgstr "Хорошо бы связаться с проектом основной ветки разработки" #. type: frame{#2} #: packaging-tutorial.tex:1111 msgid "Getting your package in Debian" msgstr "Добавление в Debian вашего пакета" #. type: itemize #: packaging-tutorial.tex:1111 msgid "You do not need any official status to get your package into Debian" msgstr "" "Для добавления вашего пакета в Debian вам не нужно иметь официальный статус" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "" "Submit an \\textbf{ITP} bug (\\textbf{I}ntend \\textbf{T}o \\textbf{P}" "ackage) using \\texttt{reportbug wnpp}" msgstr "" "Отправьте \\textbf{ITP} отчет (\\textbf{I}ntend \\textbf{T}o \\textbf{P}" "ackage (Намерен создать пакет)) при помощи \\texttt{reportbug wnpp}" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "Prepare a source package" msgstr "Подготовьте пакет с исходным кодом" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "Find a Debian Developer that will sponsor your package" msgstr "Найдите разработчика Debian, который будет спонсировать ваш пакет" #. type: itemize #: packaging-tutorial.tex:1111 msgid "Official status (when you are an experienced package maintainer):" msgstr "" "Официальный статус (когда вы уже являетесь опытным сопровождающим пакетов):" #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Maintainer (DM):}\\\\ Permission to upload your own packages" "\\\\ See \\url{http://wiki.debian.org/DebianMaintainer}" msgstr "" "\\textbf{Сопровождающий Debian (DM):}\\\\ Право на загрузку собственных " "пакетов\\\\ См. \\url{http://wiki.debian.org/DebianMaintainer}" #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Developer (DD):}\\\\ Debian project member; can vote and " "upload any package" msgstr "" "\\textbf{Разработчик Debian (DD):}\\\\ Член Проекта Debian; может голосовать " "и загружать любой пакет" #. type: frame{#2} #: packaging-tutorial.tex:1139 msgid "Things to check before asking for sponsorship" msgstr "Что проверить прежде чем просить о спонсорстве" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Debian puts \\textbf{a lot of focus on quality}" msgstr "Debian обращает \\textbf{большое внимание на качество}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Generally, \\textbf{sponsors are hard to find and busy}" msgstr "Обычно, \\textbf{спонсоров сложно найти, и они заняты}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Make sure your package is ready before asking for sponsorship" msgstr "До того, как просить о спонсорстве, убедитесь, что ваш пакет готов" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Things to check:" msgstr "Что проверить:" #. type: itemize #: packaging-tutorial.tex:1139 msgid "" "Avoid missing build-dependencies: make sure that your package build fine in " "a clean \\textsl{sid} \\textsl{chroot}" msgstr "" "Избегайте отсутствующих зависимостей для сборки: убедитесь, что ваш пакет " "нормально собирается в чистом \\textsl{sid} \\textsl{chroot}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Using \\texttt{pbuilder} is recommended" msgstr "Рекомендуется использовать \\texttt{pbuilder}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Run \\texttt{lintian -EviIL +pedantic} on your package" msgstr "Проверьте ваш пакет с помощью \\texttt{lintian -EviIL +pedantic}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Errors must be fixed, all other problems should be fixed" msgstr "" "Ошибки должны быть исправлены, все остальные проблемы тоже следует устранить" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Do extensive testing of your package, of course" msgstr "Конечно, хорошенько протестируйте ваш пакет" #. type: itemize #: packaging-tutorial.tex:1139 msgid "In doubt, ask for help" msgstr "Если у вас возникли сомнения, попросите помощи" #. type: frame{#2} #: packaging-tutorial.tex:1174 msgid "Where to find help?" msgstr "Где искать помощь?" #. type: frame #: packaging-tutorial.tex:1174 msgid "Help you will need:" msgstr "Помощь, которая вам потребуется:" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Advice and answers to your questions, code reviews" msgstr "Советы и ответы на вопросы, отзывы о коде" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Sponsorship for your uploads, once your package is ready" msgstr "Спонсирование ваших загрузок, когда ваш пакет будет готов" #. type: frame #: packaging-tutorial.tex:1174 msgid "You can get help from:" msgstr "Вы можете получить помощь от:" #. type: textbf{#1} #: packaging-tutorial.tex:1174 msgid "Other members of a packaging team" msgstr "Других членов команды по созданию пакетов" #. type: itemize #: packaging-tutorial.tex:1174 msgid "List of teams: \\url{http://wiki.debian.org/Teams}" msgstr "Список команд: \\url{http://wiki.debian.org/Teams}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "The \\textbf{Debian Mentors group} (if your package does not fit in a team)" msgstr "" "\\textbf{Группы наставников Debian} (если ваш пакет не подходит ни для одной " "группы)" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://wiki.debian.org/DebianMentorsFaq}" msgstr "\\url{http://wiki.debian.org/DebianMentorsFaq}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "Mailing list: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (also a " "good way to learn by accident)}" msgstr "" "Список рассылки: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (так же " "хороший способ случайно чему-то научиться)}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "IRC: \\texttt{\\#debian-mentors} on \\texttt{irc.debian.org}" msgstr "IRC: \\texttt{\\#debian-mentors} на \\texttt{irc.debian.org}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://mentors.debian.net/}" msgstr "\\url{http://mentors.debian.net/}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Documentation: \\url{http://mentors.debian.net/intro-maintainers}" msgstr "Документация: \\url{http://mentors.debian.net/intro-maintainers}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\textbf{Localized mailing lists} (get help in your language)" msgstr "" "\\textbf{Локализованные списки рассылки} (получите помощь на вашем языке)" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "\\texttt{debian-devel-\\{french,italian,portuguese,spanish\\}@lists.d.o}" msgstr "" "\\texttt{debian-devel-\\{french,italian,portuguese,spanish\\}@lists.d.o}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Full list: \\url{https://lists.debian.org/devel.html}" msgstr "Полный список: \\url{https://lists.debian.org/devel.html}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Or users lists: \\url{https://lists.debian.org/users.html}" msgstr "" "Или пользовательские списки: \\url{https://lists.debian.org/users.html}" #. type: frame{#2} #: packaging-tutorial.tex:1192 msgid "More documentation" msgstr "Дополнительная документация" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developers' Corner\\\\ \\url{http://www.debian.org/devel/}\\\\ " "{\\small Links to many resources about Debian development}" msgstr "" "Уголок разработчика Debian\\\\ \\url{http://www.debian.org/devel/}\\\\ " "{\\small Ссылки на множество ресурсов о разработке Debian}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian New Maintainers' Guide\\\\ \\url{http://www.debian.org/doc/maint-" "guide/}\\\\ {\\small An introduction to Debian packaging, but could use an " "update}" msgstr "" "Руководство нового сопровождающего Debian\\\\ \\url{http://www.debian.org/" "doc/maint-guide/}\\\\ {\\small Введение в создание пакетов Debian, можно " "было бы использовать обновлённый вариант}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developer's Reference\\\\ \\url{http://www.debian.org/doc/developers-" "reference/}\\\\ {\\small Mostly about Debian procedures, but also some best " "packaging practices (part 6)}" msgstr "" "Справочник разработчика Debian\\\\ \\url{http://www.debian.org/doc/" "developers-reference/}\\\\ {\\small По большей части о процедурах Debian, но " "также о некоторых лучших практиках создания пакетов (часть 6)}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "Debian Policy\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\" msgstr "" "Политика Debian\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\" #. type: itemize #: packaging-tutorial.tex:1198 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 "" "{\\small \\begin{itemize} \\item \\small Все требования, которые должен " "выполнять всякий пакет \\item \\small Определяет политики для Perl, Java, " "Python, \\ldots \\end{itemize}}" #. type: itemize #: packaging-tutorial.tex:1203 msgid "" "Ubuntu Packaging Guide\\\\ \\url{http://developer.ubuntu.com/resources/tools/" "packaging/}" msgstr "" "Руководство по созданию пакетов Ubuntu\\\\ \\url{http://developer.ubuntu.com/" "resources/tools/packaging/}" #. type: frame{#2} #: packaging-tutorial.tex:1217 msgid "Debian dashboards for maintainers" msgstr "Панели Debian для сопровождающих" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Source package centric}: Package Tracking System (PTS)\\\\ " "\\url{http://packages.qa.debian.org/dpkg}" msgstr "" "\\textbf{Фокус на пакетах с исходным кодом}: Система отслеживания пакетов " "(PTS)\\\\ \\url{http://packages.qa.debian.org/dpkg}" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Maintainer/team centric}: Developer's Packages Overview (DDPO)\\\\ " "\\url{http://qa.debian.org/developer.php?login=pkg-ruby-extras-" "maintainers@lists.alioth.debian.org}" msgstr "" "\\textbf{Фокус на сопровождающем/команде}: Обзор пакетов для разработчика " "(DDPO)\\\\ \\url{http://qa.debian.org/developer.php?login=pkg-ruby-extras-" "maintainers@lists.alioth.debian.org}" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{TODO-list oriented}: Debian Maintainer Dashboard (DMD)\\\\ " "\\url{http://udd.debian.org/dmd.cgi}" msgstr "" "\\textbf{Фокус на списке задач}: Панель сопровождающего Debian (DMD)\\\\ " "\\url{http://udd.debian.org/dmd.cgi}" #. type: frame{#2} #: packaging-tutorial.tex:1245 msgid "Using the Debian Bug Tracking System (BTS)" msgstr "Использование системы отслеживания ошибок (BTS)" #. type: itemize #: packaging-tutorial.tex:1245 msgid "A quite unique way to manage bugs" msgstr "Уникальный способ управления ошибками" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Web interface to view bugs" msgstr "Веб-интерфейс для просмотра ошибок" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Email interface to make changes to bugs" msgstr "Интерфейс электронной почты для изменения ошибок" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Adding information to bugs:" msgstr "Добавление информации к ошибкам:" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Write to \\texttt{123456@bugs.debian.org} (does not include the submitter, " "you need to add \\texttt{123456-submitter@bugs.debian.org})" msgstr "" "Напишите на \\texttt{123456@bugs.debian.org} (не включает отправителя " "ошибки, вам нужно добавить \\texttt{123456-submitter@bugs.debian.org})" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Changing bug status:" msgstr "Изменение статуса ошибки:" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Send commands to \\texttt{control@bugs.debian.org}" msgstr "Отправьте команды на \\texttt{control@bugs.debian.org}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Command-line interface: \\texttt{bts} command in \\texttt{devscripts}" msgstr "" "Интерфейс командной строки: команда \\texttt{bts} в \\texttt{devscripts}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Documentation: \\url{http://www.debian.org/Bugs/server-control}" msgstr "Документация: \\url{http://www.debian.org/Bugs/server-control}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Reporting bugs: use \\texttt{reportbug}" msgstr "Отправка отчётов об ошибках: используйте \\texttt{reportbug}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Normally used with a local mail server: install \\texttt{ssmtp} or " "\\texttt{nullmailer}" msgstr "" "Обычно используется с локальным почтовым сервером: install \\texttt{ssmtp} " "или \\texttt{nullmailer}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Or use \\texttt{reportbug -\\@-template}, then send (manually) to " "\\texttt{submit@bugs.debian.org}" msgstr "" "Либо используйте \\texttt{reportbug -\\@-template}, затем отправьте " "(вручную) по адресу \\texttt{submit@bugs.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1271 msgid "Using the BTS: examples" msgstr "Использование BTS: примеры" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Sending an email to the bug and the submitter:\\\\ \\url{http://bugs.debian." "org/cgi-bin/bugreport.cgi?bug=680822\\#10}" msgstr "" "Отправка сообщения ошибке и приславшему эту ошибку:\\\\ \\url{http://bugs." "debian.org/cgi-bin/bugreport.cgi?bug=680822\\#10}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Tagging and changing the severity:\\\\ \\url{http://bugs.debian.org/cgi-bin/" "bugreport.cgi?bug=680227\\#10}" msgstr "" "Отметка тегом и изменение строгости:\\\\ \\url{http://bugs.debian.org/cgi-" "bin/bugreport.cgi?bug=680227\\#10}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Reassigning, changing the severity, retitling \\ldots: \\\\ \\url{http://" "bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#93}" msgstr "" "Переназначение, изменение строгости, изменение заголовка \\ldots: \\\\ " "\\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#93}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "\\texttt{notfound}, \\texttt{found}, \\texttt{notfixed}, \\texttt{fixed} are " "for \\textbf{version-tracking} \\\\ See \\url{https://wiki.debian.org/" "HowtoUseBTS\\#Version\\_tracking}" msgstr "" "\\texttt{notfound}, \\texttt{found}, \\texttt{notfixed}, \\texttt{fixed} для " "\\textbf{version-tracking} \\\\ См. \\url{https://wiki.debian.org/HowtoUseBTS" "\\#Version\\_tracking}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Using usertags: \\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;" "bug=642267}\\\\ See \\url{https://wiki.debian.org/bugs.debian.org/usertags}" msgstr "" "Использование пользовательских тегов: \\url{http://bugs.debian.org/cgi-bin/" "bugreport.cgi?msg=42;bug=642267}\\\\ См. \\url{https://wiki.debian.org/bugs." "debian.org/usertags}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "BTS Documentation:" msgstr "Документация по BTS:" #. type: itemize #: packaging-tutorial.tex:1271 msgid "\\url{http://www.debian.org/Bugs/}" msgstr "\\url{http://www.debian.org/Bugs/}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "\\url{https://wiki.debian.org/HowtoUseBTS}" msgstr "\\url{https://wiki.debian.org/HowtoUseBTS}" #. type: frame{#2} #: packaging-tutorial.tex:1298 msgid "More interested in Ubuntu?" msgstr "Больше заинтересованы в Ubuntu?" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu mainly manages the divergence with Debian" msgstr "В случае Ubuntu в основном обрабатываются расхождения с Debian" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "No real focus on specific packages\\\\ Instead, collaboration with Debian " "teams" msgstr "" "Не фокусирует внимание на конкретных пакетах\\\\ Сотрудничает с командами " "Debian" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "Usually recommend uploading new packages to Debian first\\\\ \\url{https://" "wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" msgstr "" "Обычно рекомендуется загружать новые пакеты сначала в Debian\\\\ " "\\url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Possibly a better plan:" msgstr "Вероятно, лучше:" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Get involved in a Debian team and act as a bridge with Ubuntu" msgstr "" "Принять участие в команде Debian и действовать в качестве моста с Ubuntu" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Help reduce divergence, triage bugs in Launchpad" msgstr "Помогать уменьшить расхождения, сортировать ошибки в Launchpad" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Many Debian tools can help:" msgstr "Вам могут помочь многие инструменты Debian:" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu column on the Developer's packages overview" msgstr "Колонка Ubuntu в обзоре пакетов для разработчика" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu box on the Package Tracking System" msgstr "Бокс Ubuntu в системе отслеживания пакетов" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Receive launchpad bugmail via the PTS" msgstr "Получайте почту об ошибках от Launchpad через PTS" #. type: frame{#2} #: packaging-tutorial.tex:1328 msgid "Conclusions" msgstr "Заключение" #. type: itemize #: packaging-tutorial.tex:1328 msgid "You now have a full overview of Debian packaging" msgstr "Теперь у вас имеется полный обзор процесса создания пакетов Debian" #. type: itemize #: packaging-tutorial.tex:1328 msgid "But you will need to read more documentation" msgstr "Но вам нужно ознакомиться с дополнительной документацией" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Best practices have evolved over the years" msgstr "Лучшие практики эволюционировали на протяжении нескольких лет" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "If not sure, use the \\textbf{dh} packaging helper, and the \\textbf{3.0 " "(quilt)} format" msgstr "" "Если вы не уверены, используйте утилиту для создания пакетов \\textbf{dh}, а " "также формат \\textbf{3.0 (quilt)}" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Things that were not covered in this tutorial:" msgstr "То, что не было упомянуто в настоящем руководстве:" #. type: itemize #: packaging-tutorial.tex:1328 msgid "UCF -- manage user changes to configuration files when upgrading" msgstr "" "UCF -- управляет пользовательскими изменения файлов настройки при обновлении" #. type: itemize #: packaging-tutorial.tex:1328 msgid "dpkg triggers -- group similar maintainer scripts actions together" msgstr "" "переключатели dpkg -- группируют вместе схожие сценарии действий " "сопровождающих" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian development organization:" msgstr "Организация разработки Debian:" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "Suites: stable, testing, unstable, experimental, security, *-updates, " "backports, \\ldots" msgstr "" "Наборы: stable, testing, unstable, experimental, security, *-updates, " "backports, \\ldots" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian Blends -- subsets of Debian targeting specific groups" msgstr "Смести Debian -- подмножества Debian, нацеленные на конкретные группы" #. type: centerline{#1} #: packaging-tutorial.tex:1328 msgid "\\large Feedback: \\textbf{packaging-tutorial@packages.debian.org}" msgstr "" "\\large Обратная связь: \\textbf{packaging-tutorial@packages.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1331 msgid "Legal stuff" msgstr "Правовые вопросы" #. type: frame #: packaging-tutorial.tex:1334 msgid "Copyright \\copyright 2011--2013 Lucas Nussbaum -- lucas@debian.org" msgstr "Copyright \\copyright 2011--2013 Лукас Нуссбаум -- lucas@debian.org" #. type: frame #: packaging-tutorial.tex:1350 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 "" "{\\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} }" #. type: frame{#2} #: packaging-tutorial.tex:1379 msgid "Contribute to this tutorial" msgstr "Принять участие в развитии этого руководства" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Contribute:" msgstr "Принять участие:" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{apt-get source packaging-tutorial}}" msgstr "{\\small \\texttt{apt-get source packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{debcheckout packaging-tutorial}}" msgstr "{\\small \\texttt{debcheckout packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\texttt{git clone\\\\ git://git.debian.org/collab-maint/packaging-" "tutorial.git}}" msgstr "" "{\\small \\texttt{git clone\\\\ git://git.debian.org/collab-maint/packaging-" "tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" msgstr "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small Open bugs: \\url{bugs.debian.org/src:packaging-tutorial}}" msgstr "" "{\\small Открытые ошибки: \\url{bugs.debian.org/src:packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Provide feedback:" msgstr "Обратная связь:" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "\\href{mailto:packaging-tutorial@packages.debian.org}" "{\\textbf{\\texttt{mailto:packaging-tutorial@packages.debian.org}}}" msgstr "" "\\href{mailto:packaging-tutorial@packages.debian.org}" "{\\textbf{\\texttt{mailto:packaging-tutorial@packages.debian.org}}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be added to this tutorial?}" msgstr "{\\small Что следует добавить в это руководство?}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be improved?}" msgstr "{\\small Что следует улучшить?}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{reportbug packaging-tutorial}}" msgstr "{\\small \\texttt{reportbug packaging-tutorial}}" #. type: frame{#2} #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Practical session 2: packaging GNUjump" msgstr "Практика 2: создание пакета GNUjump" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "" "Download GNUjump 1.0.8 from \\url{http://ftp.gnu.org/gnu/gnujump/" "gnujump-1.0.8.tar.gz}" msgstr "" "Загрузите GNUjump 1.0.8 по адресу \\url{http://ftp.gnu.org/gnu/gnujump/" "gnujump-1.0.8.tar.gz}" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Create a Debian package for it" msgstr "Создайте для него пакет Debian" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Install build-dependencies so that you can build the package" msgstr "Установите зависимости для сборки, чтобы вы смогли собрать пакет" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Get a basic working package" msgstr "Получите простой работающий пакет" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Finish filling \\texttt{debian/control} and other files" msgstr "Закончите заполнение \\texttt{debian/control} и других файлов" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Enjoy" msgstr "Наслаждайтесь" #. type: frame{#2} #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Practical session 3: packaging a Java library" msgstr "Практика 3: создание пакета библиотеки Java" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Take a quick look at some documentation about Java packaging:\\\\" msgstr "Просмотрите документацию о создании пакетов Java:\\\\" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java}" msgstr "\\url{http://wiki.debian.org/Java}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java/Packaging}" msgstr "\\url{http://wiki.debian.org/Java/Packaging}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" msgstr "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" msgstr "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 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 "" "Статья и слайды с выступления на Debconf10 о 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}}" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Download IRClib from \\url{http://moepii.sourceforge.net/}" msgstr "Загрузите IRClib по адресу \\url{http://moepii.sourceforge.net/}" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Package it" msgstr "Создайте пакет" #. type: frame{#2} #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Practical session 4: packaging a Ruby gem" msgstr "Практика 4: создание пакета с gem-пакетом Ruby" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Take a quick look at some documentation about Ruby packaging:\\\\" msgstr "Просмотрите документацию о создании пакетов Ruby:\\\\" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Ruby}" msgstr "\\url{http://wiki.debian.org/Ruby}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby}" msgstr "\\url{http://wiki.debian.org/Teams/Ruby}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" msgstr "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (in the \\texttt{gem2deb} " "package)" msgstr "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (in the \\texttt{gem2deb} " "package)" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "Create a basic Debian source package from the \\texttt{net-ssh} gem:\\\\ " "\\texttt{gem2deb net-ssh}" msgstr "" "Создайте простой Debian пакет с исходным кодом из \\texttt{net-ssh} gem:\\\\ " "\\texttt{gem2deb net-ssh}" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Improve it so that it becomes a proper Debian package" msgstr "Улучшите его так, чтобы он стал правильным пакетом Debian" #. type: section{#2} #: packaging-tutorial.tex:1445 msgid "Answers to practical sessions" msgstr "Ответы на практические задания" #. type: center #: packaging-tutorial.tex:1451 msgid "\\LARGE Answers to" msgstr "\\LARGE Ответы на" #. type: center #: packaging-tutorial.tex:1451 msgid "[0.5em] practical sessions" msgstr "[0.5em] практические задания" #. type: frame{#2} #: packaging-tutorial.tex:1509 msgid "Fetching the source" msgstr "Загрузка исходного кода" #. type: enumerate #: packaging-tutorial.tex:1509 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package" msgstr "" "Перейдите по адресу \\url{http://ftp.debian.org/debian/pool/main/g/grep/} и " "загрузите версию 2.6.3-3 пакета" #. type: itemize #: packaging-tutorial.tex:1509 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 "" "Используйте dget, чтобы загрузить файл \\texttt{.dsc}:\\\\ {\\small " "\\texttt{dget http://cdn.debian.net/debian/pool/main/g/grep/grep\\_2.6.3-3." "dsc}}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "" "According to \\url{http://packages.qa.debian.org/grep}, \\texttt{grep} " "version 2.6.3-3 is currently in \\textsl{stable} (\\textsl{squeeze}). 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.6.3-3}\\\\ or " "\\texttt{apt-get source grep/stable}\\\\ or, if you feel lucky: \\texttt{apt-" "get source grep}" msgstr "" "Согласно \\url{http://packages.qa.debian.org/grep}, \\texttt{grep} версии " "2.6.3-3 в настоящее время находится в \\textsl{stable} (\\textsl{squeeze}). " "Если у вас имеются строки \\texttt{deb-src} для \\textsl{squeeze} в вашем " "файле \\texttt{/etc/apt/sources.list}, вы можете использовать:\\\\ " "\\texttt{apt-get source grep=2.6.3-3}\\\\ или \\texttt{apt-get source grep/" "stable}\\\\ или, если считаете, что вам повезёт: \\texttt{apt-get source " "grep}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "The \\texttt{grep} source package is composed of three files:" msgstr "Пакет с исходным кодом \\texttt{grep} содержит три файла:" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.dsc}" msgstr "\\texttt{grep\\_2.6.3-3.dsc}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" msgstr "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3.orig.tar.bz2}" msgstr "\\texttt{grep\\_2.6.3.orig.tar.bz2}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "This is typical of the \"3.0 (quilt)\" format." msgstr "Это обычный формат \"3.0 (quilt)\"." #. type: itemize #: packaging-tutorial.tex:1509 msgid "" "If needed, uncompress the source with\\\\ \\texttt{dpkg-source -x grep" "\\_2.6.3-3.dsc}" msgstr "" "Если это необходимо, распакуйте исходный код при помощи\\\\ \\texttt{dpkg-" "source -x grep\\_2.6.3-3.dsc}" #. type: frame{#2} #: packaging-tutorial.tex:1528 msgid "Looking around and building the package" msgstr "Осматриваем и собираем пакет" #. type: itemize #: packaging-tutorial.tex:1528 msgid "" "According to \\texttt{debian/control}, this package only generates one " "binary package, named \\texttt{grep}." msgstr "" "Согласно \\texttt{debian/control}, этот пакет создаёт только один двоичный " "пакет, а именно \\texttt{grep}." #. type: itemize #: packaging-tutorial.tex:1528 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 "" "Согласно \\texttt{debian/rules}, этот пакет представляет собой типичный " "пакет для \\textsl{классического} debhelper, без использования " "\\textsl{CDBS} или \\textsl{dh}. Можно видеть различные вызовы команд " "\\texttt{dh\\_*} в \\texttt{debian/rules}." #. type: itemize #: packaging-tutorial.tex:1537 msgid "Use \\texttt{apt-get build-dep grep} to fetch the build-dependencies" msgstr "" "Используйте \\texttt{apt-get build-dep grep} для загрузки сборочных " "зависимостей" #. type: itemize #: packaging-tutorial.tex:1537 msgid "" "Then \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc} (Takes about 1 " "min)" msgstr "" "Далее, \\texttt{debuild} или \\texttt{dpkg-buildpackage -us -uc} (Занимает 1 " "минуту)" #. type: frame{#2} #: packaging-tutorial.tex:1541 msgid "Editing the changelog" msgstr "Редактирование журнала изменений" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "\\texttt{debian/changelog} is a text file. You could edit it and add a new " "entry manually." msgstr "" "\\texttt{debian/changelog} является текстовым файлом. Можно отредактировать " "его и добавить новую запись вручную." #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Or you can use \\texttt{dch -i}, which will add an entry and open the editor" msgstr "" "Либо можно использовать \\texttt{dch -i}, который добавит запись и откроет " "редактор" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "The name and email can be defined using the \\texttt{DEBFULLNAME} and " "\\texttt{DEBEMAIL} environment variables" msgstr "" "Имя и адрес электронной почты могут быть определены при помощи переменных " "окружения \\texttt{DEBFULLNAME} и \\texttt{DEBEMAIL}" #. type: itemize #: packaging-tutorial.tex:1558 msgid "After that, rebuild the package: a new version of the package is built" msgstr "После этого соберите пакет заново: будет собрана новая версия пакета" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Package versioning is detailed in section 5.6.12 of the Debian policy\\\\ " "\\url{http://www.debian.org/doc/debian-policy/ch-controlfields}" msgstr "" "Присвоение версий пакетам описывается в разделе 5.6.12 Политики Debian\\\\ " "\\url{http://www.debian.org/doc/debian-policy/ch-controlfields}" #. type: frame{#2} #: packaging-tutorial.tex:1562 msgid "Disabling Perl regexp support and rebuilding" msgstr "Отключение регулярных выражений Perl" #. type: itemize #: packaging-tutorial.tex:1578 msgid "" "Check with \\texttt{./configure -{}-help}: the option to disable Perl regexp " "is \\texttt{-{}-disable-perl-regexp}" msgstr "" "Посмотрите \\texttt{./configure -{}-help}: опция для отключения регулярных " "выражений Perl -- \\texttt{-{}-disable-perl-regexp}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Edit \\texttt{debian/rules} and find the \\texttt{./configure} line" msgstr "" "Откройте для редактирования \\texttt{debian/rules} и найдите строку " "\\texttt{./configure}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Add \\texttt{-{}-disable-perl-regexp}" msgstr "Добавьте \\texttt{-{}-disable-perl-regexp}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Rebuild with \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc}" msgstr "" "Соберите заново при помощи \\texttt{debuild} или \\texttt{dpkg-buildpackage -" "us -uc}" #. type: frame{#2} #: packaging-tutorial.tex:1582 msgid "Comparing and testing the packages" msgstr "Сравнение и тестирование пакетов" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the binary packages: \\texttt{debdiff ../*changes}" msgstr "Сравните двоичные пакеты: \\texttt{debdiff ../*changes}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the source packages: \\texttt{debdiff ../*dsc}" msgstr "Сравните пакеты с исходным кодом: \\texttt{debdiff ../*dsc}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "Install the newly built package: \\texttt{debi}\\\\ Or \\texttt{dpkg -i ../" "grep\\_}" msgstr "" "Установите заново собранный пакет: \\texttt{debi}\\\\ Или \\texttt{dpkg -" "i ../grep\\_}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "\\texttt{grep -P foo} no longer works!" msgstr "\\texttt{grep -P foo} больше не работает!" #. type: frame #: packaging-tutorial.tex:1608 msgid "Or not: reinstall the previous version of the package:" msgstr "Или нет: переустановите предыдущую версию пакета:" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= previous " "version)}" msgstr "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= предыдущая " "версия)}" #. type: frame{#2} #: packaging-tutorial.tex:1655 packaging-tutorial.tex:1769 #: packaging-tutorial.tex:1811 msgid "Step by step\\ldots" msgstr "Шаг за шагом\\ldots" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" msgstr "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" msgstr "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" msgstr "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{cd gnujump-1.0.8/}" msgstr "\\texttt{cd gnujump-1.0.8/}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{dh\\_make}" msgstr "\\texttt{dh\\_make}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "Type of package: single binary (for now)" msgstr "Тип пакета: один двоичный (сейчас)" #. type: lstlisting #: packaging-tutorial.tex:1655 #, 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:1682 packaging-tutorial.tex:1835 msgid "Step by step\\ldots (2)" msgstr "Шаг за шагом\\ldots (2)" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Look at \\texttt{debian/changelog}, \\texttt{debian/rules}, \\texttt{debian/" "control}\\\\ (auto-filled by \\textbf{dh\\_make})" msgstr "" "Посмотрите \\texttt{debian/changelog}, \\texttt{debian/rules}, " "\\texttt{debian/control}\\\\ (заполняются автоматически при помощи " "\\textbf{dh\\_make})" #. type: itemize #: packaging-tutorial.tex:1682 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 "" "В \\texttt{debian/control}:\\\\ \\texttt{Build-Depends: debhelper (>= " "7.0.50~), autotools-dev}\\\\ Приведён список \\textsl{сборочных " "зависимостей} = пакетов, необходимых для сборки пакета" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Try to build the package as-is (thanks to \\textbf{dh} magic)" msgstr "Попробуйте собрать пакет как есть (благодаря магии \\textbf{dh})" #. type: itemize #: packaging-tutorial.tex:1682 msgid "And add build-dependencies, until it builds" msgstr "Добавляйте сборочные зависимости, пока он не будет собираться" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Hint: use \\texttt{apt-cache search} and \\texttt{apt-file} to find the " "packages" msgstr "" "Подсказка: используйте \\texttt{apt-cache search} и \\texttt{apt-file}, " "чтобы найти пакеты" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Example:" msgstr "Пример:" #. type: lstlisting #: packaging-tutorial.tex:1682 #, 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:1682 msgid "" "$\\rightarrow$ Add \\textbf{libsdl1.2-dev} to Build-Depends and install it." msgstr "" "$\\rightarrow$ Добавьте \\textbf{libsdl1.2-dev} в поле Build-Depends и " "установите этот пакет." #. type: itemize #: packaging-tutorial.tex:1682 msgid "Better: use \\textbf{pbuilder} to build in a clean environment" msgstr "Лучше: используйте \\textbf{pbuilder} для сборки в чистом окружении" #. type: frame{#2} #: packaging-tutorial.tex:1710 packaging-tutorial.tex:1849 msgid "Step by step\\ldots (3)" msgstr "Шаг за шагом\\ldots (3)" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "After installing \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-" "mixer1.2-dev}, the package builds fine." msgstr "" "После установки \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-mixer1.2-" "dev}, пакет будет собираться." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debc} to list the content of the generated package." msgstr "" "Используйте \\texttt{debc} для получения списка содержимого созданного " "пакета." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debi} to install it and test it." msgstr "Используйте \\texttt{debi} для установки пакета и тестирования." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Test the package with \\texttt{lintian}" msgstr "Протестируйте пакет при помощи \\texttt{lintian}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "While not a strict requirement, it is recommended that packages uploaded to " "Debian are \\textsl{lintian-clean}" msgstr "" "Хотя это не является строгим требованием, рекомендуется, чтобы пакеты, " "загружаемые в Debian были \\textsl{lintian-clean}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "More problems can be listed using \\texttt{lintian -EviIL +pedantic}" msgstr "" "Дополнительные проблемы могут быть просмотрены при помощи \\texttt{lintian -" "EviIL +pedantic}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Some hints:" msgstr "Несколько подсказок:" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Remove the files that you don't need in \\texttt{debian/}" msgstr "Удалите ненужные вам файлы в \\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Fill in \\texttt{debian/control}" msgstr "Заполните \\texttt{debian/control}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Install the executable to \\texttt{/usr/games} by overriding \\texttt{dh" "\\_auto\\_configure}" msgstr "" "Установите выполняемые файлы в \\texttt{/usr/games}, изменив \\texttt{dh" "\\_auto\\_configure}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Use \\textsl{hardening} compiler flags to increase security.\\\\ See " "\\url{http://wiki.debian.org/Hardening}" msgstr "" "Используйте \\textsl{hardening} флаги компилятора для увеличения " "безопасности.\\\\ См. \\url{http://wiki.debian.org/Hardening}" #. type: frame{#2} #: packaging-tutorial.tex:1723 msgid "Step by step\\ldots (4)" msgstr "Шаг за шагом\\ldots (4)" #. type: itemize #: packaging-tutorial.tex:1723 msgid "Compare your package with the one already packaged in Debian:" msgstr "Сравните ваш пакет с пакетом в Debian:" #. type: itemize #: packaging-tutorial.tex:1723 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 "" "Это выделит файлы с данными во второй пакет, который одинаков для всех " "архитектур ($\\rightarrow$ сохраняет место в архиве Debian)" #. type: itemize #: packaging-tutorial.tex:1723 msgid "" "It installs a .desktop file (for the GNOME/KDE menus) and also integrates " "into the Debian menu" msgstr "" "Это установит файл .desktop (для меню GNOME/KDE), а также интегрирует в меню " "Debian" #. type: itemize #: packaging-tutorial.tex:1723 msgid "It fixes a few minor problems using patches" msgstr "Это исправит несколько небольших проблем при использовании заплат" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{apt-get install javahelper}" msgstr "\\texttt{apt-get install javahelper}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Create a basic source package: \\texttt{jh\\_makepkg}" msgstr "Создайте простой пакет с исходным кодом: \\texttt{jh\\_makepkg}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Library" msgstr "Библиотека" #. type: itemize #: packaging-tutorial.tex:1769 msgid "None" msgstr "Нет" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Default Free compiler/runtime" msgstr "Свободный компилятор/время выполнения по умолчанию" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Look at and fix \\texttt{debian/*}" msgstr "Посмотрите и исправьте \\texttt{debian/*}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{dpkg-buildpackage -us -uc} or \\texttt{debuild}" msgstr "\\texttt{dpkg-buildpackage -us -uc} или \\texttt{debuild}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{lintian}, \\texttt{debc}, etc." msgstr "\\texttt{lintian}, \\texttt{debc} и т.д." #. type: itemize #: packaging-tutorial.tex:1769 msgid "Compare your result with the \\texttt{libirclib-java} source package" msgstr "" "Сравните ваш результат с пакетом с исходным кодом \\texttt{libirclib-java}" #. type: frame #: packaging-tutorial.tex:1811 msgid "\\texttt{gem2deb net-ssh}:" msgstr "\\texttt{gem2deb net-ssh}:" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Downloads the gem from rubygems.org" msgstr "Загрузите gem-пакет с rubygems.org" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Creates a suitable .orig.tar.gz archive, and untar it" msgstr "Создаёт подходящий архив .orig.tar.gz, и распаковывает его" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Initializes a Debian source package based on the gem's metadata" msgstr "" "Инициализирует пакет Debian с исходным кодом на основе метаданных gem-пакета" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Named \\texttt{ruby-\\textsl{gemname}}" msgstr "Имеет имя \\texttt{ruby-\\textsl{имя\\_gem}}" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Tries to build the Debian binary package (this might fail)" msgstr "Пытается собрать двоичных пакет Debian (это может не сработать)" #. type: frame #: packaging-tutorial.tex:1811 msgid "" "\\texttt{dh\\_ruby} (included in \\textsl{gem2deb}) does the Ruby-specific " "tasks:" msgstr "" "\\texttt{dh\\_ruby} (включён в \\textsl{gem2deb}) выполняет специфичные для " "Ruby задачи:" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Build C extensions for each Ruby version" msgstr "Собирает расширения C для каждой версии Ruby" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Copy files to their destination directory" msgstr "Копирует файлы в их каталоги назначения" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Update shebangs in executable scripts" msgstr "Обновляет shebang-и в исполняемых сценариях" #. type: itemize #: packaging-tutorial.tex:1811 msgid "" "Run tests defined in \\texttt{debian/ruby-tests.rb} or \\texttt{debian/ruby-" "test-files.yaml}, as well as various other checks" msgstr "" "Запускает тесты, определённые в \\texttt{debian/ruby-tests.rb} или " "\\texttt{debian/ruby-test-files.yaml}, а также другие проверки" #. type: frame #: packaging-tutorial.tex:1835 msgid "Improve the generated package:" msgstr "Улучшить созданный пакет:" #. Translators: #. This context is very sensitive to line length. If you #. hit errors building the package around this line in your translated version #. see, e.g. in the Spanish or German version for versions with explicit line #. breaks for the translation #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Run \\texttt{debclean} to clean the source tree. Look at \\texttt{debian/}." msgstr "" "Запустите \\texttt{debclean} для очистки дерева исходного кода. Посмотрите " "\\texttt{debian/}." #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{changelog} and \\texttt{compat} should be correct" msgstr "\\texttt{changelog} и \\texttt{compat} должны быть верны" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Edit \\texttt{debian/control}: uncomment \\texttt{Homepage}, improve " "\\texttt{Description}" msgstr "" "Отредактируйте \\texttt{debian/control}: раскомментируйте " "\\texttt{Homepage}, улучшите \\texttt{Description}" #. type: itemize #: packaging-tutorial.tex:1835 msgid "Write a proper \\texttt{copyright} file based on the upstream files" msgstr "" "Напишите правильный файл \\texttt{copyright} на основе файлов из основной " "ветки разработки" #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{ruby-net-ssh.docs}: install \\texttt{README.rdoc}" msgstr "\\texttt{ruby-net-ssh.docs}: установить \\texttt{README.rdoc}" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "\\texttt{ruby-tests.rb}: run the tests. In that case, it is enough to do:\\" "\\ \\verb+$: << 'test' << 'lib' << '.'+\\\\ \\verb+require 'test/test_all." "rb'+" msgstr "" "\\texttt{ruby-tests.rb}: запустить тесты. В этом случае достаточно сделать:\\" "\\ \\verb+$: << 'test' << 'lib' << '.'+\\\\ \\verb+require 'test/test_all." "rb'+" #. type: frame #: packaging-tutorial.tex:1849 msgid "Build the package. It fails to build. There are two problems:" msgstr "Соберите пакет. Он не будет собран. Имеются две проблемы:" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "You need to disable the \\texttt{gem} call in the test suite.\\\\ In " "\\texttt{test/common.rb}, remove the \\verb+gem \"test-unit\"+ line:" msgstr "" "Вам следует отключить вызов \\texttt{gem} в тестовом наборе.\\\\ В " "\\texttt{test/common.rb} удалите строку \\verb+gem \"test-unit\"+:" #. type: itemize #: packaging-tutorial.tex:1849 msgid "\\texttt{edit-patch disable-gem.patch}" msgstr "\\texttt{edit-patch disable-gem.patch}" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "Edit \\texttt{test/common.rb}, remove the \\texttt{gem} line. Exit the sub-" "shell" msgstr "" "Отредактируйте \\texttt{test/common.rb}, удалите строку \\texttt{gem}. " "Выйдите из запущенной дополнительно оболочки" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Describe the changes in \\texttt{debian/changelog}" msgstr "Опишите изменения в \\texttt{debian/changelog}" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Document the patch in \\texttt{debian/patches/disable-gem.patch}" msgstr "Документируйте заплату в \\texttt{debian/patches/disable-gem.patch}" #. type: itemize #: packaging-tutorial.tex:1854 msgid "" "The package lacks a build-dependency on \\texttt{ruby-mocha}, which is used " "by the test suite (you might need to build your package in a clean " "environment, using \\texttt{pbuilder}, to reproduce that problem)" msgstr "" "У пакета отсутствует сборочная зависимость от \\texttt{ruby-mocha}, который " "используется в тестовом наборе (вам может потребоваться собрать ваш пакет в " "чистом окружении при помощи \\texttt{pbuilder}, чтобы воспроизвести эту " "проблему)" #. type: itemize #: packaging-tutorial.tex:1857 msgid "Add \\texttt{ruby-mocha} to the package's \\texttt{Build-Depends}" msgstr "Добавьте \\texttt{ruby-mocha} в поле \\texttt{Build-Depends} пакета" #. type: itemize #: packaging-tutorial.tex:1868 msgid "" "\\textsl{gem2deb} copies the dependencies documented in the \\textsl{gem} as " "comments in \\texttt{debian/control}, but \\textsl{mocha} is not listed as a " "development dependency by the gem (that's a bug in the gem)" msgstr "" "\\textsl{gem2deb} копирует зависимости, обозначенные в \\textsl{gem} как " "комментарии в \\texttt{debian/control}, но \\textsl{mocha} не указан как " "сборочная зависимость в gem-пакете (это ошибка в gem-пакете)" #. type: frame #: packaging-tutorial.tex:1868 msgid "" "Compare your package with the \\texttt{ruby-net-ssh} package in the Debian " "archive" msgstr "Сравните ваш пакет с пакетом \\texttt{ruby-net-ssh} в архиве Debian" packaging-tutorial-0.12/po4a/po/packaging-tutorial.pot0000644000000000000000000026140312234414737017716 0ustar # SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2013-10-29 20:42+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \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 \\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-tutorial@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.11 -- 2013-10-29" 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" "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 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{http://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" "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{http://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:737 msgid "\\textttc{debuild}: build, test with \\texttt{lintian}, sign with GPG" msgstr "" #. type: itemize #: packaging-tutorial.tex:737 msgid "Also possible to call \\textttc{dpkg-buildpackage} directly" msgstr "" #. type: itemize #: packaging-tutorial.tex:737 msgid "Usually with \\texttt{dpkg-buildpackage -us -uc}" msgstr "" #. type: itemize #: packaging-tutorial.tex:737 msgid "It is better to build packages in a clean \\& minimal environment" msgstr "" #. type: itemize #: packaging-tutorial.tex:737 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:737 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:737 msgid "Generates \\texttt{.deb} files and a \\texttt{.changes} file" msgstr "" #. type: itemize #: packaging-tutorial.tex:737 msgid "\\texttt{.changes}: describes what was built; used to upload the package" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:737 packaging-tutorial.tex:737 msgid "Installing and testing packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Install the package locally: \\textttc{debi} (will use \\texttt{.changes} to " "know what to install)" msgstr "" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "List the content of the package: \\texttt{{\\color{rouge}debc} " "../mypackage.changes}" msgstr "" #. type: itemize #: packaging-tutorial.tex:737 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:737 msgid "" "Check the package with \\texttt{lintian} (static analyzer):\\\\ " "\\texttt{{\\color{rouge}lintian} ../mypackage.changes}\\\\ " "\\texttt{lintian -i}: gives more information about the errors \\\\ " "\\texttt{lintian -EviIL +pedantic}: shows more problems" msgstr "" #. type: itemize #: packaging-tutorial.tex:737 msgid "Upload the package to Debian (\\textttc{dput}) (needs configuration)" msgstr "" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Manage a private Debian archive with \\textttc{reprepro}\\\\ Documentation: " "\\url{http://mirrorer.alioth.debian.org/}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:737 packaging-tutorial.tex:737 packaging-tutorial.tex:1454 packaging-tutorial.tex:1460 msgid "Practical session 1: modifying the grep package" msgstr "" #. type: enumerate #: packaging-tutorial.tex:737 packaging-tutorial.tex:1460 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package (if you use Ubuntu 11.10 or later, or Debian " "testing or unstable, use version 2.9-1 or 2.9-2 instead)" msgstr "" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "If the source package is not unpacked automatically, unpack it with " "\\texttt{dpkg-source~-x~grep\\_*.dsc}" msgstr "" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 packaging-tutorial.tex:1528 msgid "Look at the files in \\texttt{debian/}." msgstr "" #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 packaging-tutorial.tex:1528 msgid "How many binary packages are generated by this source package?" msgstr "" #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 packaging-tutorial.tex:1528 msgid "Which packaging helper does this package use?" msgstr "" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 packaging-tutorial.tex:1537 msgid "Build the package" msgstr "" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 packaging-tutorial.tex:1558 msgid "" "We are now going to modify the package. Add a changelog entry and increase " "the version number." msgstr "" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 packaging-tutorial.tex:1578 msgid "Now disable perl-regexp support (it is a \\texttt{./configure} option)" msgstr "" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 packaging-tutorial.tex:1578 msgid "Rebuild the package" msgstr "" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 packaging-tutorial.tex:1608 msgid "Compare the original and the new package with debdiff" msgstr "" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 packaging-tutorial.tex:1608 msgid "Install the newly built package" msgstr "" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 packaging-tutorial.tex:1608 msgid "Cry if you messed up ;)" msgstr "" #. type: section{#2} #: packaging-tutorial.tex:775 msgid "Advanced packaging topics" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:775 packaging-tutorial.tex:775 msgid "debian/copyright" msgstr "" #. type: itemize #: packaging-tutorial.tex:775 msgid "Copyright and license information for the source and the packaging" msgstr "" #. type: itemize #: packaging-tutorial.tex:775 msgid "Traditionally written as a text file" msgstr "" #. type: itemize #: packaging-tutorial.tex:775 msgid "" "New machine-readable format: " "{\\small\\url{http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/}}" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:775 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Format: http://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:785 #, no-wrap msgid "" "Files: *\n" "Copyright: Copyright 1998 John Doe \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:790 #, no-wrap msgid "" "Files: debian/*\n" "Copyright: Copyright 1998 Jane Smith \n" "License:\n" " [LICENSE TEXT]" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:821 packaging-tutorial.tex:821 msgid "Modifying the upstream source" msgstr "" #. type: frame #: packaging-tutorial.tex:821 msgid "Often needed:" msgstr "" #. type: itemize #: packaging-tutorial.tex:821 msgid "Fix bugs or add customizations that are specific to Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:821 msgid "Backport fixes from a newer upstream release" msgstr "" #. type: frame #: packaging-tutorial.tex:821 msgid "Several methods to do it:" msgstr "" #. type: itemize #: packaging-tutorial.tex:821 msgid "Modifying the files directly" msgstr "" #. type: itemize #: packaging-tutorial.tex:821 msgid "Simple" msgstr "" #. type: itemize #: packaging-tutorial.tex:821 msgid "But no way to track and document the changes" msgstr "" #. type: itemize #: packaging-tutorial.tex:821 msgid "Using patch systems" msgstr "" #. type: itemize #: packaging-tutorial.tex:821 msgid "Eases contributing your changes to upstream" msgstr "" #. type: itemize #: packaging-tutorial.tex:821 msgid "Helps sharing the fixes with derivatives" msgstr "" #. type: itemize #: packaging-tutorial.tex:821 msgid "" "Gives more exposure to the changes\\\\ " "\\url{http://patch-tracker.debian.org/}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:851 msgid "Patch systems" msgstr "" #. type: itemize #: packaging-tutorial.tex:851 msgid "Principle: changes are stored as patches in \\texttt{debian/patches/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:851 msgid "Applied and unapplied during build" msgstr "" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Past: several implementations -- \\textsl{simple-patchsys} (\\textsl{cdbs}), " "\\textsl{dpatch}, \\textbf{\\textsl{quilt}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:851 msgid "Each supports two \\texttt{debian/rules} targets:" msgstr "" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules patch}: apply all patches" msgstr "" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules unpatch}: de-apply all patches" msgstr "" #. type: itemize #: packaging-tutorial.tex:851 msgid "More documentation: \\url{http://wiki.debian.org/debian/patches}" msgstr "" #. type: textbf{#1} #: packaging-tutorial.tex:851 msgid "New source package format with built-in patch system: 3.0 (quilt)" msgstr "" #. type: itemize #: packaging-tutorial.tex:851 msgid "Recommended solution" msgstr "" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "You need to learn \\textsl{quilt}\\\\ " "\\url{http://pkg-perl.alioth.debian.org/howto/quilt.html}" msgstr "" #. type: itemize #: packaging-tutorial.tex:851 msgid "Patch-system-agnostic tool in \\texttt{devscripts}: \\texttt{edit-patch}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:868 msgid "Documentation of patches" msgstr "" #. type: itemize #: packaging-tutorial.tex:868 msgid "Standard headers at the beginning of the patch" msgstr "" #. type: itemize #: packaging-tutorial.tex:868 msgid "" "Documented in DEP-3 - Patch Tagging Guidelines\\\\ " "\\url{http://dep.debian.net/deps/dep3/}" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:868 #, 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 \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:872 #, 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:892 packaging-tutorial.tex:892 msgid "Doing things during installation and removal" msgstr "" #. type: itemize #: packaging-tutorial.tex:892 msgid "Decompressing the package is sometimes not enough" msgstr "" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Create/remove system users, start/stop services, manage " "\\textsl{alternatives}" msgstr "" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Done in \\textsl{maintainer scripts}\\\\ \\texttt{preinst, postinst, prerm, " "postrm}" msgstr "" #. type: itemize #: packaging-tutorial.tex:892 msgid "Snippets for common actions can be generated by debhelper" msgstr "" #. type: itemize #: packaging-tutorial.tex:892 msgid "Documentation:" msgstr "" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Debian Policy Manual, chapter 6\\\\ {\\footnotesize " "\\url{http://www.debian.org/doc/debian-policy/ch-maintainerscripts}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Debian Developer's Reference, chapter 6.4\\\\ {\\scriptsize " "\\url{http://www.debian.org/doc/developers-reference/best-pkging-practices.html}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "{\\footnotesize " "\\url{http://people.debian.org/~srivasta/MaintainerScripts.html}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:908 msgid "Prompting the user" msgstr "" #. type: itemize #: packaging-tutorial.tex:908 msgid "Must be done with \\textbf{debconf}" msgstr "" #. type: itemize #: packaging-tutorial.tex:908 msgid "Documentation: \\texttt{debconf-devel(7)} (\\texttt{debconf-doc} package)" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:914 msgid "Monitoring upstream versions" msgstr "" #. type: itemize #: packaging-tutorial.tex:914 msgid "Specify where to look in \\texttt{debian/watch} (see \\texttt{uscan(1)})" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:914 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:917 #, no-wrap msgid "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " msgstr "" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Debian infrastructure that makes use of \\texttt{debian/watch}:\\\\ " "\\textbf{Debian External Health Status}\\\\ " "\\url{http://dehs.alioth.debian.org/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Maintainer warned by emails sent to the Package Tracking System\\\\ " "\\url{http://packages.qa.debian.org/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:931 msgid "\\texttt{uscan}: run a manual check" msgstr "" #. type: itemize #: packaging-tutorial.tex:931 msgid "\\texttt{uupdate}: try to update your package to the latest upstream version" msgstr "" #. type: subsection{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System (SVN, Git)" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System" msgstr "" #. type: itemize #: packaging-tutorial.tex:969 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:969 msgid "Example: \\texttt{git-buildpackage}" msgstr "" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{upstream} branch to track upstream with " "\\texttt{upstream/\\textsl{version}} tags" msgstr "" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{master} branch tracks the Debian package" msgstr "" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{debian/\\textsl{version}} tags for each upload" msgstr "" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{pristine-tar} branch to be able to rebuild the upstream tarball" msgstr "" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{Vcs-*} fields in \\texttt{debian/control} to locate the repository" msgstr "" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Git}" msgstr "" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Svn}" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:969 #, 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:969 #, 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:969 msgid "" "VCS-agnostic interface: \\texttt{debcheckout}, \\texttt{debcommit}, " "\\texttt{debrelease}\\\\" msgstr "" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{debcheckout grep} $\\rightarrow$ checks out the source package from " "Git" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:992 packaging-tutorial.tex:992 msgid "Backporting packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:992 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:992 msgid "General idea:" msgstr "" #. type: itemize #: packaging-tutorial.tex:992 msgid "Take the source package from Debian unstable" msgstr "" #. type: itemize #: packaging-tutorial.tex:992 msgid "Modify it so that it builds and works fine on Debian stable" msgstr "" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes trivial (no changes needed)" msgstr "" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes difficult" msgstr "" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes impossible (many unavailable dependencies)" msgstr "" #. type: itemize #: packaging-tutorial.tex:992 msgid "" "Some backports are provided and supported by the Debian project\\\\ " "\\url{http://backports.debian.org/}" msgstr "" #. type: section{#2} #: packaging-tutorial.tex:1023 msgid "Maintaining packages in Debian" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1023 packaging-tutorial.tex:1023 msgid "Several ways to contribute to Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Worst} way to contribute:" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Package your own application" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Get it into Debian" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Disappear" msgstr "" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Better} ways to contribute:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Get involved in packaging teams" msgstr "" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Many teams that focus on set of packages, and need help" msgstr "" #. type: itemize #: packaging-tutorial.tex:1023 msgid "List available at \\url{http://wiki.debian.org/Teams}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1023 msgid "An excellent way to learn from more experienced contributors" msgstr "" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Adopt existing unmaintained packages (\\textsl{orphaned packages})" msgstr "" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Bring new software to Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Only if it's interesting/useful enough, please" msgstr "" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Are there alternatives already packaged in Debian?" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1061 packaging-tutorial.tex:1061 msgid "Adopting orphaned packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Many unmaintained packages in Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Full list + process: \\url{http://www.debian.org/devel/wnpp/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Installed on your machine: \\texttt{wnpp-alert}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Different states:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1061 msgid "\\textbf{O}rphaned: the package is unmaintained\\\\ Feel free to adopt it" msgstr "" #. type: itemize #: packaging-tutorial.tex:1061 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:1061 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:1061 msgid "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp\\\\ The " "maintainer is looking for help" msgstr "" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Some unmaintained packages not detected \\arr not orphaned yet" msgstr "" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "When in doubt, ask \\texttt{debian-qa@lists.debian.org} \\\\ or " "\\texttt{\\#debian-qa} on \\texttt{irc.debian.org}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1068 msgid "Adopting a package: example" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1068 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "From: You \n" "To: 640454@bugs.debian.org, control@bugs.debian.org\n" "Cc: Francois Marier \n" "Subject: ITA: verbiste -- French conjugator\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1072 #, no-wrap msgid "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1074 #, no-wrap msgid "" "Hi,\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1076 #, 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:1078 #, no-wrap msgid "" "Cheers,\n" "\n" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1080 #, no-wrap msgid "You" msgstr "" #. type: itemize #: packaging-tutorial.tex:1087 msgid "" "Polite to contact the previous maintainer (especially if the package was " "RFAed, not orphaned)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1087 msgid "Very good idea to contact the upstream project" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1111 packaging-tutorial.tex:1111 msgid "Getting your package in Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:1111 msgid "You do not need any official status to get your package into Debian" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1111 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:1111 msgid "Prepare a source package" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "Find a Debian Developer that will sponsor your package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1111 msgid "Official status (when you are an experienced package maintainer):" msgstr "" #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Maintainer (DM):}\\\\ Permission to upload your own " "packages\\\\ See \\url{http://wiki.debian.org/DebianMaintainer}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Developer (DD):}\\\\ Debian project member; can vote and " "upload any package" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1139 msgid "Things to check before asking for sponsorship" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Debian puts \\textbf{a lot of focus on quality}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Generally, \\textbf{sponsors are hard to find and busy}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Make sure your package is ready before asking for sponsorship" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Things to check:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 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:1139 msgid "Using \\texttt{pbuilder} is recommended" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Run \\texttt{lintian -EviIL +pedantic} on your package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Errors must be fixed, all other problems should be fixed" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Do extensive testing of your package, of course" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "In doubt, ask for help" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1174 packaging-tutorial.tex:1174 msgid "Where to find help?" msgstr "" #. type: frame #: packaging-tutorial.tex:1174 msgid "Help you will need:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Advice and answers to your questions, code reviews" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Sponsorship for your uploads, once your package is ready" msgstr "" #. type: frame #: packaging-tutorial.tex:1174 msgid "You can get help from:" msgstr "" #. type: textbf{#1} #: packaging-tutorial.tex:1174 msgid "Other members of a packaging team" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "List of teams: \\url{http://wiki.debian.org/Teams}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "The \\textbf{Debian Mentors group} (if your package does not fit in a team)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://wiki.debian.org/DebianMentorsFaq}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "Mailing list: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (also a " "good way to learn by accident)}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "IRC: \\texttt{\\#debian-mentors} on \\texttt{irc.debian.org}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://mentors.debian.net/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Documentation: \\url{http://mentors.debian.net/intro-maintainers}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\textbf{Localized mailing lists} (get help in your language)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\texttt{debian-devel-\\{french,italian,portuguese,spanish\\}@lists.d.o}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Full list: \\url{https://lists.debian.org/devel.html}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Or users lists: \\url{https://lists.debian.org/users.html}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1192 packaging-tutorial.tex:1192 msgid "More documentation" msgstr "" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developers' Corner\\\\ \\url{http://www.debian.org/devel/}\\\\ " "{\\small Links to many resources about Debian development}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian New Maintainers' Guide\\\\ " "\\url{http://www.debian.org/doc/maint-guide/}\\\\ {\\small An introduction " "to Debian packaging, but could use an update}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developer's Reference\\\\ " "\\url{http://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:1192 msgid "Debian Policy\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\" msgstr "" #. type: itemize #: packaging-tutorial.tex:1198 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:1203 msgid "" "Ubuntu Packaging Guide\\\\ " "\\url{http://developer.ubuntu.com/resources/tools/packaging/}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1217 packaging-tutorial.tex:1217 msgid "Debian dashboards for maintainers" msgstr "" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Source package centric}: Package Tracking System (PTS)\\\\ " "\\url{http://packages.qa.debian.org/dpkg}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Maintainer/team centric}: Developer's Packages Overview (DDPO)\\\\ " "\\url{http://qa.debian.org/developer.php?login=pkg-ruby-extras-maintainers@lists.alioth.debian.org}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{TODO-list oriented}: Debian Maintainer Dashboard (DMD)\\\\ " "\\url{http://udd.debian.org/dmd.cgi}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1245 msgid "Using the Debian Bug Tracking System (BTS)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "A quite unique way to manage bugs" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Web interface to view bugs" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Email interface to make changes to bugs" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Adding information to bugs:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Write to \\texttt{123456@bugs.debian.org} (does not include the submitter, " "you need to add \\texttt{123456-submitter@bugs.debian.org})" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Changing bug status:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Send commands to \\texttt{control@bugs.debian.org}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Command-line interface: \\texttt{bts} command in \\texttt{devscripts}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Documentation: \\url{http://www.debian.org/Bugs/server-control}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Reporting bugs: use \\texttt{reportbug}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Normally used with a local mail server: install \\texttt{ssmtp} or " "\\texttt{nullmailer}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Or use \\texttt{reportbug -\\@-template}, then send (manually) to " "\\texttt{submit@bugs.debian.org}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1271 msgid "Using the BTS: examples" msgstr "" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Sending an email to the bug and the submitter:\\\\ " "\\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#10}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Tagging and changing the severity:\\\\ " "\\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680227\\#10}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Reassigning, changing the severity, retitling \\ldots: \\\\ " "\\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#93}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1271 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:1271 msgid "" "Using usertags: " "\\url{http://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:1271 msgid "BTS Documentation:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1271 msgid "\\url{http://www.debian.org/Bugs/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1271 msgid "\\url{https://wiki.debian.org/HowtoUseBTS}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1298 packaging-tutorial.tex:1298 msgid "More interested in Ubuntu?" msgstr "" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu mainly manages the divergence with Debian" msgstr "" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "No real focus on specific packages\\\\ Instead, collaboration with Debian " "teams" msgstr "" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "Usually recommend uploading new packages to Debian first\\\\ " "\\url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Possibly a better plan:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Get involved in a Debian team and act as a bridge with Ubuntu" msgstr "" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Help reduce divergence, triage bugs in Launchpad" msgstr "" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Many Debian tools can help:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu column on the Developer's packages overview" msgstr "" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu box on the Package Tracking System" msgstr "" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Receive launchpad bugmail via the PTS" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1328 packaging-tutorial.tex:1328 packaging-tutorial.tex:1328 msgid "Conclusions" msgstr "" #. type: itemize #: packaging-tutorial.tex:1328 msgid "You now have a full overview of Debian packaging" msgstr "" #. type: itemize #: packaging-tutorial.tex:1328 msgid "But you will need to read more documentation" msgstr "" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Best practices have evolved over the years" msgstr "" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "If not sure, use the \\textbf{dh} packaging helper, and the \\textbf{3.0 " "(quilt)} format" msgstr "" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Things that were not covered in this tutorial:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1328 msgid "UCF -- manage user changes to configuration files when upgrading" msgstr "" #. type: itemize #: packaging-tutorial.tex:1328 msgid "dpkg triggers -- group similar maintainer scripts actions together" msgstr "" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian development organization:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "Suites: stable, testing, unstable, experimental, security, *-updates, " "backports, \\ldots" msgstr "" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian Blends -- subsets of Debian targeting specific groups" msgstr "" #. type: centerline{#1} #: packaging-tutorial.tex:1328 msgid "\\large Feedback: \\textbf{packaging-tutorial@packages.debian.org}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1331 packaging-tutorial.tex:1331 msgid "Legal stuff" msgstr "" #. type: frame #: packaging-tutorial.tex:1334 msgid "Copyright \\copyright 2011--2013 Lucas Nussbaum -- lucas@debian.org" msgstr "" #. type: frame #: packaging-tutorial.tex:1350 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:1379 packaging-tutorial.tex:1379 msgid "Contribute to this tutorial" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Contribute:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{apt-get source packaging-tutorial}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{debcheckout packaging-tutorial}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\texttt{git clone\\\\ " "git://git.debian.org/collab-maint/packaging-tutorial.git}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small " "\\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small Open bugs: \\url{bugs.debian.org/src:packaging-tutorial}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Provide feedback:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 msgid "\\href{mailto:packaging-tutorial@packages.debian.org}{\\textbf{\\texttt{mailto:packaging-tutorial@packages.debian.org}}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be added to this tutorial?}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be improved?}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{reportbug packaging-tutorial}}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 packaging-tutorial.tex:1626 msgid "Practical session 2: packaging GNUjump" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 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:1397 packaging-tutorial.tex:1626 msgid "Create a Debian package for it" msgstr "" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Install build-dependencies so that you can build the package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Get a basic working package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Finish filling \\texttt{debian/control} and other files" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Enjoy" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 packaging-tutorial.tex:1748 msgid "Practical session 3: packaging a Java library" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Take a quick look at some documentation about Java packaging:\\\\" msgstr "" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java/Packaging}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 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:1422 packaging-tutorial.tex:1748 msgid "Download IRClib from \\url{http://moepii.sourceforge.net/}" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Package it" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 packaging-tutorial.tex:1790 msgid "Practical session 4: packaging a Ruby gem" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Take a quick look at some documentation about Ruby packaging:\\\\" msgstr "" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Ruby}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (in the \\texttt{gem2deb} " "package)" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "Create a basic Debian source package from the \\texttt{net-ssh} gem:\\\\ " "\\texttt{gem2deb net-ssh}" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Improve it so that it becomes a proper Debian package" msgstr "" #. type: section{#2} #: packaging-tutorial.tex:1445 msgid "Answers to practical sessions" msgstr "" #. type: center #: packaging-tutorial.tex:1451 msgid "\\LARGE Answers to" msgstr "" #. type: center #: packaging-tutorial.tex:1451 msgid "[0.5em] practical sessions" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1509 msgid "Fetching the source" msgstr "" #. type: enumerate #: packaging-tutorial.tex:1509 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:1509 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:1509 msgid "" "According to \\url{http://packages.qa.debian.org/grep}, \\texttt{grep} " "version 2.6.3-3 is currently in \\textsl{stable} (\\textsl{squeeze}). 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.6.3-3}\\\\ or \\texttt{apt-get source grep/stable}\\\\ or, if you " "feel lucky: \\texttt{apt-get source grep}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1509 msgid "The \\texttt{grep} source package is composed of three files:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.dsc}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3.orig.tar.bz2}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1509 msgid "This is typical of the \"3.0 (quilt)\" format." msgstr "" #. type: itemize #: packaging-tutorial.tex:1509 msgid "" "If needed, uncompress the source with\\\\ \\texttt{dpkg-source -x " "grep\\_2.6.3-3.dsc}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1528 msgid "Looking around and building the package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1528 msgid "" "According to \\texttt{debian/control}, this package only generates one " "binary package, named \\texttt{grep}." msgstr "" #. type: itemize #: packaging-tutorial.tex:1528 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:1537 msgid "Use \\texttt{apt-get build-dep grep} to fetch the build-dependencies" msgstr "" #. type: itemize #: packaging-tutorial.tex:1537 msgid "" "Then \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc} (Takes about 1 " "min)" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1541 msgid "Editing the changelog" msgstr "" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "\\texttt{debian/changelog} is a text file. You could edit it and add a new " "entry manually." msgstr "" #. type: itemize #: packaging-tutorial.tex:1558 msgid "Or you can use \\texttt{dch -i}, which will add an entry and open the editor" msgstr "" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "The name and email can be defined using the \\texttt{DEBFULLNAME} and " "\\texttt{DEBEMAIL} environment variables" msgstr "" #. type: itemize #: packaging-tutorial.tex:1558 msgid "After that, rebuild the package: a new version of the package is built" msgstr "" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Package versioning is detailed in section 5.6.12 of the Debian policy\\\\ " "\\url{http://www.debian.org/doc/debian-policy/ch-controlfields}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1562 msgid "Disabling Perl regexp support and rebuilding" msgstr "" #. type: itemize #: packaging-tutorial.tex:1578 msgid "" "Check with \\texttt{./configure -{}-help}: the option to disable Perl regexp " "is \\texttt{-{}-disable-perl-regexp}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Edit \\texttt{debian/rules} and find the \\texttt{./configure} line" msgstr "" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Add \\texttt{-{}-disable-perl-regexp}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Rebuild with \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1582 msgid "Comparing and testing the packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the binary packages: \\texttt{debdiff ../*changes}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the source packages: \\texttt{debdiff ../*dsc}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "Install the newly built package: \\texttt{debi}\\\\ Or \\texttt{dpkg -i " "../grep\\_}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1608 msgid "\\texttt{grep -P foo} no longer works!" msgstr "" #. type: frame #: packaging-tutorial.tex:1608 msgid "Or not: reinstall the previous version of the package:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= previous " "version)}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1655 packaging-tutorial.tex:1769 packaging-tutorial.tex:1811 msgid "Step by step\\ldots" msgstr "" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{cd gnujump-1.0.8/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{dh\\_make}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1655 msgid "Type of package: single binary (for now)" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1655 #, 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:1682 packaging-tutorial.tex:1835 msgid "Step by step\\ldots (2)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Look at \\texttt{debian/changelog}, \\texttt{debian/rules}, " "\\texttt{debian/control}\\\\ (auto-filled by \\textbf{dh\\_make})" msgstr "" #. type: itemize #: packaging-tutorial.tex:1682 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:1682 msgid "Try to build the package as-is (thanks to \\textbf{dh} magic)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1682 msgid "And add build-dependencies, until it builds" msgstr "" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Hint: use \\texttt{apt-cache search} and \\texttt{apt-file} to find the " "packages" msgstr "" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Example:" msgstr "" #. type: lstlisting #: packaging-tutorial.tex:1682 #, 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:1682 msgid "$\\rightarrow$ Add \\textbf{libsdl1.2-dev} to Build-Depends and install it." msgstr "" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Better: use \\textbf{pbuilder} to build in a clean environment" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1710 packaging-tutorial.tex:1849 msgid "Step by step\\ldots (3)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "After installing \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, " "libsdl-mixer1.2-dev}, the package builds fine." msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debc} to list the content of the generated package." msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debi} to install it and test it." msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Test the package with \\texttt{lintian}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "While not a strict requirement, it is recommended that packages uploaded to " "Debian are \\textsl{lintian-clean}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "More problems can be listed using \\texttt{lintian -EviIL +pedantic}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Some hints:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Remove the files that you don't need in \\texttt{debian/}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Fill in \\texttt{debian/control}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Install the executable to \\texttt{/usr/games} by overriding " "\\texttt{dh\\_auto\\_configure}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Use \\textsl{hardening} compiler flags to increase security.\\\\ See " "\\url{http://wiki.debian.org/Hardening}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1723 msgid "Step by step\\ldots (4)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1723 msgid "Compare your package with the one already packaged in Debian:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1723 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:1723 msgid "" "It installs a .desktop file (for the GNOME/KDE menus) and also integrates " "into the Debian menu" msgstr "" #. type: itemize #: packaging-tutorial.tex:1723 msgid "It fixes a few minor problems using patches" msgstr "" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{apt-get install javahelper}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Create a basic source package: \\texttt{jh\\_makepkg}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Library" msgstr "" #. type: itemize #: packaging-tutorial.tex:1769 msgid "None" msgstr "" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Default Free compiler/runtime" msgstr "" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Look at and fix \\texttt{debian/*}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{dpkg-buildpackage -us -uc} or \\texttt{debuild}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{lintian}, \\texttt{debc}, etc." msgstr "" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Compare your result with the \\texttt{libirclib-java} source package" msgstr "" #. type: frame #: packaging-tutorial.tex:1811 msgid "\\texttt{gem2deb net-ssh}:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Downloads the gem from rubygems.org" msgstr "" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Creates a suitable .orig.tar.gz archive, and untar it" msgstr "" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Initializes a Debian source package based on the gem's metadata" msgstr "" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Named \\texttt{ruby-\\textsl{gemname}}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Tries to build the Debian binary package (this might fail)" msgstr "" #. type: frame #: packaging-tutorial.tex:1811 msgid "" "\\texttt{dh\\_ruby} (included in \\textsl{gem2deb}) does the Ruby-specific " "tasks:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Build C extensions for each Ruby version" msgstr "" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Copy files to their destination directory" msgstr "" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Update shebangs in executable scripts" msgstr "" #. type: itemize #: packaging-tutorial.tex:1811 msgid "" "Run tests defined in \\texttt{debian/ruby-tests.rb} or " "\\texttt{debian/ruby-test-files.yaml}, as well as various other checks" msgstr "" #. type: frame #: packaging-tutorial.tex:1835 msgid "Improve the generated package:" msgstr "" #. Translators: #. This context is very sensitive to line length. If you #. hit errors building the package around this line in your translated version #. see, e.g. in the Spanish or German version for versions with explicit line #. breaks for the translation #. type: itemize #: packaging-tutorial.tex:1835 msgid "Run \\texttt{debclean} to clean the source tree. Look at \\texttt{debian/}." msgstr "" #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{changelog} and \\texttt{compat} should be correct" msgstr "" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Edit \\texttt{debian/control}: uncomment \\texttt{Homepage}, improve " "\\texttt{Description}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1835 msgid "Write a proper \\texttt{copyright} file based on the upstream files" msgstr "" #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{ruby-net-ssh.docs}: install \\texttt{README.rdoc}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "\\texttt{ruby-tests.rb}: run the tests. In that case, it is enough to " "do:\\\\ \\verb+$: << 'test' << 'lib' << '.'+\\\\ \\verb+require " "'test/test_all.rb'+" msgstr "" #. type: frame #: packaging-tutorial.tex:1849 msgid "Build the package. It fails to build. There are two problems:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "You need to disable the \\texttt{gem} call in the test suite.\\\\ In " "\\texttt{test/common.rb}, remove the \\verb+gem \"test-unit\"+ line:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1849 msgid "\\texttt{edit-patch disable-gem.patch}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "Edit \\texttt{test/common.rb}, remove the \\texttt{gem} line. Exit the " "sub-shell" msgstr "" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Describe the changes in \\texttt{debian/changelog}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Document the patch in \\texttt{debian/patches/disable-gem.patch}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1854 msgid "" "The package lacks a build-dependency on \\texttt{ruby-mocha}, which is used " "by the test suite (you might need to build your package in a clean " "environment, using \\texttt{pbuilder}, to reproduce that problem)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1857 msgid "Add \\texttt{ruby-mocha} to the package's \\texttt{Build-Depends}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1868 msgid "" "\\textsl{gem2deb} copies the dependencies documented in the \\textsl{gem} as " "comments in \\texttt{debian/control}, but \\textsl{mocha} is not listed as a " "development dependency by the gem (that's a bug in the gem)" msgstr "" #. type: frame #: packaging-tutorial.tex:1868 msgid "" "Compare your package with the \\texttt{ruby-net-ssh} package in the Debian " "archive" msgstr "" packaging-tutorial-0.12/po4a/po/es.po0000644000000000000000000043567012234414737014365 0ustar # packaging-tutorial po4a translation to Spanish # Copyright (C) 2011 - 2012 Software in the Public Interest # Thes file is distributed under the same license as the packaging-tutorial package. # # Changes: # - Initial translation # Omar Campagne , 2011, 2012 # # - Updates # TRANSLATOR # # Traductores, si no conocen el formato PO, merece la pena leer la # documentación de gettext, especialmente las secciones dedicadas a este # formato, por ejemplo ejecutando: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Equipo de traducción al español, por favor lean antes de traducir # los siguientes documentos: # # - El proyecto de traducción de Debian al español # http://www.debian.org/intl/spanish/ # especialmente las notas y normas de traducción en # http://www.debian.org/intl/spanish/notas # # - La guía de traducción de po's de debconf: # /usr/share/doc/po-debconf/README-trans # o http://www.debian.org/intl/l10n/po-debconf/README-trans # msgid "" msgstr "" "Project-Id-Version: packaging-tutorial 0.6\n" "POT-Creation-Date: 2013-10-29 20:42+0100\n" "PO-Revision-Date: 2012-07-12 14:01+0200\n" "Last-Translator: Omar Campagne \n" "Language-Team: Debian l10n Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Virtaal 0.7.1\n" #. type: Plain text #: packaging-tutorial.tex:4 msgid "\\mode \\usetheme{debian}" msgstr "\\mode \\usetheme{debian}" #. 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 "\\usepackage{debiantutorial.es} \\usepackage[spanish]{babel}" # " \\usepackage{listingsutf8} \\usepackage[utf8]{inputenc}" #. type: title{#2} #: packaging-tutorial.tex:14 msgid "Debian Packaging Tutorial" msgstr "Guía de creación de paquetes Debian" #. type: author{#2} #: packaging-tutorial.tex:14 #, fuzzy #| msgid "Lucas Nussbaum\\\\{\\small\\texttt{lucas@debian.org}}" msgid "" "Lucas Nussbaum\\\\{\\small\\texttt{packaging-tutorial@packages.debian.org}}" msgstr "Lucas Nussbaum\\\\{\\small\\texttt{lucas@debian.org}}" #. 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 #, fuzzy #| msgid "version 0.9 -- 2013-06-20" msgid "version 0.11 -- 2013-10-29" msgstr "version 0.9 -- 2013-06-20" #. type: frame{#2} #: packaging-tutorial.tex:52 msgid "About this tutorial" msgstr "Acerca de esta guía" #. type: itemize #: packaging-tutorial.tex:52 msgid "" "Goal: \\textbf{tell you what you really need to know about Debian packaging}" msgstr "" "Objetivo: \\textbf{ofrecer el conocimiento esencial para la creación de " "paquetes de Debian}" #. type: itemize #: packaging-tutorial.tex:52 msgid "Modify existing packages" msgstr "Modificar paquetes existentes" #. type: itemize #: packaging-tutorial.tex:52 msgid "Create your own packages" msgstr "Crear sus propios paquetes" #. type: itemize #: packaging-tutorial.tex:52 msgid "Interact with the Debian community" msgstr "Comunicarse con la comunidad de Debian" #. type: itemize #: packaging-tutorial.tex:52 msgid "Become a Debian power-user" msgstr "Convertirse en un usuario avanzado de Debian" #. type: itemize #: packaging-tutorial.tex:52 msgid "Covers the most important points, but is not complete" msgstr "Cubre los aspectos más importantes, pero no es completo" #. type: itemize #: packaging-tutorial.tex:52 msgid "You will need to read more documentation" msgstr "Tendrá que leer más documentación" #. type: itemize #: packaging-tutorial.tex:52 #, fuzzy #| msgid "Most of the content also applies to Debian derivatives distributions" msgid "Most of the content also applies to Debian derivative distributions" msgstr "" "La mayoría del contenido también sirve para las distribuciones derivadas de " "Debian" #. type: itemize #: packaging-tutorial.tex:52 msgid "That includes Ubuntu" msgstr "Esto incluye Ubuntu" #. type: frame{#2} #: packaging-tutorial.tex:56 debiantutorial.sty:42 msgid "Outline" msgstr "Esquema" #. type: section{#2} #: packaging-tutorial.tex:58 msgid "Introduction" msgstr "Introducción" #. type: frame{#2} #: packaging-tutorial.tex:60 packaging-tutorial.tex:84 msgid "Debian" msgstr "Debian" #. type: textbf{#1} #: packaging-tutorial.tex:84 msgid "GNU/Linux distribution" msgstr "Distribución GNU/Linux" #. type: itemize #: packaging-tutorial.tex:84 msgid "1st major distro developed ``openly in the spirit of GNU''" msgstr "" "La primera distribución mayoritaria desarrollada «de forma abierta, con el " "espíritu de GNU»" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Non-commercial}, built collaboratively by over 1,000 volunteers" msgstr "" "\\textbf{No comercial}, creado de forma colaborativa por más de 1.000 " "voluntarios" #. type: itemize #: packaging-tutorial.tex:84 msgid "3 main features:" msgstr "Tres características principales:" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Quality} -- culture of technical excellence\\\\ {\\small\\sl We " "release when it's ready}" msgstr "" "\\textbf{Calidad} -- cultura de excelencia técnica\\\\ {\\small\\sl " "Publicamos cuando está listo}" #. 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 "" "\\textbf{Libertad} -- los desarrolladores y los usuarios se adhieren al " "\\textsl{Contrato Social}\\\\ Fomentando la cultura de Software libre desde " "1993" #. 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 "" "\\textbf{Independencia} -- ninguna (única) compañía controla Debian\\\\ " "Proceso abierto de toma de decisiones (\\textsl{voluntariedad} + " "\\textsl{democracia})" #. type: itemize #: packaging-tutorial.tex:84 msgid "\\textbf{Amateur} in the best sense: done for the love of it" msgstr "\\textbf{Amateur} en el mejor sentido: creado por el placer de ello" #. type: frame{#2} #: packaging-tutorial.tex:105 msgid "Debian packages" msgstr "Paquetes Debian" #. type: itemize #: packaging-tutorial.tex:105 msgid "\\textbf{.deb} files (binary packages)" msgstr "Ficheros \\textbf{.deb} (paquetes binarios)" #. type: itemize #: packaging-tutorial.tex:105 msgid "A very powerful and convenient way to distribute software to users" msgstr "Una potente y cómoda forma de distribuir software a los usuarios" #. type: itemize #: packaging-tutorial.tex:105 #, fuzzy #| msgid "One of the two most common packages format (with RPM)" msgid "One of the two most common package formats (with RPM)" msgstr "Uno de los dos formatos de paquete más populares (junto con RPM)" #. type: itemize #: packaging-tutorial.tex:105 msgid "Universal:" msgstr "Universal:" #. 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 "" "30.000 paquetes binarios en Debian\\\\ $\\rightarrow$ La mayoría del " "software libre está empaquetado para Debian" #. type: itemize #: packaging-tutorial.tex:105 msgid "For 12 ports (architectures), including 2 non-Linux (Hurd; KFreeBSD)" msgstr "" "Con 12 adaptaciones (arquitecturas), incluyendo dos distintas a Linux (Hurd " "y KFreeBSD)" #. type: itemize #: packaging-tutorial.tex:105 #, fuzzy #| msgid "Also used by 120 Debian derivatives distributions" msgid "Also used by 120 Debian derivative distributions" msgstr "También utilizado por 120 distribuciones derivadas de Debian" #. type: frame{#2} #: packaging-tutorial.tex:108 packaging-tutorial.tex:133 msgid "The Deb package format" msgstr "El formato de paquete deb" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{.deb} file: an \\texttt{ar} archive" msgstr "Fichero \\texttt{.deb}: un archivo \\texttt{ar}" #. 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 "" "[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" " " #. $ #. type: itemize #: packaging-tutorial.tex:133 msgid "" "\\texttt{debian-binary}: version of the deb file format, " "\\texttt{\"2.0\\textbackslash{}n\"}" msgstr "" "\\texttt{debian-binary}: versión del formato de fichero «deb», " "\\texttt{\"2.0\\textbackslash{}n\"}" #. 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 "" "\\texttt{control.tar.gz}: Metadatos del paquete\\\\ {\\small " "\\texttt{\\textbf{control}, sumas de control md5, (pre|post)(rm|inst), " "accionadores, bibliotecas compartidas}, \\ldots}" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{data.tar.gz}: data files of the package" msgstr "\\texttt{data.tar.gz}: Ficheros de datos del paquete" #. 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 "" "Puede crear sus propios ficheros \\texttt{.deb} manualmente\\\\ " "{\\footnotesize \\url{http://tldp.org/HOWTO/html\\_single/Debian-Binary-" "Package-Building-HOWTO/}}" #. type: itemize #: packaging-tutorial.tex:133 msgid "But most people don't do it that way" msgstr "No obstante, la mayoría de las personas no lo hacen de esta forma" #. type: textbf{#1} #: packaging-tutorial.tex:133 msgid "This tutorial: create Debian packages, the Debian way" msgstr "En esta guía: crear paquetes Debian, con el estilo Debian" #. type: frame{#2} #: packaging-tutorial.tex:153 msgid "Tools you will need" msgstr "Herramientas necesarias" #. type: itemize #: packaging-tutorial.tex:153 msgid "A Debian (or Ubuntu) system (with root access)" msgstr "Un sistema Debian (o Ubuntu) con acceso de usuario «root»" #. type: itemize #: packaging-tutorial.tex:153 msgid "Some packages:" msgstr "Algunos paquetes:" #. type: itemize #: packaging-tutorial.tex:153 #, fuzzy #| msgid "" #| "\\textbf{build-essential}: has dependencies on the packages that will be " #| "assumed to be available on the developers' machine (no need to specify " #| "them in the \\texttt{Build-Depends:} control field of your package)" 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 "" "\\textbf{build-essential}: Depende de los paquetes que habitualmente se " "encuentran en los sistemas de desarrolladores (no necesita especificarlos en " "el campo de control \\texttt{Build-Depends:} de su paquete)" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "includes a dependency on \\textbf{dpkg-dev}, which contains basic Debian-" "specific tools to create packages" msgstr "" "también depende de \\textbf{dpkg-dev}, que contiene las herramientas " "específicas de Debian para la creación de paquetes" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "\\textbf{devscripts}: contains many useful scripts for Debian maintainers" msgstr "" "\\textbf{devscripts}: contiene scripts útiles a los responsables de paquetes " "de Debian" #. 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 "" "En el futuro se mencionarán otras herramientas, como textbf{debhelper}, " "\\textbf{cdbs}, \\textbf{quilt}, \\textbf{pbuilder}, \\textbf{sbuild}, " "\\textbf{lintian}, \\textbf{svn-buildpackage}, \\textbf{git-buildpackage}, " "\\ldots\\\\ Instálelos a medida que los necesite" #. type: frame{#2} #: packaging-tutorial.tex:168 msgid "General packaging workflow" msgstr "Etapas generales en la creación de paquetes" #. \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 "" "\\node[node1] (www) at (0, 0) {Red}; \\node[node1] (us) at (2.5, 0) {Código " "fuente original}; \\node[node1] (da) at (-2.5, 0) {Réplica de Debian}; " "\\node[node1] (sp) at (0, -2) {Paquete fuente}; \\draw[arr,<-,dashed,thick] " "(sp) -- (2.5,-2) node[right=0cm,text width=2.98cm,text centered,font=\\small" "\\sl] {Donde se realiza casi toda la parte manual}; \\node[node1] (bin) at " "(0, -4) {Uno o varios paquetes binarios}; \\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} (Construir y comprobar con \\textttc{lintian}) o " "\\textttc{dpkg-buildpackage}}; \\draw[arr,->] (bin) -- (1,-6) node[pos=0.5," "right] {Instalación (\\textttc{debi})}; \\draw[transparent] (bin) -- (-1,-6) " "node[pos=0.5,left,opaque] {Envío del paquete (\\textttc{dput})}; \\draw[arr,-" ">,rounded corners] (bin) -- (-1,-6) -- (-4.5,-6) -- (-4.5,0) -- (da); " "\\useasboundingbox (-4,-6) rectangle (6,0);" #. type: subsection{#2} #: packaging-tutorial.tex:205 msgid "Rebuilding dash" msgstr "Reconstruir dash" #. type: frame{#2} #: packaging-tutorial.tex:205 msgid "Example: rebuilding dash" msgstr "Ejemplo: reconstruir dash" #. type: enumerate #: packaging-tutorial.tex:205 #, fuzzy #| 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}}" 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 "" "Instale los paquetes necesarios para construir dash y el paquete devscripts\\" "\\ {\\texttt{sudo apt-get build-dep dash}\\\\ (requiere líneas \\texttt{deb-" "src} en \\texttt{/etc/apt/sources.list})}\\\\ {\\texttt{sudo apt-get install " "-{}-no-install-recommends devscripts}}" #. 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 "" "Cree un directorio de trabajo y entre:\\\\ \\texttt{mkdir /tmp/debian-" "tutorial ; cd /tmp/debian-tutorial}" #. 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 "" "Obtenga el paquete de fuentes de \\texttt{dash}\\\\ \\texttt{apt-get source " "dash}\\\\ {\\small (Requiere las líneas \\texttt{deb-src} en \\texttt{/etc/" "apt/sources.list})}" #. 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 "" "Construya el paquete\\\\ {\\texttt{cd dash-*\\\\ debuild -us -uc}} " "~~~(\\texttt{-us -uc} desactiva el firmado de paquetes con GPG)" #. type: enumerate #: packaging-tutorial.tex:218 msgid "Check that it worked" msgstr "Compruebe el funcionamiento" #. type: itemize #: packaging-tutorial.tex:218 msgid "There are some new \\texttt{.deb} files in the parent directory" msgstr "Hay algunos ficheros \\texttt{.deb} nuevos en el directorio superior" #. type: enumerate #: packaging-tutorial.tex:218 msgid "Look at the \\texttt{debian/} directory" msgstr "Compruebe el directorio \\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:218 msgid "That's where the packaging work is done" msgstr "Aquí se realizan las tareas de empaquetado" #. type: section{#2} #: packaging-tutorial.tex:256 msgid "Creating source packages" msgstr "Creación de paquetes fuente" #. type: subsection{#2} #: packaging-tutorial.tex:256 msgid "Source packages basics" msgstr "Nociones básicas de paquetes fuente" #. type: frame{#2} #: packaging-tutorial.tex:256 msgid "Source package" msgstr "Paquete fuente" #. 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 "" "Un paquete fuente puede generar varios paquetes binarios\\\\ {\\small Por " "ejemplo, las fuentes de \\texttt{\\bfseries libtar} generan los paquetes " "binarios \\texttt{\\bfseries libtar0} y \\texttt{\\bfseries libtar-dev}}" #. type: itemize #: packaging-tutorial.tex:256 msgid "Two kinds of packages: (if unsure, use non-native)" msgstr "Dos tipos de paquete: (si duda, utilice el formato no nativo)" #. type: itemize #: packaging-tutorial.tex:256 msgid "" "Native packages: normally for Debian specific software (\\textsl{dpkg}, " "\\textsl{apt})" msgstr "" "Paquetes nativos: habitualmente es software específico de Debian " "(\\textsl{dpkg}, \\textsl{apt})" #. type: itemize #: packaging-tutorial.tex:256 msgid "Non-native packages: software developed outside Debian" msgstr "Paquetes no nativos: software desarrollado fuera de Debian" #. type: itemize #: packaging-tutorial.tex:256 msgid "Main file: \\texttt{.dsc} (meta-data)" msgstr "Fichero principal: \\texttt{.dsc} (metadatos)" #. type: itemize #: packaging-tutorial.tex:256 msgid "Other files depending on the version of the source format" msgstr "Otros ficheros que dependen de la versión del formato de fuentes" #. type: itemize #: packaging-tutorial.tex:256 #, fuzzy #| msgid "1.0 -- native: \\texttt{package\\_version.tar.gz}" msgid "1.0 or 3.0 (native): \\texttt{package\\_version.tar.gz}" msgstr "1.0 -- nativo: \\texttt{package\\_version.tar.gz}" #. type: itemize #: packaging-tutorial.tex:256 #, fuzzy #| msgid "1.0 -- non-native:" msgid "1.0 (non-native):" msgstr "1.0 -- no nativo:" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_ver.orig.tar.gz}: upstream source" msgstr "\\texttt{pkg\\_ver.orig.tar.gz} : Fuente original de software" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.diff.gz}: patch to add Debian-specific changes" msgstr "" "\\texttt{pkg\\_debver.diff.gz} : Parche para añadir cambios específicos de " "Debian" #. type: itemize #: packaging-tutorial.tex:256 msgid "3.0 (quilt):" msgstr "3.0 (quilt):" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.debian.tar.gz}: tarball with the Debian changes" msgstr "" "\\texttt{pkg\\_debver.debian.tar.gz} : Archivo tar con los cambios de Debian" #. type: frame #: packaging-tutorial.tex:256 msgid "(See \\texttt{dpkg-source(1)} for exact details)" msgstr "(Para detalles precisos consulte \\texttt{dpkg-source(1)})" #. type: frame{#2} #: packaging-tutorial.tex:280 msgid "Source package example (wget\\_1.12-2.1.dsc)" msgstr "Ejemplo de paquete fuente (wget\\_1.12-2.1.dsc)" #. 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" "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 "" "[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" "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" #. type: subsection{#2} #: packaging-tutorial.tex:308 msgid "Retrieving source packages" msgstr "Obtener paquetes fuente" #. type: frame{#2} #: packaging-tutorial.tex:308 msgid "Retrieving an existing source package" msgstr "Obtener un paquete fuente existente" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the Debian archive:" msgstr "Del archivo de Debian:" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package}}" msgstr "\\texttt{apt-get source \\textsl{paquete}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package=version}}" msgstr "\\texttt{apt-get source \\textsl{paquete=versión}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package/release}}" msgstr "\\texttt{apt-get source \\textsl{paquete/publicación}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "(You need \\texttt{deb-src} lines in \\texttt{sources.list})" msgstr "(Se requieren líneas \\texttt{deb-src} en \\texttt{sources.list})" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the Internet:" msgstr "De Internet:" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{dget \\textsl{url-to.dsc}}" msgstr "\\texttt{dget \\textsl{url-to.dsc}}" #. 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 "" "\\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} proporciona " "todos los paquetes de Debian desde 2005)" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the (declared) version control system:" msgstr "Del sistema de control de versiones (declarado):" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{debcheckout \\textsl{package}}" msgstr "\\texttt{debcheckout \\textsl{paquete}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "" "Once downloaded, extract with \\texttt{dpkg-source -x \\textsl{file.dsc}}" msgstr "" "Cuando finalice la descarga, extraiga los contenidos con \\texttt{dpkg-" "source -x \\textsl{file.dsc}}" #. type: frame{#2} #: packaging-tutorial.tex:331 msgid "Creating a basic source package" msgstr "Creación de un paquete fuente básico" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "Download the upstream source\\\\ (\\textsl{upstream source} = the one from " "the software's original developers)" msgstr "" "Descargue las fuentes del desarrollador original \\\\ (\\textsl{fuente " "original} = el que se obtiene de los desarrolladores originales del software)" #. 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 "" "Renómbrelo a \\texttt{<\\textsl{paquete\\_fuente}>\\_<\\textsl{versión" "\\_original}>.orig.tar.gz}\\\\ (ejemplo: \\texttt{simgrid\\_3.6.orig.tar.gz})" #. type: itemize #: packaging-tutorial.tex:331 msgid "Untar it" msgstr "Abra el archivo tar" #. type: itemize #: packaging-tutorial.tex:331 #, fuzzy #| msgid "" #| "Rename to \\texttt{<\\textsl{source\\_package}>\\_<\\textsl{upstream" #| "\\_version}>.orig.tar.gz}\\\\ (example: \\texttt{simgrid\\_3.6.orig.tar." #| "gz})" msgid "" "Rename the directory to \\texttt{<\\textsl{source\\_package}>-<" "\\textsl{upstream\\_version}>}\\\\ (example: \\texttt{simgrid-3.6})" msgstr "" "Renómbrelo a \\texttt{<\\textsl{paquete\\_fuente}>\\_<\\textsl{versión" "\\_original}>.orig.tar.gz}\\\\ (ejemplo: \\texttt{simgrid\\_3.6.orig.tar.gz})" #. type: itemize #: packaging-tutorial.tex:331 #, fuzzy #| msgid "" #| "\\texttt{cd \\textsl{upstream\\_source} \\&\\& dh\\_make} (from the " #| "\\textbf{dh-make} package)" msgid "" "\\texttt{cd \\texttt{<\\textsl{source\\_package}>-<\\textsl{upstream" "\\_version}>} \\&\\& dh\\_make}\\\\ (from the \\textbf{dh-make} package)" msgstr "" "\\texttt{cd \\textsl{fuente\\_original} \\&\\& dh\\_make} (en el paquete " "\\textbf{dh-make})" #. 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 "" "Existen alternativas a \\texttt{dh\\_make} para grupos específicos de " "paquete: \\textbf{dh-make-perl}, \\textbf{dh-make-php}, \\ldots" #. type: itemize #: packaging-tutorial.tex:331 msgid "\\texttt{debian/} directory created, with a lot of files in it" msgstr "Se crea el directorio \\texttt{debian/}, que contiene muchos ficheros" #. type: frame{#2} #: packaging-tutorial.tex:360 msgid "Files in debian/" msgstr "Ficheros en «debian/»" #. type: frame #: packaging-tutorial.tex:360 msgid "" "All the packaging work should be made by modifying files in \\texttt{debian/}" msgstr "" "Todas las tareas de empaquetado se deben realizar modificando ficheros en " "\\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:360 msgid "Main files:" msgstr "Ficheros principales:" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{control} -- meta-data about the package (dependencies, etc.)" msgstr "\\textbf{control} -- Metadatos del paquete (dependencias, etc)" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{rules} -- specifies how to build the package" msgstr "\\textbf{rules} -- Especifica cómo construir el paquete" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{copyright} -- copyright information for the package" msgstr "\\textbf{copyright} -- Información de derechos de autor del paquete" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{changelog} -- history of the Debian package" msgstr "\\textbf{changelog} -- Registro histórico del paquete de Debian" #. type: itemize #: packaging-tutorial.tex:360 msgid "Other files:" msgstr "Otros ficheros:" #. type: itemize #: packaging-tutorial.tex:360 msgid "compat" msgstr "compat" #. type: itemize #: packaging-tutorial.tex:360 msgid "watch" msgstr "watch" #. type: itemize #: packaging-tutorial.tex:360 msgid "dh\\_install* targets\\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}" msgstr "" "dh\\_install* targets\\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}" #. type: itemize #: packaging-tutorial.tex:360 msgid "maintainer scripts\\\\ {\\small *.postinst, *.prerm, \\ldots}" msgstr "scripts de desarrollador\\\\ {\\small *.postinst, *.prerm, \\ldots}" #. type: itemize #: packaging-tutorial.tex:360 msgid "source/format" msgstr "source/format" #. type: itemize #: packaging-tutorial.tex:360 msgid "patches/ -- if you need to modify the upstream sources" msgstr "" "patches/ -- si tiene que modificar las fuentes del desarrollador original" #. type: itemize #: packaging-tutorial.tex:360 msgid "Several files use a format based on RFC 822 (mail headers)" msgstr "" "Varios ficheros utilizan un formato basado en RFC 822 (cabeceras de correo " "electrónico)" #. type: frame{#2} #: packaging-tutorial.tex:372 msgid "debian/changelog" msgstr "debian/changelog" #. type: itemize #: packaging-tutorial.tex:372 msgid "Lists the Debian packaging changes" msgstr "Lista los cambios del paquete Debian" #. type: itemize #: packaging-tutorial.tex:372 msgid "Gives the current version of the package" msgstr "Muestra la versión actual del paquete" #. 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 "" "\\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 Revisión de Debian}; \\draw [decorate," "decoration={brace}] (1.4,0) -- (0,0) node[midway,below,text width=1.6cm,text " "centered] { \\small Versión de la fuente original};" #. % #. type: itemize #: packaging-tutorial.tex:386 msgid "Edited manually or with \\textttc{dch}" msgstr "Edición manual o con \\textttc{dch}" #. type: itemize #: packaging-tutorial.tex:386 msgid "Create a changelog entry for a new release: \\textttc{dch -i}" msgstr "" "Cree una entrada en el fichero «changelog» para una nueva publicación: " "\\textttc{dch -i}" #. 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 "" "Formato especial para cerrar de forma automática informes de fallo de Debian " "o Ubuntu\\\\ Debian: \\texttt{Closes:~\\#595268}; Ubuntu: \\texttt{LP:~" "\\#616929}" #. type: itemize #: packaging-tutorial.tex:386 msgid "" "Installed as \\texttt{/usr/share/doc/\\textit{package}/changelog.Debian.gz}" msgstr "" "Se instala como \\texttt{/usr/share/doc/\\textit{package}/changelog.Debian." "gz}" #. 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 "" "[basicstyle=\\ttfamily\\footnotesize]\n" "mpich2 (1.2.1.1-5) unstable; urgency=low\n" "\n" #. 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 "" " * 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" #. type: lstlisting #: packaging-tutorial.tex:394 #, no-wrap msgid " -- Lucas Nussbaum Wed, 15 Sep 2010 18:13:44 +0200" msgstr " -- Lucas Nussbaum Wed, 15 Sep 2010 18:13:44 +0200" #. type: frame{#2} #: packaging-tutorial.tex:421 msgid "debian/control" msgstr "debian/control" #. type: itemize #: packaging-tutorial.tex:421 msgid "Package metadata" msgstr "Metadatos del paquete" #. type: itemize #: packaging-tutorial.tex:421 msgid "For the source package itself" msgstr "Para el mismo paquete fuente" #. type: itemize #: packaging-tutorial.tex:421 msgid "For each binary package built from this source" msgstr "Para cada paquete binario construido a partir de estas fuentes" #. type: itemize #: packaging-tutorial.tex:421 msgid "" "Package name, section, priority, maintainer, uploaders, build-dependencies, " "dependencies, description, homepage, \\ldots" msgstr "" "Nombre del paquete, sección, prioridad, desarrollador, aquellos con permiso " "para subir una nueva versión del paquete, dependencias de construcción, " "dependencias, descripción, página web, \\ldots" #. type: itemize #: packaging-tutorial.tex:421 msgid "" "Documentation: Debian Policy chapter 5\\\\ \\url{http://www.debian.org/doc/" "debian-policy/ch-controlfields}" msgstr "" "Documentación: Capítulo 5 de Normas de Debian \\\\ \\url{http://www.debian." "org/doc/debian-policy/ch-controlfields}" #. 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" "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 "" "[basicstyle=\\ttfamily\\footnotesize]\n" "Source: wget\n" "Section: web\n" "Priority: important\n" "Maintainer: Noel Kothe \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" #. 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 "" "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" #. type: frame{#2} #: packaging-tutorial.tex:456 msgid "Architecture: all or any" msgstr "Arquitectura: all o any (todas o cualquiera)" #. type: frame #: packaging-tutorial.tex:456 msgid "Two kinds of binary packages:" msgstr "Dos tipos de paquete binario:" #. type: itemize #: packaging-tutorial.tex:456 msgid "Packages with different contents on each Debian architecture" msgstr "Paquetes con diferente contenido para cada arquitectura de Debian" #. type: itemize #: packaging-tutorial.tex:456 msgid "Example: C program" msgstr "Ejemplo: programa escrito en C" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ any} in \\texttt{debian/control}" msgstr "\\texttt{Architecture:\\ any} en \\texttt{debian/control}" #. 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 "" "O, si solo funciona con un subconjunto de arquitecturas:\\\\ " "\\texttt{Architecture:\\ amd64 i386 ia64 hurd-i386}" #. type: itemize #: packaging-tutorial.tex:456 msgid "buildd.debian.org: builds all the other architectures for you on upload" msgstr "" "buildd.debian.org: Construye el paquete para todas las otras arquitecturas " "por Ud. al enviar el paquete" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_" "\\textsl{architecture}.deb}" msgstr "" "Creado como \\texttt{\\textsl{paquete}\\_\\textsl{versión}\\_" "\\textsl{arquitectura}.deb}" #. type: itemize #: packaging-tutorial.tex:456 msgid "Packages with the same content on all architectures" msgstr "Paquetes con el mismo contenido para todas las arquitecturas" #. type: itemize #: packaging-tutorial.tex:456 msgid "Example: Perl library" msgstr "Ejemplo: Biblioteca de Perl" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ all} in \\texttt{debian/control}" msgstr "\\texttt{Architecture:\\ all} en \\texttt{debian/control}" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_\\textbf{all}.deb}" msgstr "" "Creado como \\texttt{\\textsl{paquete}\\_\\textsl{versión}\\_\\textbf{all}." "deb}" #. 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 "" "Un paquete fuente puede generar una combinación de paquetes binarios con " "\\texttt{Architecture:\\ any} y \\texttt{Architecture:\\ all}" #. type: frame{#2} #: packaging-tutorial.tex:482 msgid "debian/rules" msgstr "debian/rules" #. type: itemize #: packaging-tutorial.tex:482 msgid "Makefile" msgstr "Makefile" #. type: itemize #: packaging-tutorial.tex:482 msgid "Interface used to build Debian packages" msgstr "Interfaz utilizada para construir paquetes Debian" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "Documented in Debian Policy, chapter 4.8\\\\ {\\small \\url{http://www." "debian.org/doc/debian-policy/ch-source\\#s-debianrules}}" msgstr "" "Documentado en el capítulo 4.8 de Normas de Debian\\\\ {\\small " "\\texttt{http://www.debian.org/doc/debian-policy/ch-source\\#s-debianrules}}" #. type: itemize #: packaging-tutorial.tex:482 #, fuzzy #| msgid "Five required targets:" msgid "Required targets:" msgstr "Cinco tareas («targets») obligatorias:" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "\\texttt{build, build-arch, build-indep}: should perform all the " "configuration and compilation" msgstr "" "\\texttt{build, build-arch, build-indep}: Debe realizar toda la " "configuración y compilación" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{binary, binary-arch, binary-indep}: build the binary packages" msgstr "" "\\texttt{binary, binary-arch, binary-indep}: Construye los paquetes binarios" #. 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 "" "\\texttt{dpkg-buildpackage} invoca \\texttt{binary} para construir todos los " "paquetes, o \\texttt{binary-arch} para construir solo los paquetes con " "\\texttt{Architecture:~any}" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{clean}: clean up the source directory" msgstr "\\texttt{clean}: Limpia el directorio de fuentes" #. type: subsection{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers" msgstr "Asistentes de creación de paquetes" #. type: frame{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers -- debhelper" msgstr "Asistentes de creación de paquetes -- debhelper" #. type: itemize #: packaging-tutorial.tex:516 msgid "You could write shell code in \\texttt{debian/rules} directly" msgstr "" "Puede editar código de intérprete de órdenes directamente en \\texttt{debian/" "rules}" #. type: itemize #: packaging-tutorial.tex:516 msgid "See the \\texttt{adduser} package for example" msgstr "Para ver un ejemplo, examine el paquete \\texttt{adduser} " #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Better practice (used by most packages): use a \\textsl{Packaging helper}" msgstr "" "Práctica recomendada (utilizada con la mayoría de paquetes): utilice un " "\\textsl{Asistente de creación de paquetes}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Most popular one: \\textbf{debhelper} (used by 98\\% of packages)" msgstr "" "El más popular: \\textbf{debhelper} (utilizado por el 98\\% de los paquetes)" #. type: itemize #: packaging-tutorial.tex:516 msgid "Goals:" msgstr "Objetivos:" #. type: itemize #: packaging-tutorial.tex:516 msgid "Factor the common tasks in standard tools used by all packages" msgstr "" "Incluir las tareas más comunes en herramientas estándar utilizadas por todos " "los paquetes" #. type: itemize #: packaging-tutorial.tex:516 msgid "Fix some packaging bugs once for all packages" msgstr "" "Arreglar algunos fallos de empaquetado una sola vez para todos los paquetes" #. 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 "" "{\\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}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Called from \\texttt{debian/rules}" msgstr "Se invoca desde \\texttt{debian/rules}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Configurable using command parameters or files in \\texttt{debian/}" msgstr "" "Configurable utilizando parámetros de órdenes o ficheros en \\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "{\\footnotesize \\ttfamily \\textsl{package}.docs, \\textsl{package}." "examples, \\textsl{package}.install, \\textsl{package}.manpages, \\ldots}" msgstr "" "{\\footnotesize \\ttfamily \\textsl{package}.docs, \\textsl{package}." "examples, \\textsl{package}.install, \\textsl{package}.manpages, \\ldots}" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Third-party helpers for sets of packages: \\textbf{python-support}, " "\\textbf{dh\\_ocaml}, \\ldots" msgstr "" "Otros asistentes para conjuntos específicos de paquetes: \\textbf{python-" "support}, \\textbf{dh\\_ocaml}, \\ldots" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Gotcha: \\texttt{debian/compat}: Debhelper compatibility version (use \"7\")" msgstr "" "Necesario: \\texttt{debian/compat}: Versión de nivel de compatibilidad de " "Debhelper (utilice «7»)" #. type: frame{#2} #: packaging-tutorial.tex:520 msgid "debian/rules using debhelper (1/2)" msgstr "debian/rules con debhelper (1/2)" #. type: lstlisting #: packaging-tutorial.tex:520 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "#!/usr/bin/make -f\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "#!/usr/bin/make -f\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:523 #, no-wrap msgid "" "# Uncomment this to turn on verbose mode.\n" "#export DH_VERBOSE=1\n" "\n" msgstr "" "# Uncomment this to turn on verbose mode.\n" "#export DH_VERBOSE=1\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:527 #, no-wrap msgid "" "build: \n" " $(MAKE)\n" " #docbook-to-man debian/packagename.sgml > packagename.1\n" "\n" msgstr "" "build: \n" " $(MAKE)\n" " #docbook-to-man debian/packagename.sgml > packagename.1\n" "\n" #. 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 "" "clean: \n" " dh_testdir\n" " dh_testroot\n" " rm -f build-stamp configure-stamp\n" " $(MAKE) clean\n" " dh_clean \n" "\n" #. 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 "" "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" #. type: frame{#2} #: packaging-tutorial.tex:547 msgid "debian/rules using debhelper (2/2)" msgstr "debian/rules con debhelper (2/2)" #. type: lstlisting #: packaging-tutorial.tex:547 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:550 #, no-wrap msgid "" "# Build architecture-independent files here.\n" "binary-indep: build install\n" "\n" msgstr "" "# Build architecture-independent files here.\n" "binary-indep: build install\n" "\n" #. 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 "" "# 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" #. 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 "" "binary: binary-indep binary-arch\n" ".PHONY: build clean binary-indep binary-arch binary install configure" #. type: frame{#2} #: packaging-tutorial.tex:603 msgid "CDBS" msgstr "CDBS" #. type: itemize #: packaging-tutorial.tex:603 msgid "With debhelper, still a lot of redundancy between packages" msgstr "Con debhelper, aún hay redundancias entre paquetes" #. type: itemize #: packaging-tutorial.tex:603 msgid "Second-level helpers that factor common functionality" msgstr "" "Asistentes de segundo nivel que permiten dividir funcionalidades comunes" #. type: itemize #: packaging-tutorial.tex:603 #, fuzzy #| msgid "" #| "E.g building with \\texttt{./configure \\&\\& make \\&\\& make install} " #| "or CMake" msgid "" "E.g. building with \\texttt{./configure \\&\\& make \\&\\& make install} or " "CMake" msgstr "" "Esto es, construir con \\texttt{./configure \\&\\& make \\&\\& make install} " "o CMake" #. type: itemize #: packaging-tutorial.tex:603 msgid "CDBS:" msgstr "CDBS:" #. type: itemize #: packaging-tutorial.tex:603 msgid "Introduced in 2005, based on advanced \\textsl{GNU make} magic" msgstr "Introducido en 2005, basado en «magia» avanzada de \\textsl{GNU make}" #. type: itemize #: packaging-tutorial.tex:603 msgid "Documentation: \\texttt{/usr/share/doc/cdbs/}" msgstr "Documentación: \\texttt{/usr/share/doc/cdbs/}" #. type: itemize #: packaging-tutorial.tex:603 msgid "Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots" msgstr "" "Compatibilidad con Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots" #. type: itemize #: packaging-tutorial.tex:603 msgid "But some people hate it:" msgstr "Algunas personas lo odian:" #. type: itemize #: packaging-tutorial.tex:603 msgid "" "Sometimes difficult to customize package builds:\\\\ \"\\textsl{twisty maze " "of makefiles and environment variables}\"" msgstr "" "A veces es difícil personalizar la construcción del paquete \\\\ " "\"\\textsl{un conjunto complejo de ficheros «Makefile» y variables de " "entorno}\"" #. type: itemize #: packaging-tutorial.tex:603 msgid "Slower than plain debhelper (many useless calls to \\texttt{dh\\_*})" msgstr "" "Más lento que utilizar solo debhelper (varias invocaciones inútiles a " "\\texttt{dh\\_*})" #. 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 "" "[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" #. 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 "" "# add an action after the build\n" "build/mypackage::\n" " /bin/bash debian/scripts/foo.sh\n" " " #. type: frame{#2} #: packaging-tutorial.tex:628 msgid "Dh (aka Debhelper 7, or dh7)" msgstr "Dh (alias Debhelper 7, o dh7)" #. type: itemize #: packaging-tutorial.tex:628 msgid "Introduced in 2008 as a \\textsl{CDBS killer}" msgstr "Introducido en 2008 como alternativa \\textsl{asesina de CDBS}" #. type: itemize #: packaging-tutorial.tex:628 msgid "\\textbf{dh} command that calls \\texttt{dh\\_*}" msgstr "Orden \\textbf{dh} que invoca \\texttt{dh\\_*}" #. type: itemize #: packaging-tutorial.tex:628 msgid "Simple \\textsl{debian/rules}, listing only overrides" msgstr "" "Sencillos ficheros \\textsl{debian/rules}, que solo enumeran las " "sustituciones" #. type: itemize #: packaging-tutorial.tex:628 msgid "Easier to customize than CDBS" msgstr "Más fácil de personalizar que CDBS" #. 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 "" "Documentación:páginas de manual (\\texttt{debhelper(7)}, \\texttt{dh(1)}) + " "presentaciones de la conferencia durante DebConf9\\\\ \\url{http://kitenet." "net/~joey/talks/debhelper/debhelper-slides.pdf}" #. type: lstlisting #: packaging-tutorial.tex:628 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "#!/usr/bin/make -f\n" "%:\n" " dh $@\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "#!/usr/bin/make -f\n" "%:\n" " dh $@\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:631 #, no-wrap msgid "" "override_dh_auto_configure:\n" " dh_auto_configure -- --with-kitchen-sink\n" "\n" msgstr "" "override_dh_auto_configure:\n" " dh_auto_configure -- --with-kitchen-sink\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:634 #, no-wrap msgid "" "override_dh_auto_build:\n" " make world\n" "\n" msgstr "" "override_dh_auto_build:\n" " make world\n" "\n" #. 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 "debhelper clásico vs CDBS vs dh" #. type: itemize #: packaging-tutorial.tex:656 msgid "" "Mind shares:\\\\ Classic debhelper: 27\\% \\hskip 1em CDBS: 18\\% \\hskip " "1em dh: 54\\%" msgstr "" "Aceptación:\\\\ debhelper clásico: 27\\% \\hskip 1em CDBS: 18\\% \\hskip 1em " "dh: 54\\%" #. type: itemize #: packaging-tutorial.tex:656 msgid "Which one should I learn?" msgstr "¿Cuál debería aprender?" #. type: itemize #: packaging-tutorial.tex:656 msgid "Probably a bit of all of them" msgstr "Puede que un poco de cada uno" #. type: itemize #: packaging-tutorial.tex:656 msgid "You need to know debhelper to use dh and CDBS" msgstr "Necesita conocer debhelper para utilizar dh y CDBS" #. type: itemize #: packaging-tutorial.tex:656 msgid "You might have to modify CDBS packages" msgstr "Puede que tenga que modificar paquetes CDBS" #. type: itemize #: packaging-tutorial.tex:656 msgid "Which one should I use for a new package?" msgstr "¿Cuál debería utilizar con un paquete nuevo?" #. type: itemize #: packaging-tutorial.tex:656 msgid "\\textbf{dh} (only solution with an increasing mind share)" msgstr "\\textbf{dh} (la única solución con una aceptación creciente)" #. 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 "" "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" #. 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 "" "\\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}" #. type: section{#2} #: packaging-tutorial.tex:680 msgid "Building and testing packages" msgstr "Construir y comprobar paquetes" #. type: frame{#2} #: packaging-tutorial.tex:680 msgid "Building packages" msgstr "Construir paquetes" #. type: itemize #: packaging-tutorial.tex:680 #, fuzzy #| msgid "" #| "\\textttc{apt-get build-dep mypackage}\\\\ Installs the \\textsl{build-" #| "dependencies} (for a package already in Debian)\\\\ Or \\textttc{mk-build-" #| "deps -ir} (inside the package source tree)" 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 "" "\\textttc{apt-get build-dep mi-paquete}\\\\ Instala las " "\\textsl{dependencias de construcción} (para un paquete en el archivo de " "Debian)\\\\ O \\textttc{mk-build-deps -ir} (dentro del árbol de fuentes del " "paquete)" #. type: itemize #: packaging-tutorial.tex:737 msgid "\\textttc{debuild}: build, test with \\texttt{lintian}, sign with GPG" msgstr "" "\\textttc{debuild}: construcción, comprobación con \\texttt{lintian}, firma " "con GPG" #. type: itemize #: packaging-tutorial.tex:737 msgid "Also possible to call \\textttc{dpkg-buildpackage} directly" msgstr "También se puede invocar \\textttc{dpkg-buildpackage} directamente" #. type: itemize #: packaging-tutorial.tex:737 msgid "Usually with \\texttt{dpkg-buildpackage -us -uc}" msgstr "Habitualmente con \\texttt{dpkg-buildpackage -us -uc}" #. type: itemize #: packaging-tutorial.tex:737 msgid "It is better to build packages in a clean \\& minimal environment" msgstr "Se recomienda construir paquetes en un entorno mínimo y limpio" #. type: itemize #: packaging-tutorial.tex:737 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 "" "\\textttc{pbuilder} -- Asistente de construcción de paquetes en una " "\\textsl{«jaula» chroot}\\\\ Buena documentación: \\url{https://wiki.ubuntu." "com/PbuilderHowto}\\\\ (optimización: \\textttc{cowbuilder} " "\\textttc{ccache} \\textttc{distcc})" #. type: itemize #: packaging-tutorial.tex:737 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 "" "\\textttc{schroot} y \\textttc{sbuild}: Utilizados por los servicios de " "construcción de Debian\\\\ (no es tan sencillo como \\texttt{pbuilder}, pero " "es compatible con datos LVM\\\\ Consulte: \\url{https://help.ubuntu.com/" "community/SbuildLVMHowto} )" #. type: itemize #: packaging-tutorial.tex:737 msgid "Generates \\texttt{.deb} files and a \\texttt{.changes} file" msgstr "Genera ficheros \\texttt{.deb} y un fichero \\texttt{.changes}" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "\\texttt{.changes}: describes what was built; used to upload the package" msgstr "" "\\texttt{.changes}: Describe lo construido; se emplea para enviar el paquete" #. type: frame{#2} #: packaging-tutorial.tex:737 msgid "Installing and testing packages" msgstr "Instalar y comprobar paquetes" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Install the package locally: \\textttc{debi} (will use \\texttt{.changes} to " "know what to install)" msgstr "" "Instalación local del paquete: \\textttc{debi} (emplea \\texttt{.changes} " "para saber qué instalar)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "List the content of the package: \\texttt{{\\color{rouge}debc} ../" "mypackage.changes}" msgstr "" "Muestra el contenido del paquete: \\texttt{{\\color{rouge}debc} ../mi-" "paquete.changes}" #. type: itemize #: packaging-tutorial.tex:737 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 "" "Compare el paquete con una versión anterior:\\\\ \\texttt{{\\color{rouge}" "debdiff} ../mi-paquete\\_1\\_*.changes ../mi-paquete\\_2\\_*.changes}\\\\ o " "para comparar las fuentes:\\\\ \\texttt{{\\color{rouge}debdiff} ../mi-paquete" "\\_1\\_*.dsc ../mi-paquete\\_2\\_*.dsc}\\\\" #. type: itemize #: packaging-tutorial.tex:737 #, fuzzy #| msgid "" #| "Check the package with \\texttt{lintian} (static analyzer):\\\\ " #| "\\texttt{{\\color{rouge}lintian} ../mypackage.changes}\\\\ " #| "\\texttt{lintian -i}: gives more information about the errors" msgid "" "Check the package with \\texttt{lintian} (static analyzer):\\\\ " "\\texttt{{\\color{rouge}lintian} ../mypackage.changes}\\\\ " "\\texttt{lintian -i}: gives more information about the errors \\\\ " "\\texttt{lintian -EviIL +pedantic}: shows more problems" msgstr "" "Compruebe el paquete con \\texttt{lintian} (análisis estático):\\\\ " "\\texttt{{\\color{rouge}lintian} ../mi-paquete.changes}\\\\ " "\\texttt{lintian -i}: Ofrece más información de fallos" #. type: itemize #: packaging-tutorial.tex:737 msgid "Upload the package to Debian (\\textttc{dput}) (needs configuration)" msgstr "Envíe el paquete a (\\textttc{dput}) (requiere configuración)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Manage a private Debian archive with \\textttc{reprepro}\\\\ Documentation: " "\\url{http://mirrorer.alioth.debian.org/}" msgstr "" "Administre un archivo Debian privado con \\textttc{reprepro}\\\\ " "Documentación: \\url{http://mirrorer.alioth.debian.org/}" #. type: frame{#2} #: packaging-tutorial.tex:737 packaging-tutorial.tex:1454 #: packaging-tutorial.tex:1460 msgid "Practical session 1: modifying the grep package" msgstr "Ejercicio práctico 1: modificar el paquete grep" #. type: enumerate #: packaging-tutorial.tex:737 packaging-tutorial.tex:1460 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package (if you use Ubuntu 11.10 or later, or Debian " "testing or unstable, use version 2.9-1 or 2.9-2 instead)" msgstr "" "Visite \\url{http://ftp.debian.org/debian/pool/main/g/grep/} y descargue la " "versión 2.6.3-3 del paquete (si utiliza la publicación 11.10 de Ubuntu o " "posterior, o las publicaciones «en pruebas» o «inestable» de Debian, utilice " "en su lugar la versión 2.9-1 o 2.9-2)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "If the source package is not unpacked automatically, unpack it with " "\\texttt{dpkg-source~-x~grep\\_*.dsc}" msgstr "" "Si el paquete no se desempaqueta de forma automática, utilice \\texttt{dpkg-" "source~-x~grep\\_*.dsc}" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "Look at the files in \\texttt{debian/}." msgstr "Consulte los ficheros en \\texttt{debian/}." #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "How many binary packages are generated by this source package?" msgstr "¿Cuántos paquetes binarios genera este paquete fuente?" #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "Which packaging helper does this package use?" msgstr "¿Qué asistente de creación de paquetes utiliza este paquete?" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1537 msgid "Build the package" msgstr "Construya el paquete" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1558 msgid "" "We are now going to modify the package. Add a changelog entry and increase " "the version number." msgstr "" "A continuación, modificaremos el paquete. Añada una entrada al registro de " "cambios (fichero «changelog») e incremente el número de versión." #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1578 msgid "Now disable perl-regexp support (it is a \\texttt{./configure} option)" msgstr "" "Desactive la compatibilidad con las expresiones regulares de Perl (perl-" "regexp es una opción de configuración de \\texttt{./configure})" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1578 msgid "Rebuild the package" msgstr "Reconstruya el paquete" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Compare the original and the new package with debdiff" msgstr "Compare el paquete original y el nuevo con debdiff" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Install the newly built package" msgstr "Instale el paquete recién construido" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Cry if you messed up ;)" msgstr "Llore si provoca problemas ;)" #. type: section{#2} #: packaging-tutorial.tex:775 msgid "Advanced packaging topics" msgstr "Aspectos avanzados de la creación de paquetes" #. type: frame{#2} #: packaging-tutorial.tex:775 msgid "debian/copyright" msgstr "debian/copyright" #. type: itemize #: packaging-tutorial.tex:775 msgid "Copyright and license information for the source and the packaging" msgstr "" "Información de derechos de autor, licencia de las fuentes y de la tarea de " "creación del paquete" #. type: itemize #: packaging-tutorial.tex:775 msgid "Traditionally written as a text file" msgstr "Habitualmente, se escribe como fichero de texto" #. type: itemize #: packaging-tutorial.tex:775 #, fuzzy #| msgid "New machine-readable format: \\url{http://dep.debian.net/deps/dep5/}" msgid "" "New machine-readable format: {\\small\\url{http://www.debian.org/doc/" "packaging-manuals/copyright-format/1.0/}}" msgstr "" "Nuevo formato legible por máquina: \\url{http://dep.debian.net/deps/dep5/}" #. type: lstlisting #: packaging-tutorial.tex:775 #, fuzzy, no-wrap #| msgid "" #| "[basicstyle=\\ttfamily\\footnotesize]\n" #| "Format: \n" #| "Upstream-Name: X Solitaire\n" #| "Source: ftp://ftp.example.com/pub/games\n" #| "\n" msgid "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Format: http://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 "" "[basicstyle=\\ttfamily\\footnotesize]\n" "Format: \n" "Upstream-Name: X Solitaire\n" "Source: ftp://ftp.example.com/pub/games\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:785 #, no-wrap msgid "" "Files: *\n" "Copyright: Copyright 1998 John Doe \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 "" "Files: *\n" "Copyright: Copyright 1998 John Doe \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" #. type: lstlisting #: packaging-tutorial.tex:790 #, no-wrap msgid "" "Files: debian/*\n" "Copyright: Copyright 1998 Jane Smith \n" "License:\n" " [LICENSE TEXT]" msgstr "" "Files: debian/*\n" "Copyright: Copyright 1998 Jane Smith \n" "License:\n" " [LICENSE TEXT]" #. type: frame{#2} #: packaging-tutorial.tex:821 msgid "Modifying the upstream source" msgstr "Modificar las fuentes del desarrollador original" #. type: frame #: packaging-tutorial.tex:821 msgid "Often needed:" msgstr "Habitualmente es necesario:" #. type: itemize #: packaging-tutorial.tex:821 msgid "Fix bugs or add customizations that are specific to Debian" msgstr "" "Arreglar informes de fallo o añadir modificaciones específicas para Debian" #. type: itemize #: packaging-tutorial.tex:821 msgid "Backport fixes from a newer upstream release" msgstr "" "Adaptar a una versión anterior los arreglos de una publicación del software " "más reciente" #. type: frame #: packaging-tutorial.tex:821 msgid "Several methods to do it:" msgstr "Existen varios métodos:" #. type: itemize #: packaging-tutorial.tex:821 msgid "Modifying the files directly" msgstr "Modificación directa de ficheros" #. type: itemize #: packaging-tutorial.tex:821 msgid "Simple" msgstr "Sencillo" #. type: itemize #: packaging-tutorial.tex:821 msgid "But no way to track and document the changes" msgstr "Pero no ofrece una forma de registrar y documentar los cambios" #. type: itemize #: packaging-tutorial.tex:821 msgid "Using patch systems" msgstr "Utilizar sistemas de parches" #. type: itemize #: packaging-tutorial.tex:821 msgid "Eases contributing your changes to upstream" msgstr "Facilita contribuir sus cambios al desarrollador original" #. type: itemize #: packaging-tutorial.tex:821 msgid "Helps sharing the fixes with derivatives" msgstr "Ayuda a compartir los arreglos con distribuciones derivadas" #. type: itemize #: packaging-tutorial.tex:821 msgid "" "Gives more exposure to the changes\\\\ \\url{http://patch-tracker.debian." "org/}" msgstr "" "Ofrece una mayor visibilidad de los cambios \\\\ \\url{http://patch-tracker." "debian.org/}" #. type: frame{#2} #: packaging-tutorial.tex:851 msgid "Patch systems" msgstr "Sistemas de parches" #. type: itemize #: packaging-tutorial.tex:851 msgid "Principle: changes are stored as patches in \\texttt{debian/patches/}" msgstr "" "Principio: los cambios se guardan en parches en \\texttt{debian/patches/}" #. type: itemize #: packaging-tutorial.tex:851 msgid "Applied and unapplied during build" msgstr "Se integran y eliminan de las fuentes durante la construcción" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Past: several implementations -- \\textsl{simple-patchsys} (\\textsl{cdbs}), " "\\textsl{dpatch}, \\textbf{\\textsl{quilt}}" msgstr "" "Pasado: varias implementaciones -- \\textsl{simple-patchsys} " "(\\textsl{cdbs}), \\textsl{dpatch}, \\textbf{\\textsl{quilt}}" #. type: itemize #: packaging-tutorial.tex:851 msgid "Each supports two \\texttt{debian/rules} targets:" msgstr "Cada uno permite dos tareas de \\texttt{debian/rules}:" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules patch}: apply all patches" msgstr "\\texttt{debian/rules patch}: Integra todos los parches" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules unpatch}: de-apply all patches" msgstr "" "\\texttt{debian/rules unpatch}: Elimina todos los parches de las fuentes" #. type: itemize #: packaging-tutorial.tex:851 msgid "More documentation: \\url{http://wiki.debian.org/debian/patches}" msgstr "Más documentación: \\url{http://wiki.debian.org/debian/patches}" #. type: textbf{#1} #: packaging-tutorial.tex:851 msgid "New source package format with built-in patch system: 3.0 (quilt)" msgstr "" "Nuevo formato de paquete fuente con sistema de parches integrado: 3.0 (quilt)" #. type: itemize #: packaging-tutorial.tex:851 msgid "Recommended solution" msgstr "Solución recomendada" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "You need to learn \\textsl{quilt}\\\\ \\url{http://pkg-perl.alioth.debian." "org/howto/quilt.html}" msgstr "" "Debe leer \\textsl{quilt}\\\\ \\url{http://pkg-perl.alioth.debian.org/howto/" "quilt.html}" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Patch-system-agnostic tool in \\texttt{devscripts}: \\texttt{edit-patch}" msgstr "" "Herramienta de parches independiente del sistema en \\texttt{devscripts}: " "\\texttt{edit-patch}" #. type: frame{#2} #: packaging-tutorial.tex:868 msgid "Documentation of patches" msgstr "Documentación de parches" #. type: itemize #: packaging-tutorial.tex:868 msgid "Standard headers at the beginning of the patch" msgstr "Cabeceras estándar al principio del parche" #. type: itemize #: packaging-tutorial.tex:868 msgid "" "Documented in DEP-3 - Patch Tagging Guidelines\\\\ \\url{http://dep.debian." "net/deps/dep3/}" msgstr "" "Documentado con las normas de etiquetado de parches; DEP-3 - Patch Tagging " "Guidelines\\\\ \\url{http://dep.debian.net/deps/dep3/}" #. type: lstlisting #: packaging-tutorial.tex:868 #, 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 \n" "Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123\n" "Last-Update: 2010-03-29\n" "\n" msgstr "" "[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 \n" "Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123\n" "Last-Update: 2010-03-29\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:872 #, no-wrap msgid "" "--- a/src/widgets.c\n" "+++ b/src/widgets.c\n" "@@ -101,9 +101,6 @@ struct {" msgstr "" "--- a/src/widgets.c\n" "+++ b/src/widgets.c\n" "@@ -101,9 +101,6 @@ struct {" #. type: frame{#2} #: packaging-tutorial.tex:892 msgid "Doing things during installation and removal" msgstr "Realizar acciones durante la instalación y eliminación" #. type: itemize #: packaging-tutorial.tex:892 msgid "Decompressing the package is sometimes not enough" msgstr "A veces no basta con descomprimir el paquete" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Create/remove system users, start/stop services, manage " "\\textsl{alternatives}" msgstr "" "Crear/eliminar usuarios del sistema, iniciar/detener servicios, gestionar el " "sistema de \\textsl{alternativas}" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Done in \\textsl{maintainer scripts}\\\\ \\texttt{preinst, postinst, prerm, " "postrm}" msgstr "" "Se realiza mediante \\textsl{scripts de desarrollador}\\\\ \\texttt{preinst, " "postinst, prerm, postrm}" #. type: itemize #: packaging-tutorial.tex:892 msgid "Snippets for common actions can be generated by debhelper" msgstr "debhelper puede generar secciones de código para acciones comunes" #. type: itemize #: packaging-tutorial.tex:892 msgid "Documentation:" msgstr "Documentación:" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Debian Policy Manual, chapter 6\\\\ {\\footnotesize \\url{http://www.debian." "org/doc/debian-policy/ch-maintainerscripts}}" msgstr "" "Capítulo 6 de Normas de Debian\\\\ {\\footnotesize \\url{http://www.debian." "org/doc/debian-policy/ch-maintainerscripts}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Debian Developer's Reference, chapter 6.4\\\\ {\\scriptsize \\url{http://www." "debian.org/doc/developers-reference/best-pkging-practices.html}}" msgstr "" "Capítulo 6.4 de Referencia del Desarrollador de Debian (Debian Developer's " "Reference)\\\\ {\\scriptsize \\url{http://www.debian.org/doc/developers-" "reference/best-pkging-practices.html}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "{\\footnotesize \\url{http://people.debian.org/~srivasta/MaintainerScripts." "html}}" msgstr "" "{\\footnotesize \\url{http://people.debian.org/~srivasta/MaintainerScripts." "html}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "Prompting the user" msgstr "Consultar al usuario" #. type: itemize #: packaging-tutorial.tex:908 msgid "Must be done with \\textbf{debconf}" msgstr "Se debe realizar mediante \\textbf{debconf}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Documentation: \\texttt{debconf-devel(7)} (\\texttt{debconf-doc} package)" msgstr "" "Documentación: \\texttt{debconf-devel(7)} (paquete \\texttt{debconf-doc})" #. type: frame{#2} #: packaging-tutorial.tex:914 msgid "Monitoring upstream versions" msgstr "Supervisar las versiones del desarrollador original" #. type: itemize #: packaging-tutorial.tex:914 msgid "" "Specify where to look in \\texttt{debian/watch} (see \\texttt{uscan(1)})" msgstr "" "Especifique dónde mirar en \\texttt{debian/watch} (consulte " "\\texttt{uscan(1)})" #. type: lstlisting #: packaging-tutorial.tex:914 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:917 #, no-wrap msgid "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " msgstr "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Debian infrastructure that makes use of \\texttt{debian/watch}:\\\\ " "\\textbf{Debian External Health Status}\\\\ \\url{http://dehs.alioth.debian." "org/}" msgstr "" "La infraestructura de Debian utiliza \\texttt{debian/watch}:\\\\ " "\\textbf{Debian External Health Status}\\\\ \\url{http://dehs.alioth.debian." "org/}" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Maintainer warned by emails sent to the Package Tracking System\\\\ " "\\url{http://packages.qa.debian.org/}" msgstr "" "Se notifica al responsable del paquete mediante correos electrónicos al " "sistema de seguimiento de paquetes («Package Tracking System»)\\\\ " "\\url{http://packages.qa.debian.org/}" #. type: itemize #: packaging-tutorial.tex:931 msgid "\\texttt{uscan}: run a manual check" msgstr "\\texttt{uscan}: Ejecuta una comprobación manual" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "\\texttt{uupdate}: try to update your package to the latest upstream version" msgstr "" "\\texttt{uupdate}: Intenta actualizar el paquete a la última versión de la " "fuente original" #. type: subsection{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System (SVN, Git)" msgstr "Creación de paquetes con un sistema de control de versiones (SVN, Git)" #. type: frame{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System" msgstr "Creación de paquetes con un sistema de control de versiones" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "Several tools to help manage branches and tags for your packaging work:\\\\ " "\\texttt{svn-buildpackage}, \\texttt{git-buildpackage}" msgstr "" "Existen varias herramientas que facilitan la gestión de ramas y etiquetas " "para las tareas de creación de paquete:\\\\ \\texttt{svn-buildpackage}, " "\\texttt{git-buildpackage}" #. type: itemize #: packaging-tutorial.tex:969 msgid "Example: \\texttt{git-buildpackage}" msgstr "Ejemplo: \\texttt{git-buildpackage}" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{upstream} branch to track upstream with \\texttt{upstream/" "\\textsl{version}} tags" msgstr "" "La rama \\texttt{upstream} contiene los cambios de la fuente original de " "software mediante etiquetas \\texttt{upstream/\\textsl{versión}}" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{master} branch tracks the Debian package" msgstr "La rama \\texttt{master} contiene los cambios hechos al paquete Debian" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{debian/\\textsl{version}} tags for each upload" msgstr "Etiquetas \\texttt{debian/\\textsl{versión}} para cada envío de datos" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{pristine-tar} branch to be able to rebuild the upstream tarball" msgstr "" "La rama \\texttt{pristine-tar} para poder reconstruir el archivo tar de la " "fuente de software original" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{Vcs-*} fields in \\texttt{debian/control} to locate the repository" msgstr "" "Campos \\texttt{Vcs-*} en \\texttt{debian/control} para ubicar el repositorio" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Git}" msgstr "\\url{http://wiki.debian.org/Alioth/Git}" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Svn}" msgstr "\\url{http://wiki.debian.org/Alioth/Svn}" #. type: lstlisting #: packaging-tutorial.tex:969 #, 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 "" "[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" " " #. type: lstlisting #: packaging-tutorial.tex:969 #, 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 "" "[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" " " #. type: itemize #: packaging-tutorial.tex:969 msgid "" "VCS-agnostic interface: \\texttt{debcheckout}, \\texttt{debcommit}, " "\\texttt{debrelease}\\\\" msgstr "" "Interfaz independiente del sistema de control de versiones: " "\\texttt{debcheckout}, \\texttt{debcommit}, \\texttt{debrelease}\\\\" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{debcheckout grep} $\\rightarrow$ checks out the source package from " "Git" msgstr "" "\\texttt{debcheckout grep} $\\rightarrow$ obtiene el paquete fuente de un " "repositorio Git" #. type: frame{#2} #: packaging-tutorial.tex:992 msgid "Backporting packages" msgstr "Adaptación de paquetes a una publicación anterior" #. type: itemize #: packaging-tutorial.tex:992 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 "" "Objetivo: utilizar una versión más reciente de un paquete en un sistema más " "antiguo\\\\ Por ejemplo, utilizar \\textsl{mutt} de la publicación " "\\textsl{unstable} («inestable») de Debian en la publicación " "\\textsl{stable} («estable»)" #. type: itemize #: packaging-tutorial.tex:992 msgid "General idea:" msgstr "Idea general:" #. type: itemize #: packaging-tutorial.tex:992 msgid "Take the source package from Debian unstable" msgstr "Obtenga el paquete fuente de Debian «inestable»" #. type: itemize #: packaging-tutorial.tex:992 msgid "Modify it so that it builds and works fine on Debian stable" msgstr "" "Modifique de forma que se construya y funcione de forma adecuada en la " "publicación estable de Debian" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes trivial (no changes needed)" msgstr "A veces trivial (no se requieren cambios)" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes difficult" msgstr "A veces difícil" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes impossible (many unavailable dependencies)" msgstr "A veces imposible (muchas dependencias no disponibles)" #. type: itemize #: packaging-tutorial.tex:992 msgid "" "Some backports are provided and supported by the Debian project\\\\ " "\\url{http://backports.debian.org/}" msgstr "" "El proyecto Debian proporciona y mantiene algunas adaptaciones a " "publicaciones anteriores\\\\ \\url{http://backports.debian.org/}" #. type: section{#2} #: packaging-tutorial.tex:1023 msgid "Maintaining packages in Debian" msgstr "Desarrollar paquetes en Debian" #. type: frame{#2} #: packaging-tutorial.tex:1023 msgid "Several ways to contribute to Debian" msgstr "Hay varias formas de contribuir a Debian" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Worst} way to contribute:" msgstr "\\textbf{La peor} forma de contribuir:" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Package your own application" msgstr "Empaquetar su propio programa" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Get it into Debian" msgstr "Introducirlo en Debian" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Disappear" msgstr "Desaparecer" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Better} ways to contribute:" msgstr "\\textbf{Las mejores} formas de contribuir:" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Get involved in packaging teams" msgstr "Únase a equipos de creación de paquetes" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Many teams that focus on set of packages, and need help" msgstr "" "Hay varios equipos que se centran en un conjunto de paquetes, y necesitan " "ayuda" #. type: itemize #: packaging-tutorial.tex:1023 msgid "List available at \\url{http://wiki.debian.org/Teams}" msgstr "Puede consultar la lista en \\url{http://wiki.debian.org/Teams}" #. type: itemize #: packaging-tutorial.tex:1023 msgid "An excellent way to learn from more experienced contributors" msgstr "Una excelente forma de aprender de otros contribuyentes experimentados" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Adopt existing unmaintained packages (\\textsl{orphaned packages})" msgstr "" "Adopte paquetes existentes sin responsable, (\\textsl{paquetes huérfanos})" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Bring new software to Debian" msgstr "Traiga software nuevo a Debian" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Only if it's interesting/useful enough, please" msgstr "Por favor, solo si es suficientemente interesante y útil" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Are there alternatives already packaged in Debian?" msgstr "¿Hay alternativas ya empaquetadas para Debian?" #. type: frame{#2} #: packaging-tutorial.tex:1061 msgid "Adopting orphaned packages" msgstr "Adopción de paquetes huérfanos" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Many unmaintained packages in Debian" msgstr "Existen varios paquetes sin responsable en Debian" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Full list + process: \\url{http://www.debian.org/devel/wnpp/}" msgstr "Lista completa y proceso: \\url{http://www.debian.org/devel/wnpp/}" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Installed on your machine: \\texttt{wnpp-alert}" msgstr "Instalados en su sistema: \\texttt{wnpp-alert}" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Different states:" msgstr "Diferentes estados:" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{O}rphaned: the package is unmaintained\\\\ Feel free to adopt it" msgstr "" "\\textbf{O}rphaned (huérfano): el paquete no tiene responsable\\\\ Adóptelo " "sin problemas" #. type: itemize #: packaging-tutorial.tex:1061 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 "" "\\textbf{RFA}: \\textbf{R}equest \\textbf{F}or \\textbf{A}dopter\\\\ El " "responsable busca alguien que lo adopte, pero continua trabajando en él\\\\ " "Adóptelo sin problemas. Se recomienda enviar un correo electrónico al " "responsable actual." #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt\\\\ Someone " "intends to adopt the package\\\\ You could propose your help!" msgstr "" "¡\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt\\\\ Alguien " "intenta adoptar el paquete\\\\ ¡Puede ofrecer su ayuda!" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp\\\\ The " "maintainer is looking for help" msgstr "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp\\\\ El " "responsable busca ayuda" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Some unmaintained packages not detected \\arr not orphaned yet" msgstr "" "No se detectan algunos paquetes sin desarrollador \\arr aún no están " "huérfanos" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "When in doubt, ask \\texttt{debian-qa@lists.debian.org} \\\\ or " "\\texttt{\\#debian-qa} on \\texttt{irc.debian.org}" msgstr "" "Si duda, pregunte en \\texttt{debian-qa@lists.debian.org} \\\\ o " "\\texttt{\\#debian-qa} en \\texttt{irc.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1068 msgid "Adopting a package: example" msgstr "Adopción de un paquete: ejemplo" #. type: lstlisting #: packaging-tutorial.tex:1068 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "From: You \n" "To: 640454@bugs.debian.org, control@bugs.debian.org\n" "Cc: Francois Marier \n" "Subject: ITA: verbiste -- French conjugator\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "From: Usted \n" "To: 640454@bugs.debian.org, control@bugs.debian.org\n" "Cc: Francois Marier \n" "Subject: ITA: verbiste -- French conjugator\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1072 #, no-wrap msgid "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" msgstr "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1074 #, no-wrap msgid "" "Hi,\n" "\n" msgstr "" "Hi,\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1076 #, no-wrap msgid "" "I am using verbiste and I am willing to take care of the package.\n" "\n" msgstr "" "I am using verbiste and I am willing to take care of the package.\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1078 #, no-wrap msgid "" "Cheers,\n" "\n" msgstr "" "Cheers,\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1080 #, no-wrap msgid "You" msgstr "Su nombre" #. type: itemize #: packaging-tutorial.tex:1087 msgid "" "Polite to contact the previous maintainer (especially if the package was " "RFAed, not orphaned)" msgstr "" "Se recomienda contactar con el responsable anterior (en particular si el " "paquete se declaró como RFA, petición de adopción, en lugar de declararse " "huérfano)" #. type: itemize #: packaging-tutorial.tex:1087 msgid "Very good idea to contact the upstream project" msgstr "Se recomienda contactar con la fuente original del proyecto" #. type: frame{#2} #: packaging-tutorial.tex:1111 msgid "Getting your package in Debian" msgstr "Introducir su paquete en Debian" #. type: itemize #: packaging-tutorial.tex:1111 msgid "You do not need any official status to get your package into Debian" msgstr "No precisa de ningún rol oficial para introducir su paquete en Debian" #. type: enumerate #: packaging-tutorial.tex:1111 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:1111 msgid "Prepare a source package" msgstr "Prepare un paquete fuente" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "Find a Debian Developer that will sponsor your package" msgstr "Encuentre un desarrollador oficial de Debian que patrocine su paquete " #. type: itemize #: packaging-tutorial.tex:1111 #, fuzzy #| msgid "Official status (when you are already experienced):" msgid "Official status (when you are an experienced package maintainer):" msgstr "Rol oficial (cuando ya tiene experiencia):" #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Maintainer (DM):}\\\\ Permission to upload your own packages" "\\\\ See \\url{http://wiki.debian.org/DebianMaintainer}" msgstr "" "\\textbf{Debian Maintainer (DM):}\\\\ Permiso para enviar sus propios " "paquetes\\\\ Consulte \\url{http://wiki.debian.org/DebianMaintainer}" #. type: itemize #: packaging-tutorial.tex:1111 #, fuzzy #| msgid "" #| "\\textbf{Debian Developer (DD):}\\\\ Debian project members; can vote and " #| "upload any package" msgid "" "\\textbf{Debian Developer (DD):}\\\\ Debian project member; can vote and " "upload any package" msgstr "" "\\textbf{Debian Developer (DD):}\\\\ Miembros del proyecto Debian; pueden " "votar y enviar cualquier paquete" #. type: frame{#2} #: packaging-tutorial.tex:1139 msgid "Things to check before asking for sponsorship" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Debian puts \\textbf{a lot of focus on quality}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Generally, \\textbf{sponsors are hard to find and busy}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Make sure your package is ready before asking for sponsorship" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Things to check:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 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:1139 msgid "Using \\texttt{pbuilder} is recommended" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Run \\texttt{lintian -EviIL +pedantic} on your package" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Errors must be fixed, all other problems should be fixed" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Do extensive testing of your package, of course" msgstr "" #. type: itemize #: packaging-tutorial.tex:1139 msgid "In doubt, ask for help" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1174 msgid "Where to find help?" msgstr "¿Dónde encontrar ayuda?" #. type: frame #: packaging-tutorial.tex:1174 msgid "Help you will need:" msgstr "Ayuda necesaria:" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Advice and answers to your questions, code reviews" msgstr "Consejos y respuestas a sus preguntas, revisiones de código" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Sponsorship for your uploads, once your package is ready" msgstr "Apoyo y supervisión para sus envíos de paquete, una vez que está listo" #. type: frame #: packaging-tutorial.tex:1174 msgid "You can get help from:" msgstr "Puede conseguir ayuda de:" #. type: textbf{#1} #: packaging-tutorial.tex:1174 msgid "Other members of a packaging team" msgstr "Otros miembros del equipo de creación de paquetes" #. type: itemize #: packaging-tutorial.tex:1174 #, fuzzy #| msgid "List available at \\url{http://wiki.debian.org/Teams}" msgid "List of teams: \\url{http://wiki.debian.org/Teams}" msgstr "Puede consultar la lista en \\url{http://wiki.debian.org/Teams}" #. type: itemize #: packaging-tutorial.tex:1174 #, fuzzy #| msgid "The Debian Mentors group (if your package doesn't fit in a team)" msgid "" "The \\textbf{Debian Mentors group} (if your package does not fit in a team)" msgstr "" "El grupo Debian Mentors (mentores de Debian, si su paquete no encuentra " "acomodo en ningún equipo)" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://wiki.debian.org/DebianMentorsFaq}" msgstr "\\url{http://wiki.debian.org/DebianMentorsFaq}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "Mailing list: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (also a " "good way to learn by accident)}" msgstr "" "Lista de correo: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (otra " "buena forma de aprender es a través de los problemas)}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "IRC: \\texttt{\\#debian-mentors} on \\texttt{irc.debian.org}" msgstr "IRC: \\texttt{\\#debian-mentors} en \\texttt{irc.debian.org}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://mentors.debian.net/}" msgstr "\\url{http://mentors.debian.net/}" #. type: itemize #: packaging-tutorial.tex:1174 #, fuzzy #| msgid "\\url{http://mentors.debian.net/}" msgid "Documentation: \\url{http://mentors.debian.net/intro-maintainers}" msgstr "\\url{http://mentors.debian.net/}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\textbf{Localized mailing lists} (get help in your language)" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "\\texttt{debian-devel-\\{french,italian,portuguese,spanish\\}@lists.d.o}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1174 #, fuzzy #| msgid "Full list + process: \\url{http://www.debian.org/devel/wnpp/}" msgid "Full list: \\url{https://lists.debian.org/devel.html}" msgstr "Lista completa y proceso: \\url{http://www.debian.org/devel/wnpp/}" #. type: itemize #: packaging-tutorial.tex:1174 #, fuzzy #| msgid "Full list + process: \\url{http://www.debian.org/devel/wnpp/}" msgid "Or users lists: \\url{https://lists.debian.org/users.html}" msgstr "Lista completa y proceso: \\url{http://www.debian.org/devel/wnpp/}" #. type: frame{#2} #: packaging-tutorial.tex:1192 #, fuzzy #| msgid "Documentation:" msgid "More documentation" msgstr "Documentación:" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developers' Corner\\\\ \\url{http://www.debian.org/devel/}\\\\ " "{\\small Links to many resources about Debian development}" msgstr "" "Rincón de los desarrolladores de Debian\\\\ \\url{http://www.debian.org/" "devel/index.es.html}\\\\ {\\small Enlaces a varios recursos para el " "desarrollo en Debian}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian New Maintainers' Guide\\\\ \\url{http://www.debian.org/doc/maint-" "guide/}\\\\ {\\small An introduction to Debian packaging, but could use an " "update}" msgstr "" "Guía del Nuevo Mantenedor de Debian\\\\ \\url{http://www.debian.org/doc/" "manuals/maint-guide/index.es.html}\\\\ {\\small Una pequeña introducción al " "empaquetado en Debian, un poco obsoleto}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developer's Reference\\\\ \\url{http://www.debian.org/doc/developers-" "reference/}\\\\ {\\small Mostly about Debian procedures, but also some best " "packaging practices (part 6)}" msgstr "" "Referencia del desarrollador de Debian\\\\ \\url{http://www.debian.org/doc/" "developers-reference/}\\\\ {\\small Básicamente trata procedimientos de " "Debian, pero también las mejores prácticas de empaquetado (sección 6)}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "Debian Policy\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\" msgstr "" "Manual de Normas de Debian \\\\ \\url{http://www.debian.org/doc/debian-" "policy/}\\\\" #. type: itemize #: packaging-tutorial.tex:1198 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 "" "{\\small \\begin{itemize} \\item \\small Todos los requisitos que cada " "paquete debe cumplir \\item \\small Normas especiales para Perl, Java, " "Python, \\ldots \\end{itemize}}" #. type: itemize #: packaging-tutorial.tex:1203 #, fuzzy #| msgid "" #| "Ubuntu Packaging Guide\\\\ \\url{https://wiki.ubuntu.com/PackagingGuide}" msgid "" "Ubuntu Packaging Guide\\\\ \\url{http://developer.ubuntu.com/resources/tools/" "packaging/}" msgstr "" "Guía de empaquetado de Ubuntu\\\\ \\url{https://wiki.ubuntu.com/" "PackagingGuide}" #. type: frame{#2} #: packaging-tutorial.tex:1217 msgid "Debian dashboards for maintainers" msgstr "Interfaces para desarrolladores de Debian" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Source package centric}: Package Tracking System (PTS)\\\\ " "\\url{http://packages.qa.debian.org/dpkg}" msgstr "" "\\textbf{Centrado en el paquete fuente}:Sistema de seguimiento de paquetes " "(PTS)\\\\ \\url{http://packages.qa.debian.org/dpkg}" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Maintainer/team centric}: Developer's Packages Overview (DDPO)\\\\ " "\\url{http://qa.debian.org/developer.php?login=pkg-ruby-extras-" "maintainers@lists.alioth.debian.org}" msgstr "" "\\textbf{Enfocado a desarrolladores y equipos}: Vista general de paquetes de " "desarrollador (DDPO)\\\\ \\url{http://qa.debian.org/developer.php?login=pkg-" "ruby-extras-maintainers@lists.alioth.debian.org}" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{TODO-list oriented}: Debian Maintainer Dashboard (DMD)\\\\ " "\\url{http://udd.debian.org/dmd.cgi}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1245 #, fuzzy #| msgid "Bug Tracking System (BTS)" msgid "Using the Debian Bug Tracking System (BTS)" msgstr "Sistema de seguimiento de fallos («Bug Tracking System», BTS)" #. type: itemize #: packaging-tutorial.tex:1245 msgid "A quite unique way to manage bugs" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Web interface to view bugs" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Email interface to make changes to bugs" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Adding information to bugs:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Write to \\texttt{123456@bugs.debian.org} (does not include the submitter, " "you need to add \\texttt{123456-submitter@bugs.debian.org})" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Changing bug status:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Send commands to \\texttt{control@bugs.debian.org}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 #, fuzzy #| msgid "" #| "VCS-agnostic interface: \\texttt{debcheckout}, \\texttt{debcommit}, " #| "\\texttt{debrelease}\\\\" msgid "Command-line interface: \\texttt{bts} command in \\texttt{devscripts}" msgstr "" "Interfaz independiente del sistema de control de versiones: " "\\texttt{debcheckout}, \\texttt{debcommit}, \\texttt{debrelease}\\\\" #. type: itemize #: packaging-tutorial.tex:1245 #, fuzzy #| msgid "More documentation: \\url{http://wiki.debian.org/debian/patches}" msgid "Documentation: \\url{http://www.debian.org/Bugs/server-control}" msgstr "Más documentación: \\url{http://wiki.debian.org/debian/patches}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Reporting bugs: use \\texttt{reportbug}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Normally used with a local mail server: install \\texttt{ssmtp} or " "\\texttt{nullmailer}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Or use \\texttt{reportbug -\\@-template}, then send (manually) to " "\\texttt{submit@bugs.debian.org}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1271 msgid "Using the BTS: examples" msgstr "" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Sending an email to the bug and the submitter:\\\\ \\url{http://bugs.debian." "org/cgi-bin/bugreport.cgi?bug=680822\\#10}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Tagging and changing the severity:\\\\ \\url{http://bugs.debian.org/cgi-bin/" "bugreport.cgi?bug=680227\\#10}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Reassigning, changing the severity, retitling \\ldots: \\\\ \\url{http://" "bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#93}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1271 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:1271 msgid "" "Using usertags: \\url{http://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:1271 #, fuzzy #| msgid "Documentation:" msgid "BTS Documentation:" msgstr "Documentación:" #. type: itemize #: packaging-tutorial.tex:1271 #, fuzzy #| msgid "\\url{http://wiki.debian.org/Ruby}" msgid "\\url{http://www.debian.org/Bugs/}" msgstr "\\url{http://wiki.debian.org/Ruby}" #. type: itemize #: packaging-tutorial.tex:1271 #, fuzzy #| msgid "\\url{http://wiki.debian.org/Alioth/Svn}" msgid "\\url{https://wiki.debian.org/HowtoUseBTS}" msgstr "\\url{http://wiki.debian.org/Alioth/Svn}" #. type: frame{#2} #: packaging-tutorial.tex:1298 msgid "More interested in Ubuntu?" msgstr "¿Más interesado en Ubuntu?" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu mainly manages the divergence with Debian" msgstr "En general, Ubuntu gestiona las diferencias con respecto a Debian" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "No real focus on specific packages\\\\ Instead, collaboration with Debian " "teams" msgstr "" "No hay un enfoque en paquetes específicos\\\\ En su lugar, se colabora con " "equipos de Debian" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "Usually recommend uploading new packages to Debian first\\\\ \\url{https://" "wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" msgstr "" "Habitualmente, recomiende enviar nuevos paquetes primero a Debian \\\\ " "\\url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Possibly a better plan:" msgstr "Un mejor plan probablemente sería:" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Get involved in a Debian team and act as a bridge with Ubuntu" msgstr "Participar en un equipo de Debian y actuar como enlace con Ubuntu" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Help reduce divergence, triage bugs in Launchpad" msgstr "" "Ayude a reducir las diferencias, evalúe los informes de fallo en Launchpad" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Many Debian tools can help:" msgstr "Muchas herramientas de Debian le pueden ayudar:" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu column on the Developer's packages overview" msgstr "" "La columna de Ubuntu en la vista general de paquetes para desarrolladores de " "Debian" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu box on the Package Tracking System" msgstr "El recuadro de Ubuntu en el sistema de seguimiento de paquetes (PTS)" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Receive launchpad bugmail via the PTS" msgstr "" "Reciba correo electrónico de informes de fallo de Launchpad a través del PTS" #. type: frame{#2} #: packaging-tutorial.tex:1328 #, fuzzy #| msgid "Conclusion" msgid "Conclusions" msgstr "Conclusión" #. type: itemize #: packaging-tutorial.tex:1328 msgid "You now have a full overview of Debian packaging" msgstr "" "Ahora tiene una idea general completa de la creación de paquetes Debian" #. type: itemize #: packaging-tutorial.tex:1328 msgid "But you will need to read more documentation" msgstr "Pero tendrá que leer más documentación" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Best practices have evolved over the years" msgstr "Las mejores prácticas se desarrollan con el tiempo" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "If not sure, use the \\textbf{dh} packaging helper, and the \\textbf{3.0 " "(quilt)} format" msgstr "" "Si no está seguro, utilice el asistente de creación de paquetes " "\\textbf{dh}, y el formato \\textbf{3.0 (quilt)}" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Things that were not covered in this tutorial:" msgstr "Asuntos que no se han tratado en esta guía:" #. type: itemize #: packaging-tutorial.tex:1328 msgid "UCF -- manage user changes to configuration files when upgrading" msgstr "" "UCF -- Gestionar los cambios de usuario de ficheros de configuración al " "actualizar" #. type: itemize #: packaging-tutorial.tex:1328 msgid "dpkg triggers -- group similar maintainer scripts actions together" msgstr "dpkg triggers -- Agrupa acciones similares de scripts de desarrollador" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian development organization:" msgstr "Organización del desarrollo Debian:" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "Suites: stable, testing, unstable, experimental, security, *-updates, " "backports, \\ldots" msgstr "" "Distribuciones: stable, testing, unstable, experimental, security, *-" "updates, backports, \\ldots" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian Blends -- subsets of Debian targeting specific groups" msgstr "Debian Blends -- Subconjuntos de Debian enfocados a grupos específicos" #. type: centerline{#1} #: packaging-tutorial.tex:1328 #, fuzzy #| msgid "\\large Feedback: \\textbf{lucas@debian.org}" msgid "\\large Feedback: \\textbf{packaging-tutorial@packages.debian.org}" msgstr "\\large Opiniones: \\textbf{lucas@debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1331 msgid "Legal stuff" msgstr "Asuntos legales" #. type: frame #: packaging-tutorial.tex:1334 msgid "Copyright \\copyright 2011--2013 Lucas Nussbaum -- lucas@debian.org" msgstr "" "Derechos de autor \\copyright 2011--2013 Lucas Nussbaum -- lucas@debian.org" #. type: frame #: packaging-tutorial.tex:1350 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 "" "{\\small \\textbf{Este documento es software libre}: puede redistribuirlo y/" "o modificarlo bajo ambas (a su elección): \\hbr \\begin{itemize} \\item Los " "términos de la GNU General Public License como publica la Free Software " "Foundation, bien la versión 3 de la licencia, o (a su elección) cualquier " "versión posterior.\\\\ \\url{http://www.gnu.org/licenses/gpl.html} \\br " "\\item Los términos de la Creative Commons Attribution-ShareAlike 3.0 " "Unported License.\\\\ \\url{http://creativecommons.org/licenses/by-sa/3.0/} " "\\end{itemize} }" #. type: frame{#2} #: packaging-tutorial.tex:1379 #, fuzzy #| msgid "About this tutorial" msgid "Contribute to this tutorial" msgstr "Acerca de esta guía" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Contribute:" msgstr "Contribuya:" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{apt-get source packaging-tutorial}}" msgstr "{\\small \\texttt{apt-get source packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 #, fuzzy #| msgid "{\\small \\texttt{apt-get source packaging-tutorial}}" msgid "{\\small \\texttt{debcheckout packaging-tutorial}}" msgstr "{\\small \\texttt{apt-get source packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\texttt{git clone\\\\ git://git.debian.org/collab-maint/packaging-" "tutorial.git}}" msgstr "" "{\\small \\texttt{git clone\\\\ git://git.debian.org/collab-maint/packaging-" "tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" msgstr "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 #, fuzzy #| msgid "" #| "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial." #| "git}}" msgid "{\\small Open bugs: \\url{bugs.debian.org/src:packaging-tutorial}}" msgstr "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Provide feedback:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 #, fuzzy #| msgid "" #| "Feedback: \\href{mailto:lucas@debian.org}{\\textbf{\\texttt{lucas@debian." #| "org}}}" msgid "" "\\href{mailto:packaging-tutorial@packages.debian.org}" "{\\textbf{\\texttt{mailto:packaging-tutorial@packages.debian.org}}}" msgstr "" "Opiniones: \\href{mailto:lucas@debian.org}{\\textbf{\\texttt{lucas@debian." "org}}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be added to this tutorial?}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be improved?}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1379 #, fuzzy #| msgid "{\\small \\texttt{apt-get source packaging-tutorial}}" msgid "{\\small \\texttt{reportbug packaging-tutorial}}" msgstr "{\\small \\texttt{apt-get source packaging-tutorial}}" #. type: frame{#2} #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Practical session 2: packaging GNUjump" msgstr "Ejercicio práctico 2: empaquetar GNUjump" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 #, fuzzy #| msgid "" #| "Download GNUjump 1.0.6 from \\url{http://ftp.gnu.org/gnu/gnujump/1.0.6/" #| "gnujump-1.0.6.tar.gz}" msgid "" "Download GNUjump 1.0.8 from \\url{http://ftp.gnu.org/gnu/gnujump/" "gnujump-1.0.8.tar.gz}" msgstr "" "Descargue la versión 1.0.6 de GNUjump desde \\url{http://ftp.gnu.org/gnu/" "gnujump/1.0.6/gnujump-1.0.6.tar.gz}" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Create a Debian package for it" msgstr "Cree un paquete Debian para él" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Install build-dependencies so that you can build the package" msgstr "" "Instale las dependencias de construcción para poder construir el paquete" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Get a basic working package" msgstr "Obtener un paquete básico funcional" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Finish filling \\texttt{debian/control} and other files" msgstr "Termine de completar \\texttt{debian/control} y otros ficheros" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Enjoy" msgstr "Disfrute" #. type: frame{#2} #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Practical session 3: packaging a Java library" msgstr "Ejercicio práctico 3: empaquetar una biblioteca de Java" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Take a quick look at some documentation about Java packaging:\\\\" msgstr "" "Consulte brevemente la documentación sobre creación de paquetes de Java:\\\\" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java}" msgstr "\\url{http://wiki.debian.org/Java}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java/Packaging}" msgstr "\\url{http://wiki.debian.org/Java/Packaging}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" msgstr "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" msgstr "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 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 "" "Discurso y diapositivas de una conferencia sobre javahelper en Debconf10 :\\" "\\ {\\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}}" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Download IRClib from \\url{http://moepii.sourceforge.net/}" msgstr "Descargue IRClib desde \\url{http://moepii.sourceforge.net/}" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Package it" msgstr "Empaquételo" #. type: frame{#2} #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Practical session 4: packaging a Ruby gem" msgstr "Ejercicio práctico 4: empaquetar un «gem» de Ruby" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Take a quick look at some documentation about Ruby packaging:\\\\" msgstr "" "Consulte brevemente la documentación sobre creación de paquetes de Ruby:\\\\" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Ruby}" msgstr "\\url{http://wiki.debian.org/Ruby}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby}" msgstr "\\url{http://wiki.debian.org/Teams/Ruby}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" msgstr "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (in the \\texttt{gem2deb} " "package)" msgstr "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (en el paquete " "\\texttt{gem2deb})" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "Create a basic Debian source package from the \\texttt{net-ssh} gem:\\\\ " "\\texttt{gem2deb net-ssh}" msgstr "" "Cree un paquete fuente de Debian a partir del \\texttt{net-ssh} gem:\\\\ " "\\texttt{gem2deb net-ssh}" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Improve it so that it becomes a proper Debian package" msgstr "Modifíquelo para que sea un paquete de Debian adecuado" #. type: section{#2} #: packaging-tutorial.tex:1445 msgid "Answers to practical sessions" msgstr "Respuestas a ejercicios prácticos" #. type: center #: packaging-tutorial.tex:1451 msgid "\\LARGE Answers to" msgstr "\\LARGE Respuestas a " #. type: center #: packaging-tutorial.tex:1451 msgid "[0.5em] practical sessions" msgstr "[0.5em] ejercicios prácticos" #. type: frame{#2} #: packaging-tutorial.tex:1509 msgid "Fetching the source" msgstr "Obtener las fuentes" #. type: enumerate #: packaging-tutorial.tex:1509 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package" msgstr "" "Visite \\url{http://ftp.debian.org/debian/pool/main/g/grep/} y descargue la " "versión 2.6.3-3 del paquete" #. type: itemize #: packaging-tutorial.tex:1509 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 "" "Utilice dget para descargar el fichero \\texttt{.dsc}:\\\\ {\\small " "\\texttt{dget http://cdn.debian.net/debian/pool/main/g/grep/grep\\_2.6.3-3." "dsc}}" #. type: itemize #: packaging-tutorial.tex:1509 #, fuzzy #| msgid "" #| "According to \\texttt{http://packages.qa.debian.org/grep}, \\texttt{grep} " #| "version 2.6.3-3 is currently in \\textsl{stable} (\\textsl{squeeze}). 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.6.3-3}\\\\ or \\texttt{apt-get source grep/stable}\\\\ or, if you " #| "feel lucky: \\texttt{apt-get source grep}" msgid "" "According to \\url{http://packages.qa.debian.org/grep}, \\texttt{grep} " "version 2.6.3-3 is currently in \\textsl{stable} (\\textsl{squeeze}). 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.6.3-3}\\\\ or " "\\texttt{apt-get source grep/stable}\\\\ or, if you feel lucky: \\texttt{apt-" "get source grep}" msgstr "" "Según \\texttt{http://packages.qa.debian.org/grep}, la versión 2.6.3-3 " "\\texttt{grep} se encuentra actualmente en la publicación \\textsl{estable} " "(\\textsl{squeeze}). Si tiene líneas \\texttt{deb-src} para " "\\textsl{squeeze} en su fichero \\texttt{/etc/apt/sources.list}, puede " "utilizar:\\\\ \\texttt{apt-get source grep=2.6.3-3}\\\\ o \\texttt{apt-get " "source grep/stable}\\\\ o, si la suerte le acompaña: \\texttt{apt-get source " "grep}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "The \\texttt{grep} source package is composed of three files:" msgstr "El paquete fuente de {grep} se compone de 3 ficheros:" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.dsc}" msgstr "\\texttt{grep\\_2.6.3-3.dsc}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" msgstr "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3.orig.tar.bz2}" msgstr "\\texttt{grep\\_2.6.3.orig.tar.bz2}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "This is typical of the \"3.0 (quilt)\" format." msgstr "Esto es típico con el formato «3.0 (quilt)»." #. type: itemize #: packaging-tutorial.tex:1509 msgid "" "If needed, uncompress the source with\\\\ \\texttt{dpkg-source -x grep" "\\_2.6.3-3.dsc}" msgstr "" "Si es necesario, descomprima las fuentes con\\\\ \\texttt{dpkg-source -x grep" "\\_2.6.3-3.dsc}" #. type: frame{#2} #: packaging-tutorial.tex:1528 msgid "Looking around and building the package" msgstr "Explorar y construir el paquete" #. type: itemize #: packaging-tutorial.tex:1528 msgid "" "According to \\texttt{debian/control}, this package only generates one " "binary package, named \\texttt{grep}." msgstr "" "De acuerdo a \\texttt{debian/control}, este paquete genera un solo paquete " "binario, llamado \\texttt{grep}." #. type: itemize #: packaging-tutorial.tex:1528 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 "" "De acuerdo a \\texttt{debian/rules}, este paquete es típico del asistente " "\\textsl{clásico} debhelper, sin utilizar \\textsl{CDBS} o \\textsl{dh}. Se " "pueden ver las múltiples invocaciones a órdenes \\texttt{dh\\_*} en " "\\texttt{debian/rules}." #. type: itemize #: packaging-tutorial.tex:1537 msgid "Use \\texttt{apt-get build-dep grep} to fetch the build-dependencies" msgstr "" "Utilice \\texttt{apt-get build-dep grep} para obtener las dependencias de " "construcción" #. type: itemize #: packaging-tutorial.tex:1537 msgid "" "Then \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc} (Takes about 1 " "min)" msgstr "" "A continuación, ejecute \\texttt{debuild} o \\texttt{dpkg-buildpackage -us -" "uc} (Llevará en torno a 1 minuto)" #. type: frame{#2} #: packaging-tutorial.tex:1541 msgid "Editing the changelog" msgstr "Editar el registro de cambios" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "\\texttt{debian/changelog} is a text file. You could edit it and add a new " "entry manually." msgstr "" "\\texttt{debian/changelog} es un fichero de texto. Puede editarlo y añadir " "una entrada nueva manualmente." #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Or you can use \\texttt{dch -i}, which will add an entry and open the editor" msgstr "" "O puede utilizar \\texttt{dch -i}, que añadirá una entrada y ejecutará el " "editor" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "The name and email can be defined using the \\texttt{DEBFULLNAME} and " "\\texttt{DEBEMAIL} environment variables" msgstr "" "El nombre y correo electrónico se puede definir con las variables de entorno " "\\texttt{DEBFULLNAME} y \\texttt{DEBEMAIL}" #. type: itemize #: packaging-tutorial.tex:1558 msgid "After that, rebuild the package: a new version of the package is built" msgstr "" "A continuación, reconstruya el paquete: una nueva versión del paquete es " "generada" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Package versioning is detailed in section 5.6.12 of the Debian policy\\\\ " "\\url{http://www.debian.org/doc/debian-policy/ch-controlfields}" msgstr "" "El versionado de paquetes se detalla en la sección 5.6.12 de las Normas de " "Debian\\\\ \\url{http://www.debian.org/doc/debian-policy/ch-controlfields}" #. type: frame{#2} #: packaging-tutorial.tex:1562 msgid "Disabling Perl regexp support and rebuilding" msgstr "" "Desactivar la compatibilidad con expresiones regulares de Perl y reconstruir" #. type: itemize #: packaging-tutorial.tex:1578 msgid "" "Check with \\texttt{./configure -{}-help}: the option to disable Perl regexp " "is \\texttt{-{}-disable-perl-regexp}" msgstr "" "Para comprobar, utilice \\texttt{./configure -{}-help}: la opción para " "desactivar la compatibilidad con expresiones regulares de Perl es \\texttt{-" "{}-disable-perl-regexp}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Edit \\texttt{debian/rules} and find the \\texttt{./configure} line" msgstr "" "Edite \\texttt{debian/rules} y busque la línea con \\texttt{./configure}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Add \\texttt{-{}-disable-perl-regexp}" msgstr "Añada \\texttt{-{}-disable-perl-regexp}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Rebuild with \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc}" msgstr "" "Reconstruya el paquete con \\texttt{debuild} o \\texttt{dpkg-buildpackage -" "us -uc}" #. type: frame{#2} #: packaging-tutorial.tex:1582 msgid "Comparing and testing the packages" msgstr "Comparar y comprobar los paquetes" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the binary packages: \\texttt{debdiff ../*changes}" msgstr "Compare los paquetes binarios: \\texttt{debdiff ../*changes}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the source packages: \\texttt{debdiff ../*dsc}" msgstr "Compare los paquetes fuente: \\texttt{debdiff ../*dsc}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "Install the newly built package: \\texttt{debi}\\\\ Or \\texttt{dpkg -i ../" "grep\\_}" msgstr "" "Instale el paquete recién creado: \\texttt{debi}\\\\ o \\texttt{dpkg -i ../" "grep\\_}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "\\texttt{grep -P foo} no longer works!" msgstr "¡\\texttt{grep -P foo} ya no funciona!" #. type: frame #: packaging-tutorial.tex:1608 msgid "Or not: reinstall the previous version of the package:" msgstr "O no: reinstale la versión anterior del paquete" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= previous " "version)}" msgstr "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= versión " "anterior)}" #. type: frame{#2} #: packaging-tutorial.tex:1655 packaging-tutorial.tex:1769 #: packaging-tutorial.tex:1811 msgid "Step by step\\ldots" msgstr "Paso a paso\\ldots" #. type: itemize #: packaging-tutorial.tex:1655 #, fuzzy #| msgid "" #| "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/1.0.6/gnujump-1.0.6.tar.gz}" msgid "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" msgstr "" "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/1.0.6/gnujump-1.0.6.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 #, fuzzy #| msgid "\\texttt{mv gnujump-1.0.6.tar.gz gnujump\\_1.0.6.orig.tar.gz}" msgid "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" msgstr "\\texttt{mv gnujump-1.0.6.tar.gz gnujump\\_1.0.6.orig.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 #, fuzzy #| msgid "\\texttt{tar xf gnujump\\_1.0.6.orig.tar.gz}" msgid "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" msgstr "\\texttt{tar xf gnujump\\_1.0.6.orig.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 #, fuzzy #| msgid "\\texttt{cd gnujump-1.0.6/}" msgid "\\texttt{cd gnujump-1.0.8/}" msgstr "\\texttt{cd gnujump-1.0.6/}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{dh\\_make}" msgstr "\\texttt{dh\\_make}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "Type of package: single binary (for now)" msgstr "Tipo de paquete: binario único (por ahora)" #. type: lstlisting #: packaging-tutorial.tex:1655 #, fuzzy, no-wrap #| msgid "" #| "[basicstyle=\\ttfamily\\small]\n" #| "gnujump-1.0.6$ 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" 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 "" "[basicstyle=\\ttfamily\\small]\n" "gnujump-1.0.6$ 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" #. type: frame{#2} #: packaging-tutorial.tex:1682 packaging-tutorial.tex:1835 msgid "Step by step\\ldots (2)" msgstr "Paso a paso\\ldots (2)" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Look at \\texttt{debian/changelog}, \\texttt{debian/rules}, \\texttt{debian/" "control}\\\\ (auto-filled by \\textbf{dh\\_make})" msgstr "" "Examine \\texttt{debian/changelog}, \\texttt{debian/rules}, \\texttt{debian/" "control}\\\\ (completado automáticamente por \\textbf{dh\\_make})" #. type: itemize #: packaging-tutorial.tex:1682 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 "" "En \\texttt{debian/control}:\\\\ \\texttt{Build-Depends: debhelper (>= " "7.0.50~), autotools-dev}\\\\ Enumera las \\textsl{dependencias de " "constucción} = paquetes necesarios para construir el paquete" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Try to build the package as-is (thanks to \\textbf{dh} magic)" msgstr "" "Intente construir el paquete en su estado actual (gracias a la «magia» de " "\\textbf{dh})" #. type: itemize #: packaging-tutorial.tex:1682 msgid "And add build-dependencies, until it builds" msgstr "Añada dependencias de construcción hasta que se puede construir" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Hint: use \\texttt{apt-cache search} and \\texttt{apt-file} to find the " "packages" msgstr "" "Pista: utilice \\texttt{apt-cache search} y \\texttt{apt-file} para " "encontrar los paquetes" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Example:" msgstr "Ejemplo:" #. type: lstlisting #: packaging-tutorial.tex:1682 #, 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 "" "[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!" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "$\\rightarrow$ Add \\textbf{libsdl1.2-dev} to Build-Depends and install it." msgstr "" "$\\rightarrow$ Añada \\textbf{libsdl1.2-dev} al campo «Build-Depends» e " "instálelo." #. type: itemize #: packaging-tutorial.tex:1682 msgid "Better: use \\textbf{pbuilder} to build in a clean environment" msgstr "" "Mejor aún: utilice \\textbf{pbuilder} para realizar la construcción en un " "entorno limpio" #. type: frame{#2} #: packaging-tutorial.tex:1710 packaging-tutorial.tex:1849 msgid "Step by step\\ldots (3)" msgstr "Paso a paso\\ldots (3)" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "After installing \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-" "mixer1.2-dev}, the package builds fine." msgstr "" "Tras instalar \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-mixer1.2-" "dev}, el paquete se construye correctamente." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debc} to list the content of the generated package." msgstr "Utilice \\texttt{debc} para mostrar el contenido del paquete generado." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debi} to install it and test it." msgstr "Utilice \\texttt{debi} para instalar y comprobar el paquete." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Test the package with \\texttt{lintian}" msgstr "Pruebe el paquete con \\texttt{lintian}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "While not a strict requirement, it is recommended that packages uploaded to " "Debian are \\textsl{lintian-clean}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "More problems can be listed using \\texttt{lintian -EviIL +pedantic}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Some hints:" msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Remove the files that you don't need in \\texttt{debian/}" msgstr "Elimine los ficheros que no necesita en \\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:1710 #, fuzzy #| msgid "\\texttt{Architecture:\\ all} in \\texttt{debian/control}" msgid "Fill in \\texttt{debian/control}" msgstr "\\texttt{Architecture:\\ all} en \\texttt{debian/control}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Install the executable to \\texttt{/usr/games} by overriding \\texttt{dh" "\\_auto\\_configure}" msgstr "" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Use \\textsl{hardening} compiler flags to increase security.\\\\ See " "\\url{http://wiki.debian.org/Hardening}" msgstr "" #. type: frame{#2} #: packaging-tutorial.tex:1723 #, fuzzy #| msgid "Step by step\\ldots (2)" msgid "Step by step\\ldots (4)" msgstr "Paso a paso\\ldots (2)" #. type: itemize #: packaging-tutorial.tex:1723 msgid "Compare your package with the one already packaged in Debian:" msgstr "Compare su paquete con el que existe en Debian:" #. type: itemize #: packaging-tutorial.tex:1723 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 "" "Separa los ficheros de datos en un segundo paquete, que es idéntico en todas " "las arquitecturas ($\\rightarrow$ ahorra espacio en el archivo de Debian)" #. type: itemize #: packaging-tutorial.tex:1723 msgid "" "It installs a .desktop file (for the GNOME/KDE menus) and also integrates " "into the Debian menu" msgstr "" "Instala un fichero «.desktop» (para los menús de GNOME/KDE) y también se " "integra en el menú de Debian" #. type: itemize #: packaging-tutorial.tex:1723 msgid "It fixes a few minor problems using patches" msgstr "Arregla algunos problemas pequeños utilizando parches" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{apt-get install javahelper}" msgstr "\\texttt{apt-get install javahelper}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Create a basic source package: \\texttt{jh\\_makepkg}" msgstr "Cree un paquete fuente básico: \\texttt{jh\\_makepkg}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Library" msgstr "Biblioteca" #. type: itemize #: packaging-tutorial.tex:1769 msgid "None" msgstr "Ninguno" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Default Free compiler/runtime" msgstr "Compilador y sistema de tiempo de ejecución libre predefinido" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Look at and fix \\texttt{debian/*}" msgstr "Compruebe y modifique \\texttt{debian/*}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{dpkg-buildpackage -us -uc} or \\texttt{debuild}" msgstr "\\texttt{dpkg-buildpackage -us -uc} o \\texttt{debuild}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{lintian}, \\texttt{debc}, etc." msgstr "\\texttt{lintian}, \\texttt{debc}, etc." #. type: itemize #: packaging-tutorial.tex:1769 msgid "Compare your result with the \\texttt{libirclib-java} source package" msgstr "Compare sus resultados con el paquete fuente \\texttt{libirclib-java}" #. type: frame #: packaging-tutorial.tex:1811 msgid "\\texttt{gem2deb net-ssh}:" msgstr "\\texttt{gem2deb net-ssh}:" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Downloads the gem from rubygems.org" msgstr "Descarga el fichero «gem» de rubygems.org" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Creates a suitable .orig.tar.gz archive, and untar it" msgstr "" "Genera un archivo «.orig.tar.gz» adecuado, y descomprime el archivo tar" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Initializes a Debian source package based on the gem's metadata" msgstr "Inicia una paquete fuente de Debian en base o los metadatos del «gem»" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Named \\texttt{ruby-\\textsl{gemname}}" msgstr "Se denomina \\texttt{ruby-\\textsl{gemname}}" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Tries to build the Debian binary package (this might fail)" msgstr "Intenta construir un paquete binario de Debian (puede fallar)" #. type: frame #: packaging-tutorial.tex:1811 msgid "" "\\texttt{dh\\_ruby} (included in \\textsl{gem2deb}) does the Ruby-specific " "tasks:" msgstr "" "\\texttt{dh\\_ruby} (incluido en \\textsl{gem2deb}) realiza las tareas " "específicas de Ruby:" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Build C extensions for each Ruby version" msgstr "Genera extensiones C para cada versión de Ruby" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Copy files to their destination directory" msgstr "Copia ficheros a su directorio de destino" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Update shebangs in executable scripts" msgstr "Actualiza los «shebang» de los scripts ejecutables" #. type: itemize #: packaging-tutorial.tex:1811 msgid "" "Run tests defined in \\texttt{debian/ruby-tests.rb} or \\texttt{debian/ruby-" "test-files.yaml}, as well as various other checks" msgstr "" "Realiza comprobaciones definidas en \\texttt{debian/ruby-tests.rb} o " "\\texttt{debian/ruby-test-files.yaml}, así como otras comprobaciones" #. type: frame #: packaging-tutorial.tex:1835 msgid "Improve the generated package:" msgstr "Mejore el paquete generado:" #. Translators: #. This context is very sensitive to line length. If you #. hit errors building the package around this line in your translated version #. see, e.g. in the Spanish or German version for versions with explicit line #. breaks for the translation #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Run \\texttt{debclean} to clean the source tree. Look at \\texttt{debian/}." msgstr "" "Ejecute \\texttt{debclean} para limpiar el árbol de fuentes. Compruebe " "\\texttt{debian/}." #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{changelog} and \\texttt{compat} should be correct" msgstr "\\texttt{changelog} y \\texttt{compat} deben ser correctas" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Edit \\texttt{debian/control}: uncomment \\texttt{Homepage}, improve " "\\texttt{Description}" msgstr "" "Edite \\texttt{debian/control}: elimine la marca de comentario de " "\\texttt{Homepage}, mejore el campo \\texttt{Description}" #. type: itemize #: packaging-tutorial.tex:1835 msgid "Write a proper \\texttt{copyright} file based on the upstream files" msgstr "" "Cree un fichero \\texttt{copyright} adecuado basado en los ficheros del " "desarrollador original" #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{ruby-net-ssh.docs}: install \\texttt{README.rdoc}" msgstr "\\texttt{ruby-net-ssh.docs}: instale \\texttt{README.rdoc}" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "\\texttt{ruby-tests.rb}: run the tests. In that case, it is enough to do:\\" "\\ \\verb+$: << 'test' << 'lib' << '.'+\\\\ \\verb+require 'test/test_all." "rb'+" msgstr "" "\\texttt{ruby-tests.rb}: ejecute las comprobaciones. En este caso, basta " "hacer:\\\\\n" "\\verb+$: << 'test' << 'lib << '.'+\\\\\n" "\\verb+require 'test/test_all.rb'+" #. type: frame #: packaging-tutorial.tex:1849 msgid "Build the package. It fails to build. There are two problems:" msgstr "Construya el paquete. El proceso falla. Hay dos problemas:" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "You need to disable the \\texttt{gem} call in the test suite.\\\\ In " "\\texttt{test/common.rb}, remove the \\verb+gem \"test-unit\"+ line:" msgstr "" "Debe desactivar la invocación \\texttt{gem} del conjunto de pruebas.\\\\ En " "\\texttt{test/common.rb}, elimine la línea \\verb+gem \"test-unit\"+:" #. type: itemize #: packaging-tutorial.tex:1849 msgid "\\texttt{edit-patch disable-gem.patch}" msgstr "\\texttt{edit-patch disable-gem.patch}" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "Edit \\texttt{test/common.rb}, remove the \\texttt{gem} line. Exit the sub-" "shell" msgstr "" "Edite \\texttt{test/common.rb}, elimine la línea \\texttt{gem}. Cierre la " "consola secundaria" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Describe the changes in \\texttt{debian/changelog}" msgstr "Describa los cambios en \\texttt{debian/changelog}" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Document the patch in \\texttt{debian/patches/disable-gem.patch}" msgstr "Documente el parche en \\texttt{debian/patches/disable-gem.patch}" #. type: itemize #: packaging-tutorial.tex:1854 msgid "" "The package lacks a build-dependency on \\texttt{ruby-mocha}, which is used " "by the test suite (you might need to build your package in a clean " "environment, using \\texttt{pbuilder}, to reproduce that problem)" msgstr "" "El paquete no tiene una dependencia de construcción sobre texttt{ruby-" "mocha}, utilizado por el conjunto de pruebas (puede que necesite construir " "el paquete en un entorno limpia, utilizando \\texttt{pbuilder}, para " "reproducir el problema)" #. type: itemize #: packaging-tutorial.tex:1857 msgid "Add \\texttt{ruby-mocha} to the package's \\texttt{Build-Depends}" msgstr "" "Añada \\texttt{ruby-mocha} al campo \\texttt{Build-Depends} del paquete" #. type: itemize #: packaging-tutorial.tex:1868 msgid "" "\\textsl{gem2deb} copies the dependencies documented in the \\textsl{gem} as " "comments in \\texttt{debian/control}, but \\textsl{mocha} is not listed as a " "development dependency by the gem (that's a bug in the gem)" msgstr "" "\\textsl{gem2deb} copia las dependencias documentadas en el fichero " "\\textsl{gem} como comentarios a \\texttt{debian/control}, pero el fichero " "gem no incluye \\textsl{mocha} como dependencia de construcción (es un fallo " "en el fichero gem)" #. type: frame #: packaging-tutorial.tex:1868 msgid "" "Compare your package with the \\texttt{ruby-net-ssh} package in the Debian " "archive" msgstr "" "Compare su paquete con el paquete \\texttt{ruby-net-ssh} del archivo de " "Debian" #~ msgid "They know the specifics of your package" #~ msgstr "Conocen los detalles específicos de su paquete" #~ msgid "You can become a member of the team" #~ msgstr "Puede convertirse en un miembro del equipo" #~ msgid "Official documentation" #~ msgstr "Documentación oficial" #~ msgid "Latest version \\& source code" #~ msgstr "Última versión y código fuente" #~ msgid "" #~ "Latest version:\\\\ {\\footnotesize \\url{http://git.debian.org/?p=collab-" #~ "maint/packaging-tutorial.git;a=blob\\_plain;f=packaging-tutorial.pdf;" #~ "hb=refs/heads/pdf}}" #~ msgstr "" #~ "Última versión :\\\\ {\\footnotesize \\url{http://git.debian.org/?" #~ "p=collab-maint/packaging-tutorial.git;a=blob\\_plain;f=packaging-tutorial." #~ "pdf;hb=refs/heads/pdf}}" #~ msgid "" #~ "Fill in \\texttt{debian/control} using \\url{http://www.debian.org/doc/" #~ "debian-policy/ch-controlfields}" #~ msgstr "" #~ "Complete \\texttt{debian/control} utilizando \\url{http://www.debian.org/" #~ "doc/debian-policy/ch-controlfields}" #~ msgid "Packaging with a VCS (SVN, Git \\& friends)" #~ msgstr "" #~ "Creación de paquetes con sistemas de control de versiones (SVN, Git y " #~ "demás)" #~ msgid "All patches are published on \\url{http://patch-tracker.debian.org/}" #~ msgstr "" #~ "Todos los parches son publicados en \\url{http://patch-tracker.debian." #~ "org/}" #~ msgid "Practical session: modifying the grep package" #~ msgstr "Ejercicio práctico: modificar el paquete grep" #~ msgid "version \\version{} -- \\year-\\month-\\day" #~ msgstr "versión \\version{} -- \\day-\\month-\\year" packaging-tutorial-0.12/po4a/po/fr.po0000644000000000000000000043017312234414737014356 0ustar # French translations for packaging-tutorial package # Traductions françaises du paquet packaging-tutorial # Copyright (C) 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the packaging-tutorial package. # # Jean-Philippe MENGUAL , 2011. # Cédric Boutillier , 2011, 2012, 2013. msgid "" msgstr "" "Project-Id-Version: po 4a\n" "POT-Creation-Date: 2013-10-29 20:42+0100\n" "PO-Revision-Date: 2013-08-21 18:01+0200\n" "Last-Translator: Cédric Boutillier \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "\">\n" "\">\n" "\">\n" "\">\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 1.5\n" #. type: Plain text #: packaging-tutorial.tex:4 msgid "\\mode \\usetheme{debian}" msgstr "\\mode \\usetheme{debian}" #. 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 "" "\\usepackage{debiantutorial.fr} \\usepackage[french]{babel} " "\\frenchbsetup{og=«,fg=»}" #. type: title{#2} #: packaging-tutorial.tex:14 msgid "Debian Packaging Tutorial" msgstr "Tutoriel : la construction de paquets Debian" #. type: author{#2} #: packaging-tutorial.tex:14 msgid "" "Lucas Nussbaum\\\\{\\small\\texttt{packaging-tutorial@packages.debian.org}}" msgstr "" "Lucas Nussbaum\\\\{\\small\\texttt{packaging-tutorial@packages.debian.org}}\\" "\\[0.5em]Traduction française de\\\\ Cédric\\ Boutillier, Jean-Philippe\\ " "Mengual\\\\et l'équipe francophone de traduction" #. 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 #, fuzzy #| msgid "version 0.10 -- 2013-09-12" msgid "version 0.11 -- 2013-10-29" msgstr "version 0.10 -- 2013-09-12" #. type: frame{#2} #: packaging-tutorial.tex:52 msgid "About this tutorial" msgstr "À propos de ce tutoriel" #. type: itemize #: packaging-tutorial.tex:52 msgid "" "Goal: \\textbf{tell you what you really need to know about Debian packaging}" msgstr "" "Objectif : \\textbf{présenter ce que vous devez absolument savoir sur la " "construction de paquets Debian}" #. type: itemize #: packaging-tutorial.tex:52 msgid "Modify existing packages" msgstr "Modifier des paquets existants" #. type: itemize #: packaging-tutorial.tex:52 msgid "Create your own packages" msgstr "Créer vos propres paquets" #. type: itemize #: packaging-tutorial.tex:52 msgid "Interact with the Debian community" msgstr "Interagir avec la communauté Debian" #. type: itemize #: packaging-tutorial.tex:52 msgid "Become a Debian power-user" msgstr "Devenir un utilisateur chevronné de Debian" #. type: itemize #: packaging-tutorial.tex:52 msgid "Covers the most important points, but is not complete" msgstr "Il couvre les points les plus importants mais n'est pas complet" #. type: itemize #: packaging-tutorial.tex:52 msgid "You will need to read more documentation" msgstr "Vous devrez lire plus de documentation" #. type: itemize #: packaging-tutorial.tex:52 msgid "Most of the content also applies to Debian derivative distributions" msgstr "L'essentiel s'applique aussi aux distributions dérivées de Debian" #. type: itemize #: packaging-tutorial.tex:52 msgid "That includes Ubuntu" msgstr "en particulier à Ubuntu" #. type: frame{#2} #: packaging-tutorial.tex:56 debiantutorial.sty:42 msgid "Outline" msgstr "Plan" #. type: section{#2} #: packaging-tutorial.tex:58 msgid "Introduction" msgstr "Introduction" #. type: frame{#2} #: packaging-tutorial.tex:60 packaging-tutorial.tex:84 msgid "Debian" msgstr "Debian" #. type: textbf{#1} #: packaging-tutorial.tex:84 msgid "GNU/Linux distribution" msgstr "Distribution GNU/Linux" #. type: itemize #: packaging-tutorial.tex:84 msgid "1st major distro developed ``openly in the spirit of GNU''" msgstr "" "1\\iere distribution majeure développée « ouvertement dans l'esprit GNU »" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Non-commercial}, built collaboratively by over 1,000 volunteers" msgstr "" "\\textbf{Non commerciale}, fruit de la collaboration de plus de 1~000 " "bénévoles" #. type: itemize #: packaging-tutorial.tex:84 msgid "3 main features:" msgstr "3 caractéristiques principales :" #. type: itemize #: packaging-tutorial.tex:84 msgid "" "\\textbf{Quality} -- culture of technical excellence\\\\ {\\small\\sl We " "release when it's ready}" msgstr "" "\\textbf{Qualité} -- culture de l'excellence technique\\\\ {\\small\\sl Nous " "publions quand c'est prêt}" #. 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 "" "\\textbf{Liberté} -- développeurs et utilisateurs adhèrent au " "\\textsl{Contrat social}\\\\ Promotion de la culture du logiciel libre " "depuis 1993" #. 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 "" "\\textbf{Indépendance} -- pas d'entreprise (unique) pour chapeauter Debian\\" "\\ et processus décisionnel ouvert (\\textsl{volontariat} + " "\\textsl{démocratie})" #. type: itemize #: packaging-tutorial.tex:84 msgid "\\textbf{Amateur} in the best sense: done for the love of it" msgstr "" "\\textbf{Amateur} dans le bon sens du terme : \\og fait avec amour \\fg" #. type: frame{#2} #: packaging-tutorial.tex:105 msgid "Debian packages" msgstr "Paquets Debian" #. type: itemize #: packaging-tutorial.tex:105 msgid "\\textbf{.deb} files (binary packages)" msgstr "Fichiers \\textbf{.deb} (paquets binaires)" #. type: itemize #: packaging-tutorial.tex:105 msgid "A very powerful and convenient way to distribute software to users" msgstr "" "Moyen puissant et pratique pour distribuer des logiciels aux utilisateurs " #. type: itemize #: packaging-tutorial.tex:105 msgid "One of the two most common package formats (with RPM)" msgstr "Un des deux formats de paquets les plus courants avec RPM" #. type: itemize #: packaging-tutorial.tex:105 msgid "Universal:" msgstr "Universel :" #. 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 "" "30~000 paquets binaires dans Debian\\\\ $\\rightarrow$ la plupart des " "logiciels libres sont empaquetés dans Debian !" #. type: itemize #: packaging-tutorial.tex:105 msgid "For 12 ports (architectures), including 2 non-Linux (Hurd; KFreeBSD)" msgstr "12 portages (architectures), dont 2 non Linux (Hurd et kFreeBSD)" #. type: itemize #: packaging-tutorial.tex:105 msgid "Also used by 120 Debian derivative distributions" msgstr "Utilisé aussi par 120 distributions dérivées de Debian" #. type: frame{#2} #: packaging-tutorial.tex:108 packaging-tutorial.tex:133 msgid "The Deb package format" msgstr "Le format de paquet Deb" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{.deb} file: an \\texttt{ar} archive" msgstr "Fichier \\texttt{.deb} : une archive \\texttt{ar}" #. 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 "" "[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" " " #. $ #. type: itemize #: packaging-tutorial.tex:133 msgid "" "\\texttt{debian-binary}: version of the deb file format, " "\\texttt{\"2.0\\textbackslash{}n\"}" msgstr "" "\\texttt{debian-binary} : version du format de fichier .deb, « " "\\texttt{2.0\\textbackslash{}n} »" #. 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 "" "\\texttt{control.tar.gz} : métadonnées sur le paquet\\\\ {\\small " "\\texttt{\\textbf{control}, md5sums, (pre|post)(rm|inst), triggers, " "shlibs}\\ldots}" #. type: itemize #: packaging-tutorial.tex:133 msgid "\\texttt{data.tar.gz}: data files of the package" msgstr "\\texttt{data.tar.gz} : fichiers de données du paquet" #. 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 "" "Vous pourriez créer vos fichiers \\texttt{.deb} à la main\\\\ " "{\\footnotesize \\url{http://tldp.org/HOWTO/html\\_single/Debian-Binary-" "Package-Building-HOWTO/}}" #. type: itemize #: packaging-tutorial.tex:133 msgid "But most people don't do it that way" msgstr "Mais la plupart des gens ne font pas comme ça" #. type: textbf{#1} #: packaging-tutorial.tex:133 msgid "This tutorial: create Debian packages, the Debian way" msgstr "Ce tutoriel : création de paquets Debian à la manière Debian" #. type: frame{#2} #: packaging-tutorial.tex:153 msgid "Tools you will need" msgstr "Outils dont vous avez besoin" #. type: itemize #: packaging-tutorial.tex:153 msgid "A Debian (or Ubuntu) system (with root access)" msgstr "Un système Debian (ou Ubuntu) (avec accès superutilisateur)" #. type: itemize #: packaging-tutorial.tex:153 msgid "Some packages:" msgstr "Quelques paquets :" #. 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 "" "\\textbf{build-essential} : dépend de paquets supposés disponibles sur la " "machine du développeur (inutile de les indiquer dans le champ de contrôle " "\\texttt{Build-Depends} de votre paquet)" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "includes a dependency on \\textbf{dpkg-dev}, which contains basic Debian-" "specific tools to create packages" msgstr "" "dépend aussi de \\textbf{dpkg-dev}, contenant les outils de base spécifiques " "à Debian pour créer des paquets" #. type: itemize #: packaging-tutorial.tex:153 msgid "" "\\textbf{devscripts}: contains many useful scripts for Debian maintainers" msgstr "" "\\textbf{devscripts} : contient de nombreux scripts utiles pour les " "responsables Debian" #. 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 "" "Beaucoup d'autres outils seront aussi mentionnés plus tard, tels que " "\\textbf{debhelper}, \\textbf{cdbs}, \\textbf{quilt}, \\textbf{pbuilder}, " "\\textbf{sbuild}, \\textbf{lintian}, \\textbf{svn-buildpackage}, " "\\textbf{git-buildpackage}\\ldots\\\\ Installez-les au besoin." #. type: frame{#2} #: packaging-tutorial.tex:168 msgid "General packaging workflow" msgstr "Processus général de la construction de paquets" #. \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 "" "\\node[node1] (www) at (0, 0) {Web}; \\node[node1] (us) at (2.5, 0) {sources " "amont}; \\node[node1] (da) at (-2.5, 0) {miroir Debian}; \\node[node1] (sp) " "at (0, -2) {paquet source}; \\draw[arr,<-,dashed,thick] (sp) -- (2.5,-2) " "node[right=0cm,text width=3.1cm,text centered,font=\\small\\sl] {là où la " "plupart du travail manuel est fait}; \\node[node1] (bin) at (0, -4) {un ou " "plusieurs paquets binaires}; \\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} " "(construire et tester avec \\textttc{lintian}) ou \\textttc{dpkg-" "buildpackage}}; \\draw[arr,->] (bin) -- (1,-6) node[pos=0.5,right] " "{installer (\\textttc{debi})}; \\draw[transparent] (bin) -- (-1,-6) " "node[pos=0.5,left,opaque] {envoyer (\\textttc{dput})}; \\draw[arr,->,rounded " "corners] (bin) -- (-1,-6) -- (-4.5,-6) -- (-4.5,0) -- (da); " "\\useasboundingbox (-4,-6) rectangle (6,0);" #. type: subsection{#2} #: packaging-tutorial.tex:205 msgid "Rebuilding dash" msgstr "Reconstruction de dash" #. type: frame{#2} #: packaging-tutorial.tex:205 msgid "Example: rebuilding dash" msgstr "Exemple : reconstruction de dash" #. 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 "" "Installez les paquets nécessaires à la construction de dash, ainsi que " "devscripts \\\\ {\\texttt{apt-get build-dep dash}\\\\ (nécessite des lignes " "\\texttt{deb-src} dans \\texttt{/etc/apt/sources.list})}\\\\ {\\texttt{apt-" "get install -{}-no-install-recommends devscripts fakeroot}}" #. 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 "" "Créez un répertoire de travail et entrez-y\\\\ \\texttt{mkdir /tmp/debian-" "tutorial ; cd /tmp/debian-tutorial}" #. 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 "" "Récupérez le paquet source de \\texttt{dash}\\\\ \\texttt{apt-get source " "dash}\\\\ {\\small (Il faut pour cela avoir des lignes \\texttt{deb-src} " "dans votre \\texttt{/etc/apt/sources.list})}" #. 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 "" "Construisez le paquet\\\\ {\\texttt{cd dash-*\\\\ debuild -us -uc}} " "~~~(\\texttt{-us -uc} désactive la signature du paquet avec GPG)" #. type: enumerate #: packaging-tutorial.tex:218 msgid "Check that it worked" msgstr "Vérifiez le résultat" #. type: itemize #: packaging-tutorial.tex:218 msgid "There are some new \\texttt{.deb} files in the parent directory" msgstr "Il y a de nouveaux fichiers \\texttt{.deb} dans le répertoire parent" #. type: enumerate #: packaging-tutorial.tex:218 msgid "Look at the \\texttt{debian/} directory" msgstr "Regardez le répertoire \\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:218 msgid "That's where the packaging work is done" msgstr "C'est là que se fait le travail de construction du paquet" #. type: section{#2} #: packaging-tutorial.tex:256 msgid "Creating source packages" msgstr "Création des paquets source" #. type: subsection{#2} #: packaging-tutorial.tex:256 msgid "Source packages basics" msgstr "Notions de base sur les paquets source" #. type: frame{#2} #: packaging-tutorial.tex:256 msgid "Source package" msgstr "Paquet source" #. 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 "" "Un paquet source peut produire plusieurs paquets binaires\\\\ {\\small Le " "paquet source \\texttt{\\bfseries libtar} produit les paquets binaires " "\\texttt{\\bfseries libtar0} et \\texttt{\\bfseries libtar-dev}}" #. type: itemize #: packaging-tutorial.tex:256 msgid "Two kinds of packages: (if unsure, use non-native)" msgstr "Deux types de paquets : (en cas de doute, utilisez « non natif »)" #. type: itemize #: packaging-tutorial.tex:256 msgid "" "Native packages: normally for Debian specific software (\\textsl{dpkg}, " "\\textsl{apt})" msgstr "" "natif : normalement pour les logiciels spécifiques à Debian (\\textsl{dpkg}, " "\\textsl{apt}\\ldots)" #. type: itemize #: packaging-tutorial.tex:256 msgid "Non-native packages: software developed outside Debian" msgstr "non natif : logiciels développés hors de Debian" #. type: itemize #: packaging-tutorial.tex:256 msgid "Main file: \\texttt{.dsc} (meta-data)" msgstr "Fichier principal : \\texttt{.dsc} (métadonnées)" #. type: itemize #: packaging-tutorial.tex:256 msgid "Other files depending on the version of the source format" msgstr "Autres fichiers selon la version du format source" #. type: itemize #: packaging-tutorial.tex:256 msgid "1.0 or 3.0 (native): \\texttt{package\\_version.tar.gz}" msgstr "1.0 ou 3.0 (natif) : \\texttt{paquet\\_version.tar.gz}" #. type: itemize #: packaging-tutorial.tex:256 msgid "1.0 (non-native):" msgstr "1.0 (non natif) :" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_ver.orig.tar.gz}: upstream source" msgstr "\\texttt{paquet\\_ver.orig.tar.gz} : sources amont" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.diff.gz}: patch to add Debian-specific changes" msgstr "" "\\texttt{paquet\\_debver.diff.gz} : correctif avec des modifications " "spécifiques à Debian" #. type: itemize #: packaging-tutorial.tex:256 msgid "3.0 (quilt):" msgstr "3.0 (quilt) :" #. type: itemize #: packaging-tutorial.tex:256 msgid "\\texttt{pkg\\_debver.debian.tar.gz}: tarball with the Debian changes" msgstr "" "\\texttt{paquet\\_debver.debian.tar.gz} : archive tar avec les modifications " "de Debian" #. type: frame #: packaging-tutorial.tex:256 msgid "(See \\texttt{dpkg-source(1)} for exact details)" msgstr "(Consultez \\texttt{dpkg-source(1)} pour les détails exacts.)" #. type: frame{#2} #: packaging-tutorial.tex:280 msgid "Source package example (wget\\_1.12-2.1.dsc)" msgstr "Exemple de paquet source (wget\\_1.12-2.1.dsc)" #. 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" "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 "" "[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" "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" #. type: subsection{#2} #: packaging-tutorial.tex:308 msgid "Retrieving source packages" msgstr "Récupération des paquets source" #. type: frame{#2} #: packaging-tutorial.tex:308 msgid "Retrieving an existing source package" msgstr "Récupération d'un paquet source existant" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the Debian archive:" msgstr "À partir de l'archive Debian :" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package}}" msgstr "\\texttt{apt-get source \\textsl{paquet}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package=version}}" msgstr "\\texttt{apt-get source \\textsl{paquet=version}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{apt-get source \\textsl{package/release}}" msgstr "\\texttt{apt-get source \\textsl{paquet/distribution}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "(You need \\texttt{deb-src} lines in \\texttt{sources.list})" msgstr "" "(Vous avez besoin de lignes \\texttt{deb-src} dans \\texttt{sources.list})" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the Internet:" msgstr "Depuis Internet :" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{dget \\textsl{url-to.dsc}}" msgstr "\\texttt{dget \\textsl{url-vers.dsc}}" #. 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 "" "\\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} fournit " "tous les paquets de Debian depuis 2005)" #. type: itemize #: packaging-tutorial.tex:308 msgid "From the (declared) version control system:" msgstr "Depuis le gestionnaire de versions (déclaré) :" #. type: itemize #: packaging-tutorial.tex:308 msgid "\\texttt{debcheckout \\textsl{package}}" msgstr "\\texttt{debcheckout \\textsl{paquet}}" #. type: itemize #: packaging-tutorial.tex:308 msgid "" "Once downloaded, extract with \\texttt{dpkg-source -x \\textsl{file.dsc}}" msgstr "" "Une fois téléchargé, dépaquetez-le avec \\texttt{dpkg-source -x " "\\textsl{fichier.dsc}}" #. type: frame{#2} #: packaging-tutorial.tex:331 msgid "Creating a basic source package" msgstr "Création d'un paquet source de base" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "Download the upstream source\\\\ (\\textsl{upstream source} = the one from " "the software's original developers)" msgstr "" "Téléchargez l'archive des sources amont\\\\ (\\textsl{sources amont} = " "celles fournies par les développeurs du logiciel)" #. 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 "" "Renommez-la en \\texttt{<\\textsl{paquet\\_source}>\\_<\\textsl{version" "\\_amont}>.orig.tar.gz}\\\\ (exemple : \\texttt{simgrid\\_3.6.orig.tar.gz})" #. type: itemize #: packaging-tutorial.tex:331 msgid "Untar it" msgstr "Décompressez-la" #. type: itemize #: packaging-tutorial.tex:331 msgid "" "Rename the directory to \\texttt{<\\textsl{source\\_package}>-<" "\\textsl{upstream\\_version}>}\\\\ (example: \\texttt{simgrid-3.6})" msgstr "" "Renommez le répertoire en \\texttt{<\\textsl{paquet\\_source}>-<" "\\textsl{version\\_amont}>}\\\\ (exemple : \\texttt{simgrid-3.6})" #. 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 "" "\\texttt{cd <\\textsl{paquet\\_source}>-<\\textsl{version\\_amont}> \\&\\& dh" "\\_make} (du paquet \\textbf{dh-make})" #. 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 "" "Il existe des alternatives à \\texttt{dh\\_make} pour des types de paquets " "spécifiques : \\textbf{dh-make-perl}, \\textbf{dh-make-php}\\ldots" #. type: itemize #: packaging-tutorial.tex:331 msgid "\\texttt{debian/} directory created, with a lot of files in it" msgstr "" "Un répertoire \\texttt{debian/} est créé, contenant de nombreux fichiers" #. type: frame{#2} #: packaging-tutorial.tex:360 msgid "Files in debian/" msgstr "Fichiers dans debian/" #. type: frame #: packaging-tutorial.tex:360 msgid "" "All the packaging work should be made by modifying files in \\texttt{debian/}" msgstr "" "L'empaquetage ne doit se faire qu'en modifiant les fichiers de " "\\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:360 msgid "Main files:" msgstr "Fichiers principaux :" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{control} -- meta-data about the package (dependencies, etc.)" msgstr "\\textbf{control} -- métadonnées sur le paquet (dépendances, etc.)" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{rules} -- specifies how to build the package" msgstr "\\textbf{rules} -- indique la manière de construire le paquet" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{copyright} -- copyright information for the package" msgstr "\\textbf{copyright} -- informations de copyright du paquet" #. type: itemize #: packaging-tutorial.tex:360 msgid "\\textbf{changelog} -- history of the Debian package" msgstr "\\textbf{changelog} -- journal des modifications du paquet Debian" #. type: itemize #: packaging-tutorial.tex:360 msgid "Other files:" msgstr "Autres fichiers :" #. type: itemize #: packaging-tutorial.tex:360 msgid "compat" msgstr "compat" #. type: itemize #: packaging-tutorial.tex:360 msgid "watch" msgstr "watch" #. type: itemize #: packaging-tutorial.tex:360 msgid "dh\\_install* targets\\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}" msgstr "" "configuration de dh\\_install* ({\\small *.dirs, *.docs, *.manpages\\ldots})" #. type: itemize #: packaging-tutorial.tex:360 msgid "maintainer scripts\\\\ {\\small *.postinst, *.prerm, \\ldots}" msgstr "scripts du responsable ({\\small *.postinst, *.prerm\\ldots})" #. type: itemize #: packaging-tutorial.tex:360 msgid "source/format" msgstr "source/format" #. type: itemize #: packaging-tutorial.tex:360 msgid "patches/ -- if you need to modify the upstream sources" msgstr "patches/ -- si vous avez besoin de modifier les sources amont" #. type: itemize #: packaging-tutorial.tex:360 msgid "Several files use a format based on RFC 822 (mail headers)" msgstr "" "Plusieurs fichiers ont un format basé sur la RFC 822 (en-têtes de courriel)" #. type: frame{#2} #: packaging-tutorial.tex:372 msgid "debian/changelog" msgstr "debian/changelog" #. type: itemize #: packaging-tutorial.tex:372 msgid "Lists the Debian packaging changes" msgstr "Liste les modifications dans la construction du paquet Debian" #. type: itemize #: packaging-tutorial.tex:372 msgid "Gives the current version of the package" msgstr "Donne la version actuelle du paquet" #. 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 "" "\\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 Révision Debian}; \\draw [decorate," "decoration={brace}] (1.4,0) -- (0,0) node[midway,below,text width=1.6cm,text " "centered] { \\small Version amont};" #. % #. type: itemize #: packaging-tutorial.tex:386 msgid "Edited manually or with \\textttc{dch}" msgstr "Édité à la main ou avec \\textttc{dch}" #. type: itemize #: packaging-tutorial.tex:386 msgid "Create a changelog entry for a new release: \\textttc{dch -i}" msgstr "Pour créer une entrée pour une nouvelle version : \\textttc{dch -i}" #. 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 "" "Format spécial pour clôturer des bogues Debian ou Ubuntu\\\\ Debian : " "\\texttt{Closes:~\\#595268}; Ubuntu : \\texttt{LP:~\\#616929}" #. type: itemize #: packaging-tutorial.tex:386 msgid "" "Installed as \\texttt{/usr/share/doc/\\textit{package}/changelog.Debian.gz}" msgstr "" "Installé en tant que \\texttt{/usr/share/doc/\\textit{paquet}/changelog." "Debian.gz}" #. 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 "" "[basicstyle=\\ttfamily\\footnotesize]\n" "mpich2 (1.2.1.1-5) unstable; urgency=low\n" "\n" #. 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 "" " * 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" #. type: lstlisting #: packaging-tutorial.tex:394 #, no-wrap msgid " -- Lucas Nussbaum Wed, 15 Sep 2010 18:13:44 +0200" msgstr " -- Lucas Nussbaum Wed, 15 Sep 2010 18:13:44 +0200" #. type: frame{#2} #: packaging-tutorial.tex:421 msgid "debian/control" msgstr "debian/control" #. type: itemize #: packaging-tutorial.tex:421 msgid "Package metadata" msgstr "Métadonnées du paquet" #. type: itemize #: packaging-tutorial.tex:421 msgid "For the source package itself" msgstr "pour le paquet source lui-même" #. type: itemize #: packaging-tutorial.tex:421 msgid "For each binary package built from this source" msgstr "pour chaque paquet binaire construit à partir de ce paquet source" #. type: itemize #: packaging-tutorial.tex:421 msgid "" "Package name, section, priority, maintainer, uploaders, build-dependencies, " "dependencies, description, homepage, \\ldots" msgstr "" "Nom du paquet, section, priorité, responsable, \\textit{uploaders}, " "dépendances de construction, dépendances, description, page d'accueil\\ldots" #. type: itemize #: packaging-tutorial.tex:421 msgid "" "Documentation: Debian Policy chapter 5\\\\ \\url{http://www.debian.org/doc/" "debian-policy/ch-controlfields}" msgstr "" "Documentation : la Charte Debian, chapitre 5\\\\ \\url{http://www.debian.org/" "doc/debian-policy/ch-controlfields.html}" #. 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" "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 "" "[basicstyle=\\ttfamily\\footnotesize]\n" "Source: wget\n" "Section: web\n" "Priority: important\n" "Maintainer: Noel Kothe \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" #. 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 "" "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" #. type: frame{#2} #: packaging-tutorial.tex:456 msgid "Architecture: all or any" msgstr "Architecture: « all » ou « any »" #. type: frame #: packaging-tutorial.tex:456 msgid "Two kinds of binary packages:" msgstr "Deux types de paquets binaires :" #. type: itemize #: packaging-tutorial.tex:456 msgid "Packages with different contents on each Debian architecture" msgstr "Paquets ayant un contenu différent selon l'architecture Debian" #. type: itemize #: packaging-tutorial.tex:456 msgid "Example: C program" msgstr "Exemple : programme C" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ any} in \\texttt{debian/control}" msgstr "\\texttt{Architecture:~any} dans \\texttt{debian/control}" #. 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 "" "Si ça ne fonctionne que sur certaines architectures :\\\\ " "\\texttt{Architecture:~amd64 i386 ia64 hurd-i386}" #. type: itemize #: packaging-tutorial.tex:456 msgid "buildd.debian.org: builds all the other architectures for you on upload" msgstr "buildd.debian.org : construit les autres architectures à l'envoi" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_" "\\textsl{architecture}.deb}" msgstr "" "Nommés \\texttt{\\textsl{paquet}\\_\\textsl{version}\\_" "\\textsl{architecture}.deb}" #. type: itemize #: packaging-tutorial.tex:456 msgid "Packages with the same content on all architectures" msgstr "Paquets ayant le même contenu sur toutes les architectures" #. type: itemize #: packaging-tutorial.tex:456 msgid "Example: Perl library" msgstr "Exemple : bibliothèque Perl" #. type: itemize #: packaging-tutorial.tex:456 msgid "\\texttt{Architecture:\\ all} in \\texttt{debian/control}" msgstr "\\texttt{Architecture:~all} dans \\texttt{debian/control}" #. type: itemize #: packaging-tutorial.tex:456 msgid "" "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_\\textbf{all}.deb}" msgstr "" "Nommé \\texttt{\\textsl{paquet}\\_\\textsl{version}\\_\\textbf{all}.deb}" #. 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 "" "Un même paquet source peut engendrer à la fois des paquets binaires " "\\texttt{Architecture:~any} et \\texttt{Architecture:~all}" #. type: frame{#2} #: packaging-tutorial.tex:482 msgid "debian/rules" msgstr "debian/rules" #. type: itemize #: packaging-tutorial.tex:482 msgid "Makefile" msgstr "Makefile" #. type: itemize #: packaging-tutorial.tex:482 msgid "Interface used to build Debian packages" msgstr "Interface utilisée pour construire des paquets Debian" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "Documented in Debian Policy, chapter 4.8\\\\ {\\small \\url{http://www." "debian.org/doc/debian-policy/ch-source\\#s-debianrules}}" msgstr "" "Documenté dans la Charte Debian, chapitre 4.8\\\\ {\\small \\url{http://www." "debian.org/doc/debian-policy/ch-source\\#s-debianrules}}" #. type: itemize #: packaging-tutorial.tex:482 msgid "Required targets:" msgstr "Cibles requises\\ :" #. type: itemize #: packaging-tutorial.tex:482 msgid "" "\\texttt{build, build-arch, build-indep}: should perform all the " "configuration and compilation" msgstr "" "\\texttt{build, build-arch, build-indep} : doit effectuer toute la " "configuration et la compilation" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{binary, binary-arch, binary-indep}: build the binary packages" msgstr "" "\\texttt{binary, binary-arch, binary-indep} : créent les paquets binaires" #. 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 "" "\\texttt{dpkg-buildpackage} appellera \\texttt{binary} pour construire tous " "les paquets ou \\texttt{binary-arch} pour ne construire que les paquets " "\\texttt{Architecture:~any}" #. type: itemize #: packaging-tutorial.tex:482 msgid "\\texttt{clean}: clean up the source directory" msgstr "\\texttt{clean} : nettoie le répertoire des sources" #. type: subsection{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers" msgstr "Assistants d'empaquetage" #. type: frame{#2} #: packaging-tutorial.tex:516 msgid "Packaging helpers -- debhelper" msgstr "Assistants d'empaquetage -- debhelper" #. type: itemize #: packaging-tutorial.tex:516 msgid "You could write shell code in \\texttt{debian/rules} directly" msgstr "" "Vous pourriez écrire du code shell dans le fichier \\texttt{debian/rules}" #. type: itemize #: packaging-tutorial.tex:516 msgid "See the \\texttt{adduser} package for example" msgstr "Voir le paquet \\texttt{adduser} par exemple" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Better practice (used by most packages): use a \\textsl{Packaging helper}" msgstr "" "Mieux : utilisez un \\textsl{assistant d'empaquetage} \\\\(déjà le cas pour " "la plupart des paquets)" #. type: itemize #: packaging-tutorial.tex:516 msgid "Most popular one: \\textbf{debhelper} (used by 98\\% of packages)" msgstr "" "Le plus populaire : \\textbf{debhelper} (utilisé par 98~\\% des paquets)" #. type: itemize #: packaging-tutorial.tex:516 msgid "Goals:" msgstr "Objectifs :" #. type: itemize #: packaging-tutorial.tex:516 msgid "Factor the common tasks in standard tools used by all packages" msgstr "" "Centraliser les tâches courantes dans des outils normalisés qui seront " "utilisés par tous les paquets" #. type: itemize #: packaging-tutorial.tex:516 msgid "Fix some packaging bugs once for all packages" msgstr "Corriger d'un coup des bogues de construction pour tous les paquets" #. 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 "" "{\\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\\ldots}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Called from \\texttt{debian/rules}" msgstr "Appelé depuis \\texttt{debian/rules}" #. type: itemize #: packaging-tutorial.tex:516 msgid "Configurable using command parameters or files in \\texttt{debian/}" msgstr "" "Configurable avec des paramètres ou des fichiers dans \\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "{\\footnotesize \\ttfamily \\textsl{package}.docs, \\textsl{package}." "examples, \\textsl{package}.install, \\textsl{package}.manpages, \\ldots}" msgstr "" "{\\footnotesize \\ttfamily dirs, \\textsl{paquet}.docs, \\textsl{paquet}." "examples, \\textsl{paquet}.install, \\textsl{paquet}.manpages\\ldots}" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Third-party helpers for sets of packages: \\textbf{python-support}, " "\\textbf{dh\\_ocaml}, \\ldots" msgstr "" "Assistants tiers pour certains types de paquets : \\textbf{python-support}, " "\\textbf{dh\\_ocaml}\\ldots" #. type: itemize #: packaging-tutorial.tex:516 msgid "" "Gotcha: \\texttt{debian/compat}: Debhelper compatibility version (use \"7\")" msgstr "" "Piège : \\texttt{debian/compat}: version de compatibilité de Debhelper (« 7 " "»)" #. type: frame{#2} #: packaging-tutorial.tex:520 msgid "debian/rules using debhelper (1/2)" msgstr "debian/rules en utilisant debhelper (1/2)" #. type: lstlisting #: packaging-tutorial.tex:520 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "#!/usr/bin/make -f\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "#!/usr/bin/make -f\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:523 #, no-wrap msgid "" "# Uncomment this to turn on verbose mode.\n" "#export DH_VERBOSE=1\n" "\n" msgstr "" "# D{\\'e}commentez cette ligne pour passer en mode bavard.\n" "#export DH_VERBOSE=1\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:527 #, no-wrap msgid "" "build: \n" " $(MAKE)\n" " #docbook-to-man debian/packagename.sgml > packagename.1\n" "\n" msgstr "" "build: \n" " $(MAKE)\n" " #docbook-to-man debian/packagename.sgml > packagename.1\n" "\n" #. 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 "" "clean: \n" " dh_testdir\n" " dh_testroot\n" " rm -f build-stamp configure-stamp\n" " $(MAKE) clean\n" " dh_clean \n" "\n" #. 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 "" "install: build\n" " dh_testdir\n" " dh_testroot\n" " dh_clean -k \n" " dh_installdirs\n" " # Ajoutez ici des commandes pour installer\n" " # le paquet dans debian/packagename.\n" " $(MAKE) DESTDIR=$(CURDIR)/debian/packagename install" #. type: frame{#2} #: packaging-tutorial.tex:547 msgid "debian/rules using debhelper (2/2)" msgstr "debian/rules en utilisant debhelper (2/2)" #. type: lstlisting #: packaging-tutorial.tex:547 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:550 #, no-wrap msgid "" "# Build architecture-independent files here.\n" "binary-indep: build install\n" "\n" msgstr "" "# Construire ici les fichiers non sp{\\'e}cifiques {\\`a} une architecture.\n" "binary-indep: build install\n" "\n" #. 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 "" "# Construire ici les fichiers sp{\\'e}cifiques {\\`a} une architecture.\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" #. 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 "" "binary: binary-indep binary-arch\n" ".PHONY: build clean binary-indep binary-arch binary install configure" #. type: frame{#2} #: packaging-tutorial.tex:603 msgid "CDBS" msgstr "CDBS" #. type: itemize #: packaging-tutorial.tex:603 msgid "With debhelper, still a lot of redundancy between packages" msgstr "Avec debhelper, restent beaucoup de redondances entre les paquets" #. type: itemize #: packaging-tutorial.tex:603 msgid "Second-level helpers that factor common functionality" msgstr "Assistants de second niveau incluant des fonctionnalités courantes" #. type: itemize #: packaging-tutorial.tex:603 msgid "" "E.g. building with \\texttt{./configure \\&\\& make \\&\\& make install} or " "CMake" msgstr "" "p. ex. construction avec \\texttt{./configure \\&\\& make \\&\\& make " "install}" #. type: itemize #: packaging-tutorial.tex:603 msgid "CDBS:" msgstr "CDBS :" #. type: itemize #: packaging-tutorial.tex:603 msgid "Introduced in 2005, based on advanced \\textsl{GNU make} magic" msgstr "Introduit en 2005, basé sur la magie évoluée de \\textsl{GNU make}" #. type: itemize #: packaging-tutorial.tex:603 msgid "Documentation: \\texttt{/usr/share/doc/cdbs/}" msgstr "Documentation : \\texttt{/usr/share/doc/cdbs/}" #. type: itemize #: packaging-tutorial.tex:603 msgid "Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots" msgstr "Gestion de Perl, Python, Ruby, GNOME, KDE, Java, Haskell\\ldots" #. type: itemize #: packaging-tutorial.tex:603 msgid "But some people hate it:" msgstr "Mais certaines personnes le détestent :" #. type: itemize #: packaging-tutorial.tex:603 msgid "" "Sometimes difficult to customize package builds:\\\\ \"\\textsl{twisty maze " "of makefiles and environment variables}\"" msgstr "" "Il est parfois difficile à personnaliser : « \\textsl{enchevêtrement " "complexe de makefiles et de variables d'environnement} »" #. type: itemize #: packaging-tutorial.tex:603 msgid "Slower than plain debhelper (many useless calls to \\texttt{dh\\_*})" msgstr "" "Plus lent que l'utilisation seule de debhelper (beaucoup d'appels inutiles à " "\\texttt{dh\\_*})" #. 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 "" "[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" #. 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 "" "# ajouter une action apr{\\`e}s la construction\n" "build/monpaquet::\n" " /bin/bash debian/scripts/toto.sh\n" " " #. type: frame{#2} #: packaging-tutorial.tex:628 msgid "Dh (aka Debhelper 7, or dh7)" msgstr "Dh (aussi appelé Debhelper 7, ou dh7)" #. type: itemize #: packaging-tutorial.tex:628 msgid "Introduced in 2008 as a \\textsl{CDBS killer}" msgstr "Introduit en 2008, avec l'objectif de remplacer CDBS" #. type: itemize #: packaging-tutorial.tex:628 msgid "\\textbf{dh} command that calls \\texttt{dh\\_*}" msgstr "Commande \\textbf{dh} qui appelle \\texttt{dh\\_*}" #. type: itemize #: packaging-tutorial.tex:628 msgid "Simple \\textsl{debian/rules}, listing only overrides" msgstr "" "Fichier \\textsl{debian/rules} simple, ne contenant que les redéfinitions" #. type: itemize #: packaging-tutorial.tex:628 msgid "Easier to customize than CDBS" msgstr "Plus facile à personnaliser que CDBS" #. 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 "" "Doc : pages de man (\\texttt{debhelper(7)}, \\texttt{dh(1)}) et présentation " "à DebConf9\\\\ \\url{http://kitenet.net/~joey/talks/debhelper/debhelper-" "slides.pdf}" #. type: lstlisting #: packaging-tutorial.tex:628 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "#!/usr/bin/make -f\n" "%:\n" " dh $@\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "#!/usr/bin/make -f\n" "%:\n" " dh $@\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:631 #, no-wrap msgid "" "override_dh_auto_configure:\n" " dh_auto_configure -- --with-kitchen-sink\n" "\n" msgstr "" "override_dh_auto_configure:\n" " dh_auto_configure -- --with-kitchen-sink\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:634 #, no-wrap msgid "" "override_dh_auto_build:\n" " make world\n" "\n" msgstr "" "override_dh_auto_build:\n" " make world\n" "\n" #. 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 "debhelper classique vs CDBS vs dh" #. type: itemize #: packaging-tutorial.tex:656 msgid "" "Mind shares:\\\\ Classic debhelper: 27\\% \\hskip 1em CDBS: 18\\% \\hskip " "1em dh: 54\\%" msgstr "" "Parts de marché :\\\\ debhelper classique : 27~\\% \\hskip 1em CDBS : 18~\\% " "\\hskip 1em dh : 54~\\%" #. type: itemize #: packaging-tutorial.tex:656 msgid "Which one should I learn?" msgstr "Lequel apprendre ?" #. type: itemize #: packaging-tutorial.tex:656 msgid "Probably a bit of all of them" msgstr "Probablement un peu de chaque" #. type: itemize #: packaging-tutorial.tex:656 msgid "You need to know debhelper to use dh and CDBS" msgstr "Vous devez connaître debhelper pour utiliser dh et CDBS" #. type: itemize #: packaging-tutorial.tex:656 msgid "You might have to modify CDBS packages" msgstr "Vous pourriez avoir à modifier des paquets CDBS" #. type: itemize #: packaging-tutorial.tex:656 msgid "Which one should I use for a new package?" msgstr "Lequel utiliser pour un nouveau paquet ?" #. type: itemize #: packaging-tutorial.tex:656 msgid "\\textbf{dh} (only solution with an increasing mind share)" msgstr "\\textbf{dh} (seule solution de plus en plus utilisée)" #. 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 "" "small,label style={font=\\footnotesize},xlabel={\\small Date}," "ylabel={\\small Parts de marché (\\%)}, 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" #. 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 "" "\\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}" #. type: section{#2} #: packaging-tutorial.tex:680 msgid "Building and testing packages" msgstr "Construire et tester les paquets" #. type: frame{#2} #: packaging-tutorial.tex:680 msgid "Building packages" msgstr "Construire les paquets" #. 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 "" "\\textttc{apt-get build-dep monpaquet}\\\\ Installer les " "\\textsl{dépendances de construction} (pour un paquet dans Debian)\\\\ Ou " "\\textttc{mk-build-deps -ir} (pour un paquet pas encore envoyé dans Debian)" #. type: itemize #: packaging-tutorial.tex:737 msgid "\\textttc{debuild}: build, test with \\texttt{lintian}, sign with GPG" msgstr "" "\\textttc{debuild} : construire, tester avec \\texttt{lintian}, signer avec " "GPG" #. type: itemize #: packaging-tutorial.tex:737 msgid "Also possible to call \\textttc{dpkg-buildpackage} directly" msgstr "" "Vous pouvez aussi faire appel directement à \\textttc{dpkg-buildpackage}" #. type: itemize #: packaging-tutorial.tex:737 msgid "Usually with \\texttt{dpkg-buildpackage -us -uc}" msgstr "En général, avec \\texttt{dpkg-buildpackage -us -uc}" #. type: itemize #: packaging-tutorial.tex:737 msgid "It is better to build packages in a clean \\& minimal environment" msgstr "Il vaut mieux construire les paquets dans un environnement minimal" #. type: itemize #: packaging-tutorial.tex:737 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 "" "\\textttc{pbuilder} -- assistant pour la construction de paquets dans un " "\\textsl{chroot}\\\\ Bonne documentation : \\url{https://wiki.ubuntu.com/" "PbuilderHowto}\\\\ (optimisation : \\textttc{cowbuilder} \\textttc{ccache} " "\\textttc{distcc})" #. type: itemize #: packaging-tutorial.tex:737 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 "" "\\textttc{schroot} et \\textttc{sbuild} : utilisé sur les démons de " "construction Debian\\\\ (pas aussi simple que \\texttt{pbuilder}, mais " "permet des copies LVM\\\\ voir : \\url{https://help.ubuntu.com/community/" "SbuildLVMHowto} )" #. type: itemize #: packaging-tutorial.tex:737 msgid "Generates \\texttt{.deb} files and a \\texttt{.changes} file" msgstr "Crée les fichiers \\texttt{.deb} et un fichier \\texttt{.changes}" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "\\texttt{.changes}: describes what was built; used to upload the package" msgstr "" "\\texttt{.changes} : décrit ce qui a été construit ; utilisé pour envoyer le " "paquet" #. type: frame{#2} #: packaging-tutorial.tex:737 msgid "Installing and testing packages" msgstr "Installation et test des paquets" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Install the package locally: \\textttc{debi} (will use \\texttt{.changes} to " "know what to install)" msgstr "" "Installer le paquet : \\textttc{debi} (utilise \\texttt{.changes} pour " "savoir quoi installer)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "List the content of the package: \\texttt{{\\color{rouge}debc} ../" "mypackage.changes}" msgstr "" "Afficher le contenu du paquet : \\texttt{{\\color{rouge}debc} ../" "monpaquet.changes}" #. type: itemize #: packaging-tutorial.tex:737 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 "" "Comparer le paquet avec une version précédente :\\\\ \\texttt{{\\color{rouge}" "debdiff} ../monpaquet\\_1\\_*.changes ../monpaquet\\_2\\_*.changes}\\\\ ou " "pour comparer les sources:\\\\ \\texttt{{\\color{rouge}debdiff} ../monpaquet" "\\_1\\_*.dsc ../monpaquet\\_2\\_*.dsc}\\\\" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Check the package with \\texttt{lintian} (static analyzer):\\\\ " "\\texttt{{\\color{rouge}lintian} ../mypackage.changes}\\\\ " "\\texttt{lintian -i}: gives more information about the errors \\\\ " "\\texttt{lintian -EviIL +pedantic}: shows more problems" msgstr "" "Vérifier le paquet avec \\texttt{lintian} (analyseur statique) :\\\\ " "\\texttt{{\\color{rouge}lintian} ../monpaquet.changes}\\\\ " "\\texttt{lintian -i} : donne plus d'informations sur les erreurs \\\\ " "\\texttt{lintian -EviIL +pedantic} : montre encore plus de problèmes" #. type: itemize #: packaging-tutorial.tex:737 msgid "Upload the package to Debian (\\textttc{dput}) (needs configuration)" msgstr "" "Envoyer le paquet dans Debian (\\textttc{dput}) (exige un peu de " "configuration)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "Manage a private Debian archive with \\textttc{reprepro}\\\\ Documentation: " "\\url{http://mirrorer.alioth.debian.org/}" msgstr "" "Gérer une archive privée de Debian avec \\textttc{reprepro}\\\\ " "Documentation : \\url{http://mirrorer.alioth.debian.org/}" #. type: frame{#2} #: packaging-tutorial.tex:737 packaging-tutorial.tex:1454 #: packaging-tutorial.tex:1460 msgid "Practical session 1: modifying the grep package" msgstr "Travaux pratiques nº~1 : modifier le paquet grep" #. type: enumerate #: packaging-tutorial.tex:737 packaging-tutorial.tex:1460 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package (if you use Ubuntu 11.10 or later, or Debian " "testing or unstable, use version 2.9-1 or 2.9-2 instead)" msgstr "" "Rendez-vous sur \\url{http://ftp.debian.org/debian/pool/main/g/grep/} et " "téléchargez la version~2.6.3-3 du paquet (avec Ubuntu 11.10 ou ultérieur, ou " "Debian testing ou unstable, utilisez à la place la version 2.9-1 ou 2.9-2)" #. type: itemize #: packaging-tutorial.tex:737 msgid "" "If the source package is not unpacked automatically, unpack it with " "\\texttt{dpkg-source~-x~grep\\_*.dsc}" msgstr "" "Si le paquet source n'est pas décompressé automatiquement, décompressez-le " "avec \\texttt{dpkg-source~-x~grep\\_*.dsc}" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "Look at the files in \\texttt{debian/}." msgstr "Regardez les fichiers contenus dans \\texttt{debian/}." #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "How many binary packages are generated by this source package?" msgstr "Combien de paquets binaires sont produits par ce paquet source ?" #. type: itemize #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1528 msgid "Which packaging helper does this package use?" msgstr "Quel assistant d'empaquetage ce paquet utilise-t-il ?" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1537 msgid "Build the package" msgstr "Construisez le paquet" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1558 msgid "" "We are now going to modify the package. Add a changelog entry and increase " "the version number." msgstr "" "Nous allons maintenant modifier le paquet. Ajoutez une entrée au journal des " "modifications et augmentez le numéro de version." #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1578 msgid "Now disable perl-regexp support (it is a \\texttt{./configure} option)" msgstr "" "Désactivez maintenant la gestion des expressions rationnelles de Perl (c'est " "une option de \\texttt{./configure})" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1578 msgid "Rebuild the package" msgstr "Reconstruisez le paquet" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Compare the original and the new package with debdiff" msgstr "Comparez le paquet d'origine et le nouveau avec debdiff" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Install the newly built package" msgstr "Installez le paquet nouvellement construit" #. type: enumerate #: packaging-tutorial.tex:759 packaging-tutorial.tex:1482 #: packaging-tutorial.tex:1608 msgid "Cry if you messed up ;)" msgstr "Pleurez votre rage si vous vous êtes plantés ! ;)" #. type: section{#2} #: packaging-tutorial.tex:775 msgid "Advanced packaging topics" msgstr "Sujets avancés sur la construction de paquets" #. type: frame{#2} #: packaging-tutorial.tex:775 msgid "debian/copyright" msgstr "debian/copyright" #. type: itemize #: packaging-tutorial.tex:775 msgid "Copyright and license information for the source and the packaging" msgstr "" "Informations de copyright et de licence pour les sources et l'empaquetage" #. type: itemize #: packaging-tutorial.tex:775 msgid "Traditionally written as a text file" msgstr "Écrites traditionnellement dans un fichier texte" #. type: itemize #: packaging-tutorial.tex:775 msgid "" "New machine-readable format: {\\small\\url{http://www.debian.org/doc/" "packaging-manuals/copyright-format/1.0/}}" msgstr "" "Nouveau format en langage machine : {\\small\\url{http://www.debian.org/doc/" "packaging-manuals/copyright-format/1.0/}}" #. type: lstlisting #: packaging-tutorial.tex:775 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Format: http://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 "" "[basicstyle=\\ttfamily\\scriptsize]\n" "Format: http://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" #. type: lstlisting #: packaging-tutorial.tex:785 #, no-wrap msgid "" "Files: *\n" "Copyright: Copyright 1998 John Doe \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 "" "Files: *\n" "Copyright: Copyright 1998 John Doe \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" #. type: lstlisting #: packaging-tutorial.tex:790 #, no-wrap msgid "" "Files: debian/*\n" "Copyright: Copyright 1998 Jane Smith \n" "License:\n" " [LICENSE TEXT]" msgstr "" "Files: debian/*\n" "Copyright: Copyright 1998 Jane Smith \n" "License:\n" " [TEXTE DE LA LICENCE]" #. type: frame{#2} #: packaging-tutorial.tex:821 msgid "Modifying the upstream source" msgstr "Modifier les sources amont" #. type: frame #: packaging-tutorial.tex:821 msgid "Often needed:" msgstr "Souvent nécessaire :" #. type: itemize #: packaging-tutorial.tex:821 msgid "Fix bugs or add customizations that are specific to Debian" msgstr "Corriger des bogues ou faire des modifications spécifiques à Debian" #. type: itemize #: packaging-tutorial.tex:821 msgid "Backport fixes from a newer upstream release" msgstr "Rétroporter des corrections depuis une version amont plus récente" #. type: frame #: packaging-tutorial.tex:821 msgid "Several methods to do it:" msgstr "{P}lusieurs méthodes existent : " #. type: itemize #: packaging-tutorial.tex:821 msgid "Modifying the files directly" msgstr "Modifier directement les fichiers" #. type: itemize #: packaging-tutorial.tex:821 msgid "Simple" msgstr "Simple" #. type: itemize #: packaging-tutorial.tex:821 msgid "But no way to track and document the changes" msgstr "Mais aucun moyen de suivre et de documenter les modifications" #. type: itemize #: packaging-tutorial.tex:821 msgid "Using patch systems" msgstr "Utiliser les systèmes de gestion de correctifs" #. type: itemize #: packaging-tutorial.tex:821 msgid "Eases contributing your changes to upstream" msgstr "Facilite l'intégration de vos modifications en amont" #. type: itemize #: packaging-tutorial.tex:821 msgid "Helps sharing the fixes with derivatives" msgstr "Facilite le partage des corrections avec les dérivées" #. type: itemize #: packaging-tutorial.tex:821 msgid "" "Gives more exposure to the changes\\\\ \\url{http://patch-tracker.debian." "org/}" msgstr "" "Donne plus de visibilité à vos modifications\\\\ \\url{http://patch-tracker." "debian.org/}" #. type: frame{#2} #: packaging-tutorial.tex:851 msgid "Patch systems" msgstr "Systèmes de gestion de correctifs" #. type: itemize #: packaging-tutorial.tex:851 msgid "Principle: changes are stored as patches in \\texttt{debian/patches/}" msgstr "" "Principe : les modifications sont stockées sous forme de correctifs dans " "\\texttt{debian/patches/}" #. type: itemize #: packaging-tutorial.tex:851 msgid "Applied and unapplied during build" msgstr "Correctifs appliqués et retirés lors de la construction" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Past: several implementations -- \\textsl{simple-patchsys} (\\textsl{cdbs}), " "\\textsl{dpatch}, \\textbf{\\textsl{quilt}}" msgstr "" "Avant : plusieurs implémentations -- \\textsl{simple-patchsys} " "(\\textsl{cdbs}), \\textsl{dpatch}, \\textbf{\\textsl{quilt}}" #. type: itemize #: packaging-tutorial.tex:851 msgid "Each supports two \\texttt{debian/rules} targets:" msgstr "Chacune prend en charge deux cibles \\texttt{debian/rules} :" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules patch}: apply all patches" msgstr "\\texttt{debian/rules patch} : applique tous les correctifs" #. type: itemize #: packaging-tutorial.tex:851 msgid "\\texttt{debian/rules unpatch}: de-apply all patches" msgstr "\\texttt{debian/rules unpatch} : retire tous les correctifs" #. type: itemize #: packaging-tutorial.tex:851 msgid "More documentation: \\url{http://wiki.debian.org/debian/patches}" msgstr "Plus de documentation : \\url{http://wiki.debian.org/debian/patches}" #. type: textbf{#1} #: packaging-tutorial.tex:851 msgid "New source package format with built-in patch system: 3.0 (quilt)" msgstr "" "Nouveau format de paquet source avec système de gestion de correctifs " "intégré : 3.0~(quilt)" #. type: itemize #: packaging-tutorial.tex:851 msgid "Recommended solution" msgstr "Solution recommandée" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "You need to learn \\textsl{quilt}\\\\ \\url{http://pkg-perl.alioth.debian." "org/howto/quilt.html}" msgstr "" "Vous devez apprendre \\textsl{quilt}\\\\ \\url{http://pkg-perl.alioth.debian." "org/howto/quilt.html}" #. type: itemize #: packaging-tutorial.tex:851 msgid "" "Patch-system-agnostic tool in \\texttt{devscripts}: \\texttt{edit-patch}" msgstr "" "Outil indépendant du système de correctifs dans \\texttt{devscripts} : " "\\texttt{edit-patch}" #. type: frame{#2} #: packaging-tutorial.tex:868 msgid "Documentation of patches" msgstr "Documentation des correctifs" #. type: itemize #: packaging-tutorial.tex:868 msgid "Standard headers at the beginning of the patch" msgstr "En-têtes normalisés au début du correctif" #. type: itemize #: packaging-tutorial.tex:868 msgid "" "Documented in DEP-3 - Patch Tagging Guidelines\\\\ \\url{http://dep.debian." "net/deps/dep3/}" msgstr "" "Documentation dans DEP-3 -- Patch Tagging Guidelines \\\\(lignes directrices " "de l'étiquetage d'un correctif)\\\\ \\url{http://dep.debian.net/deps/dep3/} " #. type: lstlisting #: packaging-tutorial.tex:868 #, 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 \n" "Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123\n" "Last-Update: 2010-03-29\n" "\n" msgstr "" "[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 \n" "Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123\n" "Last-Update: 2010-03-29\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:872 #, no-wrap msgid "" "--- a/src/widgets.c\n" "+++ b/src/widgets.c\n" "@@ -101,9 +101,6 @@ struct {" msgstr "" "--- a/src/widgets.c\n" "+++ b/src/widgets.c\n" "@@ -101,9 +101,6 @@ struct {" #. type: frame{#2} #: packaging-tutorial.tex:892 msgid "Doing things during installation and removal" msgstr "Agir durant l'installation et la suppression" #. type: itemize #: packaging-tutorial.tex:892 msgid "Decompressing the package is sometimes not enough" msgstr "Décompresser le paquet ne suffit pas toujours" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Create/remove system users, start/stop services, manage " "\\textsl{alternatives}" msgstr "" "Créer/supprimer des utilisateurs système, démarrer/arrêter des services, " "gérer des \\textsl{alternatives}" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Done in \\textsl{maintainer scripts}\\\\ \\texttt{preinst, postinst, prerm, " "postrm}" msgstr "" "Cela se fait dans \\textsl{les scripts du responsable}\\\\ \\texttt{preinst, " "postinst, prerm, postrm}" #. type: itemize #: packaging-tutorial.tex:892 msgid "Snippets for common actions can be generated by debhelper" msgstr "debhelper peut créer des bribes pour les actions classiques" #. type: itemize #: packaging-tutorial.tex:892 msgid "Documentation:" msgstr "Documentation :" #. type: itemize #: packaging-tutorial.tex:892 msgid "" "Debian Policy Manual, chapter 6\\\\ {\\footnotesize \\url{http://www.debian." "org/doc/debian-policy/ch-maintainerscripts}}" msgstr "" "La Charte Debian, chapitre 6\\\\ {\\footnotesize \\url{http://www.debian.org/" "doc/debian-policy/ch-maintainerscripts}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Debian Developer's Reference, chapter 6.4\\\\ {\\scriptsize \\url{http://www." "debian.org/doc/developers-reference/best-pkging-practices.html}}" msgstr "" "Manuel de référence du développeur, chapitre 6.4\\\\ {\\scriptsize " "\\url{http://www.debian.org/doc/developers-reference/best-pkging-practices." "html}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "{\\footnotesize \\url{http://people.debian.org/~srivasta/MaintainerScripts." "html}}" msgstr "" "{\\footnotesize \\url{http://people.debian.org/~srivasta/MaintainerScripts." "html}}" #. type: itemize #: packaging-tutorial.tex:908 msgid "Prompting the user" msgstr "Interagir avec l'utilisateur" #. type: itemize #: packaging-tutorial.tex:908 msgid "Must be done with \\textbf{debconf}" msgstr "Cela doit se faire avec \\textbf{debconf}" #. type: itemize #: packaging-tutorial.tex:908 msgid "" "Documentation: \\texttt{debconf-devel(7)} (\\texttt{debconf-doc} package)" msgstr "" "Documentation : \\texttt{debconf-devel(7)} (paquet \\texttt{debconf-doc})" #. type: frame{#2} #: packaging-tutorial.tex:914 msgid "Monitoring upstream versions" msgstr "Surveiller les versions amont" #. type: itemize #: packaging-tutorial.tex:914 msgid "" "Specify where to look in \\texttt{debian/watch} (see \\texttt{uscan(1)})" msgstr "" "Préciser dans \\texttt{debian/watch} où chercher (voir \\texttt{uscan(1)})" #. type: lstlisting #: packaging-tutorial.tex:914 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "version=3\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:917 #, no-wrap msgid "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " msgstr "" "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n" " Twisted-([\\d\\.]*)\\.tar\\.bz2\n" " " #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Debian infrastructure that makes use of \\texttt{debian/watch}:\\\\ " "\\textbf{Debian External Health Status}\\\\ \\url{http://dehs.alioth.debian." "org/}" msgstr "" "L'infrastructure Debian utilisant \\texttt{debian/watch}:\\\\ " "\\textbf{Debian External Health Status} (état de santé externe de Debian) \\" "\\ \\url{http://dehs.alioth.debian.org/}" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "Maintainer warned by emails sent to the Package Tracking System\\\\ " "\\url{http://packages.qa.debian.org/}" msgstr "" "Le responsable est prévenu par des courriels envoyés au système de suivi des " "paquets\\\\ \\url{http://packages.qa.debian.org/}" #. type: itemize #: packaging-tutorial.tex:931 msgid "\\texttt{uscan}: run a manual check" msgstr "\\texttt{uscan} : lance une vérification à la main" #. type: itemize #: packaging-tutorial.tex:931 msgid "" "\\texttt{uupdate}: try to update your package to the latest upstream version" msgstr "" "\\texttt{uupdate} : tente de mettre à jour votre paquet vers la version la " "plus récente" #. type: subsection{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System (SVN, Git)" msgstr "Avec un gestionnaire de versions (SVN, Git)" #. type: frame{#2} #: packaging-tutorial.tex:969 msgid "Packaging with a Version Control System" msgstr "Empaqueter avec un gestionnaire de versions :" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "Several tools to help manage branches and tags for your packaging work:\\\\ " "\\texttt{svn-buildpackage}, \\texttt{git-buildpackage}" msgstr "" "Plusieurs outils facilitent la gestion des branches et des étiquettes lors " "de votre empaquetage : \\texttt{svn-buildpackage}, \\texttt{git-buildpackage}" #. type: itemize #: packaging-tutorial.tex:969 msgid "Example: \\texttt{git-buildpackage}" msgstr "Exemple : \\texttt{git-buildpackage}" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{upstream} branch to track upstream with \\texttt{upstream/" "\\textsl{version}} tags" msgstr "" "la branche \\texttt{upstream} pour suivre les sources amont avec les " "étiquettes \\texttt{upstream/\\textsl{version}}" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{master} branch tracks the Debian package" msgstr "la branche \\texttt{master} suit le paquet Debian" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\texttt{debian/\\textsl{version}} tags for each upload" msgstr "les étiquettes \\texttt{debian/\\textsl{version}} pour chaque envoi" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{pristine-tar} branch to be able to rebuild the upstream tarball" msgstr "" "la branche \\texttt{pristine-tar} pour pouvoir reconstruire l'archive tar " "amont" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{Vcs-*} fields in \\texttt{debian/control} to locate the repository" msgstr "" "Les champs \\texttt{Vcs-*} de \\texttt{debian/control} pour localiser le " "dépôt" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Git}" msgstr "\\url{http://wiki.debian.org/Alioth/Git}" #. type: itemize #: packaging-tutorial.tex:969 msgid "\\url{http://wiki.debian.org/Alioth/Svn}" msgstr "\\url{http://wiki.debian.org/Alioth/Svn}" #. type: lstlisting #: packaging-tutorial.tex:969 #, 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 "" "[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" " " #. type: lstlisting #: packaging-tutorial.tex:969 #, 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 "" "[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" " " #. type: itemize #: packaging-tutorial.tex:969 msgid "" "VCS-agnostic interface: \\texttt{debcheckout}, \\texttt{debcommit}, " "\\texttt{debrelease}\\\\" msgstr "" "Interface indépendante du VCS : \\texttt{debcheckout}, \\texttt{debcommit}, " "\\texttt{debrelease}\\\\" #. type: itemize #: packaging-tutorial.tex:969 msgid "" "\\texttt{debcheckout grep} $\\rightarrow$ checks out the source package from " "Git" msgstr "\\texttt{debcheckout grep} : rapatrie le paquet source du dépôt Git" #. type: frame{#2} #: packaging-tutorial.tex:992 msgid "Backporting packages" msgstr "Rétroportage de paquets" #. type: itemize #: packaging-tutorial.tex:992 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 "" "But : utiliser une version plus récente du paquet sur un système plus ancien" "\\\\ p.ex. utiliser \\textsl{mutt} de Debian \\textsl{unstable} sur Debian " "\\textsl{stable}" #. type: itemize #: packaging-tutorial.tex:992 msgid "General idea:" msgstr "Idée générale :" #. type: itemize #: packaging-tutorial.tex:992 msgid "Take the source package from Debian unstable" msgstr "Prendre le paquet source de Debian unstable" #. type: itemize #: packaging-tutorial.tex:992 msgid "Modify it so that it builds and works fine on Debian stable" msgstr "" "Le modifier pour qu'il se construise et fonctionne correctement sur Debian " "stable" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes trivial (no changes needed)" msgstr "Parfois trivial (aucun changement nécessaire)" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes difficult" msgstr "Parfois difficile" #. type: itemize #: packaging-tutorial.tex:992 msgid "Sometimes impossible (many unavailable dependencies)" msgstr "Parfois impossible (nombreuses dépendances indisponibles)" #. type: itemize #: packaging-tutorial.tex:992 msgid "" "Some backports are provided and supported by the Debian project\\\\ " "\\url{http://backports.debian.org/}" msgstr "" "Certains rétroportages sont fournis et maintenus par le projet Debian\\\\ " "\\url{http://backports.debian.org/}" #. type: section{#2} #: packaging-tutorial.tex:1023 msgid "Maintaining packages in Debian" msgstr "Maintenir des paquets dans Debian" #. type: frame{#2} #: packaging-tutorial.tex:1023 msgid "Several ways to contribute to Debian" msgstr "Plusieurs manières de contribuer à Debian" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Worst} way to contribute:" msgstr "\\textbf{La pire} :" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Package your own application" msgstr "Empaqueter votre propre application" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Get it into Debian" msgstr "L'intégrer à Debian" #. type: enumerate #: packaging-tutorial.tex:1023 msgid "Disappear" msgstr "Disparaître" #. type: itemize #: packaging-tutorial.tex:1023 msgid "\\textbf{Better} ways to contribute:" msgstr "\\textbf{Les meilleures} :" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Get involved in packaging teams" msgstr "S'impliquer dans des équipes d'empaquetage Debian" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Many teams that focus on set of packages, and need help" msgstr "" "Beaucoup d'équipes se concentrent sur un ensemble de paquets et ont besoin " "d'aide" #. type: itemize #: packaging-tutorial.tex:1023 msgid "List available at \\url{http://wiki.debian.org/Teams}" msgstr "Liste disponible sur \\url{http://wiki.debian.org/Teams}" #. type: itemize #: packaging-tutorial.tex:1023 msgid "An excellent way to learn from more experienced contributors" msgstr "Excellente façon d'apprendre de contributeurs plus expérimentés" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Adopt existing unmaintained packages (\\textsl{orphaned packages})" msgstr "" "Adopter des paquets existants non maintenus (\\textsl{paquets orphelins})" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Bring new software to Debian" msgstr "Apporter un nouveau logiciel à Debian" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Only if it's interesting/useful enough, please" msgstr "Seulement s'il est intéressant ou utile, s'il vous plaît" #. type: itemize #: packaging-tutorial.tex:1023 msgid "Are there alternatives already packaged in Debian?" msgstr "Y a-t-il une alternative déjà empaquetée pour Debian ?" #. type: frame{#2} #: packaging-tutorial.tex:1061 msgid "Adopting orphaned packages" msgstr "Adopter des paquets orphelins" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Many unmaintained packages in Debian" msgstr "Beaucoup de paquets non maintenus dans Debian" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Full list + process: \\url{http://www.debian.org/devel/wnpp/}" msgstr "" "Liste complète et marche à suivre : \\url{http://www.debian.org/devel/wnpp/}" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Installed on your machine: \\texttt{wnpp-alert}" msgstr "Ceux installés sur votre machine : \\texttt{wnpp-alert}" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Different states:" msgstr "Différents états :" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{O}rphaned: the package is unmaintained\\\\ Feel free to adopt it" msgstr "" "\\textbf{O}rphelin : le paquet n'est pas maintenu\\\\ Adoptez-le s'il vous " "sied" #. type: itemize #: packaging-tutorial.tex:1061 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 "" "\\textbf{RFA} : \\textbf{R}equest \\textbf{F}or \\textbf{A}dopter (cherche " "un adoptant)\\\\ Le responsable cherche un adoptant, mais il continue son " "travail en attendant\\\\ Adoptez-le s'il vous sied. L'envoi d'un courriel au " "responsable actuel est poli" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt\\\\ Someone " "intends to adopt the package\\\\ You could propose your help!" msgstr "" "\\textbf{ITA} : \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt (en cours " "d'adoption) \\\\Quelqu'un prévoit d'adopter le paquet. Vous pourriez " "proposer votre aide !" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp\\\\ The " "maintainer is looking for help" msgstr "" "\\textbf{RFH} : \\textbf{R}equest \\textbf{F}or \\textbf{H}elp (recherche " "d'aide) \\\\ Le responsable cherche de l'aide" #. type: itemize #: packaging-tutorial.tex:1061 msgid "Some unmaintained packages not detected \\arr not orphaned yet" msgstr "" "Certains paquets non maintenus ne sont pas identifiés comme tels \\arr pas " "encore officiellement orphelins" #. type: itemize #: packaging-tutorial.tex:1061 msgid "" "When in doubt, ask \\texttt{debian-qa@lists.debian.org} \\\\ or " "\\texttt{\\#debian-qa} on \\texttt{irc.debian.org}" msgstr "" "En cas de doute, demandez sur \\texttt{debian-qa@lists.debian.org} \\\\ ou " "\\texttt{\\#debian-qa} sur \\texttt{irc.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1068 msgid "Adopting a package: example" msgstr "Adopter un paquet : un exemple" #. type: lstlisting #: packaging-tutorial.tex:1068 #, no-wrap msgid "" "[basicstyle=\\ttfamily\\footnotesize]\n" "From: You \n" "To: 640454@bugs.debian.org, control@bugs.debian.org\n" "Cc: Francois Marier \n" "Subject: ITA: verbiste -- French conjugator\n" "\n" msgstr "" "[basicstyle=\\ttfamily\\footnotesize]\n" "From: Vous \n" "To: 640454@bugs.debian.org, control@bugs.debian.org\n" "Cc: Francois Marier \n" "Subject: ITA: verbiste -- French conjugator\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1072 #, no-wrap msgid "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" msgstr "" "retitle 640454 ITA: verbiste -- French conjugator\n" "owner 640454 !\n" "thanks\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1074 #, no-wrap msgid "" "Hi,\n" "\n" msgstr "" "Hi,\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1076 #, no-wrap msgid "" "I am using verbiste and I am willing to take care of the package.\n" "\n" msgstr "" "I am using verbiste and I am willing to take care of the package.\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1078 #, no-wrap msgid "" "Cheers,\n" "\n" msgstr "" "Cheers,\n" "\n" #. type: lstlisting #: packaging-tutorial.tex:1080 #, no-wrap msgid "You" msgstr "Vous" #. type: itemize #: packaging-tutorial.tex:1087 msgid "" "Polite to contact the previous maintainer (especially if the package was " "RFAed, not orphaned)" msgstr "" "Il est poli de contacter le responsable précédent (surtout si le paquet " "était signalé comme cherchant un adoptant et non comme orphelin)" #. type: itemize #: packaging-tutorial.tex:1087 msgid "Very good idea to contact the upstream project" msgstr "Riche idée aussi de contacter le projet amont" #. type: frame{#2} #: packaging-tutorial.tex:1111 msgid "Getting your package in Debian" msgstr "Intégrer votre paquet dans Debian" #. type: itemize #: packaging-tutorial.tex:1111 msgid "You do not need any official status to get your package into Debian" msgstr "Aucun besoin d'un statut officiel pour intégrer son paquet dans Debian" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "" "Submit an \\textbf{ITP} bug (\\textbf{I}ntend \\textbf{T}o \\textbf{P}" "ackage) using \\texttt{reportbug wnpp}" msgstr "" "Soumettez un bogue \\textbf{ITP} (\\textbf{I}ntend \\textbf{T}o \\textbf{P}" "ackage) avec \\texttt{reportbug wnpp}" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "Prepare a source package" msgstr "Préparez un paquet source" #. type: enumerate #: packaging-tutorial.tex:1111 msgid "Find a Debian Developer that will sponsor your package" msgstr "Trouvez un développeur Debian qui va parrainer votre paquet" #. type: itemize #: packaging-tutorial.tex:1111 msgid "Official status (when you are an experienced package maintainer):" msgstr "" "Statuts officiels (quand vous serez un responsable de paquets expérimenté) :" #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Maintainer (DM):}\\\\ Permission to upload your own packages" "\\\\ See \\url{http://wiki.debian.org/DebianMaintainer}" msgstr "" "\\textbf{Debian Maintainer (DM) :}\\\\ Droit d'envoyer vos propres paquets\\" "\\ Voir \\url{http://wiki.debian.org/DebianMaintainer}" #. type: itemize #: packaging-tutorial.tex:1111 msgid "" "\\textbf{Debian Developer (DD):}\\\\ Debian project member; can vote and " "upload any package" msgstr "" "\\textbf{Debian Developer (DD) :}\\\\ Membre du projet Debian \\\\ Peut " "voter et envoyer n'importe quel paquet" #. type: frame{#2} #: packaging-tutorial.tex:1139 msgid "Things to check before asking for sponsorship" msgstr "Points à vérifier avant de demander un parrainage" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Debian puts \\textbf{a lot of focus on quality}" msgstr "Debian met \\textbf{fortement l'accent sur la qualité}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Generally, \\textbf{sponsors are hard to find and busy}" msgstr "" "En général, \\textbf{les parrains et marraines sont difficiles à trouver et " "très occupés}" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Make sure your package is ready before asking for sponsorship" msgstr "Assurez-vous que votre paquet est prêt avant de demander un parrainage" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Things to check:" msgstr "Points à vérifier :" #. type: itemize #: packaging-tutorial.tex:1139 msgid "" "Avoid missing build-dependencies: make sure that your package build fine in " "a clean \\textsl{sid} \\textsl{chroot}" msgstr "" "Évitez les oublis de dépendances de construction : assurez-vous que la " "construction de votre paquet fonctionne dans un environnement " "\\textsl{chroot} \\textsl{sid} propre" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Using \\texttt{pbuilder} is recommended" msgstr "L'utilisation de \\texttt{pbuilder} est recommandée" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Run \\texttt{lintian -EviIL +pedantic} on your package" msgstr "Lancez \\texttt{lintian -EviIL +pedantic} sur votre paquet" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Errors must be fixed, all other problems should be fixed" msgstr "" "Vous devez corriger les erreurs et faire de votre mieux pour corriger les " "autres problèmes" #. type: itemize #: packaging-tutorial.tex:1139 msgid "Do extensive testing of your package, of course" msgstr "Testez largement votre paquet, bien sûr" #. type: itemize #: packaging-tutorial.tex:1139 msgid "In doubt, ask for help" msgstr "En cas de doute, demandez de l'aide" #. type: frame{#2} #: packaging-tutorial.tex:1174 msgid "Where to find help?" msgstr "Où trouver de l'aide ?" #. type: frame #: packaging-tutorial.tex:1174 msgid "Help you will need:" msgstr "L'aide dont vous avez besoin :" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Advice and answers to your questions, code reviews" msgstr "conseils et réponses à vos questions, relecture de code" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Sponsorship for your uploads, once your package is ready" msgstr "parrainage pour les envois, une fois votre paquet prêt" #. type: frame #: packaging-tutorial.tex:1174 msgid "You can get help from:" msgstr "Vous pouvez obtenir de l'aide :" #. type: textbf{#1} #: packaging-tutorial.tex:1174 msgid "Other members of a packaging team" msgstr "autres membres d'une équipe d'empaquetage : la meilleure solution" #. type: itemize #: packaging-tutorial.tex:1174 msgid "List of teams: \\url{http://wiki.debian.org/Teams}" msgstr "liste des équipes : \\url{http://wiki.debian.org/Teams}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "The \\textbf{Debian Mentors group} (if your package does not fit in a team)" msgstr "" "le groupe \\textbf{Debian Mentors} (si le paquet ne correspond à aucune " "équipe)" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://wiki.debian.org/DebianMentorsFaq}" msgstr "\\url{http://wiki.debian.org/DebianMentorsFaq}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "Mailing list: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (also a " "good way to learn by accident)}" msgstr "" "liste de diffusion : \\url{debian-mentors@lists.debian.org}\\\\ {\\small " "(une autre manière d'apprendre par hasard)}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "IRC: \\texttt{\\#debian-mentors} on \\texttt{irc.debian.org}" msgstr "IRC : \\texttt{\\#debian-mentors} sur \\texttt{irc.debian.org}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\url{http://mentors.debian.net/}" msgstr "\\url{http://mentors.debian.net/}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Documentation: \\url{http://mentors.debian.net/intro-maintainers}" msgstr "documentation : \\url{http://mentors.debian.net/intro-maintainers}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "\\textbf{Localized mailing lists} (get help in your language)" msgstr "" "\\textbf{listes de diffusion localisées} (pour obtenir de l'aide dans votre " "langue)" #. type: itemize #: packaging-tutorial.tex:1174 msgid "" "\\texttt{debian-devel-\\{french,italian,portuguese,spanish\\}@lists.d.o}" msgstr "" "\\texttt{debian-devel-\\{french,italian,portuguese,spanish\\}@lists.d.o}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Full list: \\url{https://lists.debian.org/devel.html}" msgstr "liste complète : \\url{https://lists.debian.org/devel.html}" #. type: itemize #: packaging-tutorial.tex:1174 msgid "Or users lists: \\url{https://lists.debian.org/users.html}" msgstr "" "ou les listes d'utilisateurs : \\url{https://lists.debian.org/users.html}" #. type: frame{#2} #: packaging-tutorial.tex:1192 msgid "More documentation" msgstr "Plus de documentation :" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developers' Corner\\\\ \\url{http://www.debian.org/devel/}\\\\ " "{\\small Links to many resources about Debian development}" msgstr "" "Le coin des développeurs Debian\\\\ \\url{http://www.debian.org/devel/}\\\\ " "{\\small Liens vers de nombreuses ressources sur le développement Debian}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian New Maintainers' Guide\\\\ \\url{http://www.debian.org/doc/maint-" "guide/}\\\\ {\\small An introduction to Debian packaging, but could use an " "update}" msgstr "" "Guide du nouveau responsable Debian \\\\ \\url{http://www.debian.org/doc/" "maint-guide/}\\\\ {\\small Une introduction pour la construction de paquets " "Debian (pas très à jour)}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "" "Debian Developer's Reference\\\\ \\url{http://www.debian.org/doc/developers-" "reference/}\\\\ {\\small Mostly about Debian procedures, but also some best " "packaging practices (part 6)}" msgstr "" "Manuel de référence du développeur Debian\\\\ \\url{http://www.debian.org/" "doc/developers-reference/}\\\\ {\\small Essentiellement sur les procédures " "Debian mais contient aussi quelques bonnes pratiques d'empaquetage (chapitre " "6)}" #. type: itemize #: packaging-tutorial.tex:1192 msgid "Debian Policy\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\" msgstr "" "La Charte Debian\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\" #. type: itemize #: packaging-tutorial.tex:1198 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 "" "{\\small \\begin{itemize} \\item \\small Toutes les exigences que doit " "satisfaire chaque paquet \\item \\small Règles spécifiques pour Perl, Java, " "Python\\ldots \\end{itemize}}" #. type: itemize #: packaging-tutorial.tex:1203 msgid "" "Ubuntu Packaging Guide\\\\ \\url{http://developer.ubuntu.com/resources/tools/" "packaging/}" msgstr "" "Guide d'empaquetage d'Ubuntu\\\\ \\url{http://developer.ubuntu.com/resources/" "tools/packaging/}" #. type: frame{#2} #: packaging-tutorial.tex:1217 msgid "Debian dashboards for maintainers" msgstr "Tableau de bord Debian pour les responsables" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Source package centric}: Package Tracking System (PTS)\\\\ " "\\url{http://packages.qa.debian.org/dpkg}" msgstr "" "\\textbf{Pour une vision par paquet source} : système de suivi des paquets " "(PTS : Packaging Tracking System) \\\\ \\url{http://packages.qa.debian.org/" "dpkg}" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{Maintainer/team centric}: Developer's Packages Overview (DDPO)\\\\ " "\\url{http://qa.debian.org/developer.php?login=pkg-ruby-extras-" "maintainers@lists.alioth.debian.org}" msgstr "" "\\textbf{Pour une vision par responsable/équipe} : aperçu des paquets d'un " "développeur (DDPO : Developer's Packages Overview) \\\\ \\url{http://qa." "debian.org/developer.php?login=pkg-ruby-extras-maintainers@lists.alioth." "debian.org}" #. type: itemize #: packaging-tutorial.tex:1217 msgid "" "\\textbf{TODO-list oriented}: Debian Maintainer Dashboard (DMD)\\\\ " "\\url{http://udd.debian.org/dmd.cgi}" msgstr "" "\\textbf{Pour une vision en liste de tâches} : tableau de bord du " "responsable Debian (DMD : Debian Maintainer Dashboard)\\\\ \\url{http://udd." "debian.org/dmd.cgi}" #. type: frame{#2} #: packaging-tutorial.tex:1245 msgid "Using the Debian Bug Tracking System (BTS)" msgstr "Utilisation du système de suivi des bogues (BTS)" #. type: itemize #: packaging-tutorial.tex:1245 msgid "A quite unique way to manage bugs" msgstr "Une façon unique de gérer les bogues" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Web interface to view bugs" msgstr "interface web pour visualiser les bogues" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Email interface to make changes to bugs" msgstr "interface par courrier électronique pour modifier les bogues" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Adding information to bugs:" msgstr "Ajouter des informations complémentaires aux bogues :" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Write to \\texttt{123456@bugs.debian.org} (does not include the submitter, " "you need to add \\texttt{123456-submitter@bugs.debian.org})" msgstr "" "écrivez un message à \\texttt{123456@bugs.debian.org} (pour mettre en copie " "la personne ayant soumis le bogue, utilisez plutôt \\texttt{123456-" "submitter@bugs.debian.org})" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Changing bug status:" msgstr "Changer le statut d'un bogue :" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Send commands to \\texttt{control@bugs.debian.org}" msgstr "envoyez des commandes à \\texttt{control@bugs.debian.org}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Command-line interface: \\texttt{bts} command in \\texttt{devscripts}" msgstr "" "interface en ligne de commande : commande \\texttt{bts} dans le paquet " "\\texttt{devscripts}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Documentation: \\url{http://www.debian.org/Bugs/server-control}" msgstr "documentation : \\url{http://www.debian.org/Bugs/server-control}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "Reporting bugs: use \\texttt{reportbug}" msgstr "Soumettre un rapport de bogue : utilisez \\texttt{reportbug}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Normally used with a local mail server: install \\texttt{ssmtp} or " "\\texttt{nullmailer}" msgstr "" "normalement utilisé avec un serveur de courrier local : installez " "\\texttt{ssmtp} ou \\texttt{nullmailer}" #. type: itemize #: packaging-tutorial.tex:1245 msgid "" "Or use \\texttt{reportbug -\\@-template}, then send (manually) to " "\\texttt{submit@bugs.debian.org}" msgstr "" "ou utilisez \\texttt{reportbug -\\@-template}, puis envoyez « à la main » le " "message à l'adresse \\texttt{submit@bugs.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1271 msgid "Using the BTS: examples" msgstr "Utilisation du BTS : exemples" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Sending an email to the bug and the submitter:\\\\ \\url{http://bugs.debian." "org/cgi-bin/bugreport.cgi?bug=680822\\#10}" msgstr "" "Envoyer un message au bogue et à la personne qui l'a soumis :\\\\ " "\\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#10}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Tagging and changing the severity:\\\\ \\url{http://bugs.debian.org/cgi-bin/" "bugreport.cgi?bug=680227\\#10}" msgstr "" "Étiqueter et changer la sévérité :\\\\ \\url{http://bugs.debian.org/cgi-bin/" "bugreport.cgi?bug=680227\\#10}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Reassigning, changing the severity, retitling \\ldots: \\\\ \\url{http://" "bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#93}" msgstr "" "Réattribuer, changer la sévérité, changer le titre\\ldots : \\\\ " "\\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\\#93}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "\\texttt{notfound}, \\texttt{found}, \\texttt{notfixed}, \\texttt{fixed} are " "for \\textbf{version-tracking} \\\\ See \\url{https://wiki.debian.org/" "HowtoUseBTS\\#Version\\_tracking}" msgstr "" "\\texttt{notfound}, \\texttt{found}, \\texttt{notfixed}, \\texttt{fixed} " "utilisé pour le \\textbf{suivi de version} \\\\ Lisez \\url{https://wiki." "debian.org/HowtoUseBTS\\#Version\\_tracking}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "" "Using usertags: \\url{http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;" "bug=642267}\\\\ See \\url{https://wiki.debian.org/bugs.debian.org/usertags}" msgstr "" "Utiliser des étiquettes utilisateur : \\url{http://bugs.debian.org/cgi-bin/" "bugreport.cgi?msg=42;bug=642267}\\\\ Consultez \\url{https://wiki.debian.org/" "bugs.debian.org/usertags}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "BTS Documentation:" msgstr "Documentation du BTS :" #. type: itemize #: packaging-tutorial.tex:1271 msgid "\\url{http://www.debian.org/Bugs/}" msgstr "\\url{http://www.debian.org/Bugs/}" #. type: itemize #: packaging-tutorial.tex:1271 msgid "\\url{https://wiki.debian.org/HowtoUseBTS}" msgstr "\\url{https://wiki.debian.org/HowtoUseBTS}" #. type: frame{#2} #: packaging-tutorial.tex:1298 msgid "More interested in Ubuntu?" msgstr "Plus intéressé par Ubuntu ?" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu mainly manages the divergence with Debian" msgstr "Ubuntu gère essentiellement les différences avec Debian" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "No real focus on specific packages\\\\ Instead, collaboration with Debian " "teams" msgstr "" "Pas de concentration sur des paquets spécifiques\\\\ Mais une collaboration " "avec les équipes Debian" #. type: itemize #: packaging-tutorial.tex:1298 msgid "" "Usually recommend uploading new packages to Debian first\\\\ \\url{https://" "wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" msgstr "" "Il est recommandé en général d'envoyer les nouveaux paquets d'abord dans " "Debian\\\\ \\url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Possibly a better plan:" msgstr "Peut-être une meilleure idée :" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Get involved in a Debian team and act as a bridge with Ubuntu" msgstr "S'impliquer dans une équipe Debian et faire le lien avec Ubuntu" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Help reduce divergence, triage bugs in Launchpad" msgstr "Faciliter la réduction les divergences, trier les bogues sur Launchpad" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Many Debian tools can help:" msgstr "Beaucoup d'outils Debian peuvent aider :" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu column on the Developer's packages overview" msgstr "Colonne Ubuntu sur l'aperçu des paquets du développeur" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Ubuntu box on the Package Tracking System" msgstr "Encart Ubuntu sur le système de suivi des paquets" #. type: itemize #: packaging-tutorial.tex:1298 msgid "Receive launchpad bugmail via the PTS" msgstr "Réception des courriels de bogues Launchpad au moyen du PTS" #. type: frame{#2} #: packaging-tutorial.tex:1328 msgid "Conclusions" msgstr "Conclusions" #. type: itemize #: packaging-tutorial.tex:1328 msgid "You now have a full overview of Debian packaging" msgstr "Vous avez un aperçu complet de la construction de paquets Debian" #. type: itemize #: packaging-tutorial.tex:1328 msgid "But you will need to read more documentation" msgstr "Mais vous devrez lire plus de documentation" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Best practices have evolved over the years" msgstr "Les bonnes pratiques ont évolué avec le temps" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "If not sure, use the \\textbf{dh} packaging helper, and the \\textbf{3.0 " "(quilt)} format" msgstr "" "Si vous n'êtes pas sûr, utilisez l'assistant d'empaquetage de paquets " "\\textbf{dh}, et le format \\textbf{3.0 (quilt)} " #. type: itemize #: packaging-tutorial.tex:1328 msgid "Things that were not covered in this tutorial:" msgstr "Non traité dans ce tutoriel :" #. type: itemize #: packaging-tutorial.tex:1328 msgid "UCF -- manage user changes to configuration files when upgrading" msgstr "" "UCF -- gérer les changements par l'utilisateur de fichiers de configuration " "lors de la mise à jour" #. type: itemize #: packaging-tutorial.tex:1328 msgid "dpkg triggers -- group similar maintainer scripts actions together" msgstr "dpkg triggers -- regrouper les actions des scripts du responsable" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian development organization:" msgstr "Organisation du développement Debian :" #. type: itemize #: packaging-tutorial.tex:1328 msgid "" "Suites: stable, testing, unstable, experimental, security, *-updates, " "backports, \\ldots" msgstr "" "Suites : stable, testing, unstable, experimental, security, *-updates, " "backports\\ldots" #. type: itemize #: packaging-tutorial.tex:1328 msgid "Debian Blends -- subsets of Debian targeting specific groups" msgstr "Blends : ensembles de paquets visant des groupes spécifiques" #. type: centerline{#1} #: packaging-tutorial.tex:1328 msgid "\\large Feedback: \\textbf{packaging-tutorial@packages.debian.org}" msgstr "" "\\large Vos retours à : \\textbf{packaging-tutorial@packages.debian.org}" #. type: frame{#2} #: packaging-tutorial.tex:1331 msgid "Legal stuff" msgstr "Mentions légales" #. type: frame #: packaging-tutorial.tex:1334 msgid "Copyright \\copyright 2011--2013 Lucas Nussbaum -- lucas@debian.org" msgstr "Copyright \\copyright{} 2011--2013 Lucas Nussbaum -- lucas@debian.org" #. type: frame #: packaging-tutorial.tex:1350 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 "" "{\\small \\textbf{Ce document est un logiciel libre}: vous pouvez le " "redistribuer et le modifier, selon votre choix, sous : \\hbr " "\\begin{itemize} \\item les termes de la General Public License GNU publiée " "par la Fondation du logiciel libre, version 3 de la License, ou (si vous " "préférez) toute version supérieure.\\\\ \\url{http://www.gnu.org/licenses/" "gpl.html} \\br \\item les termes de la licence Creative Commons Attribution-" "ShareAlike 3.0 Unported.\\\\ \\url{http://creativecommons.org/licenses/by-" "sa/3.0/} \\end{itemize} }" #. type: frame{#2} #: packaging-tutorial.tex:1379 msgid "Contribute to this tutorial" msgstr "Contribuer à ce tutoriel" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Contribute:" msgstr "Contribuer :" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{apt-get source packaging-tutorial}}" msgstr "{\\small \\texttt{apt-get source packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{debcheckout packaging-tutorial}}" msgstr "{\\small \\texttt{debcheckout packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\texttt{git clone\\\\ git://git.debian.org/collab-maint/packaging-" "tutorial.git}}" msgstr "" "{\\small \\texttt{git clone\\\\ git://git.debian.org/collab-maint/packaging-" "tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" msgstr "" "{\\small \\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small Open bugs: \\url{bugs.debian.org/src:packaging-tutorial}}" msgstr "" "{\\small Soumettez des rapports de bogues : \\url{bugs.debian.org/src:" "packaging-tutorial}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "Provide feedback:" msgstr "Envoyez vos retours :" #. type: itemize #: packaging-tutorial.tex:1379 msgid "" "\\href{mailto:packaging-tutorial@packages.debian.org}" "{\\textbf{\\texttt{mailto:packaging-tutorial@packages.debian.org}}}" msgstr "" "\\href{mailto:packaging-tutorial@packages.debian.org}" "{\\textbf{\\texttt{mailto:packaging-tutorial@packages.debian.org}}}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be added to this tutorial?}" msgstr "{\\small Qu'est-ce qui doit être ajouté à ce tutoriel ?}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small What should be improved?}" msgstr "{\\small Qu'est-ce qui doit être amélioré ?}" #. type: itemize #: packaging-tutorial.tex:1379 msgid "{\\small \\texttt{reportbug packaging-tutorial}}" msgstr "{\\small \\texttt{reportbug packaging-tutorial}}" #. type: frame{#2} #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Practical session 2: packaging GNUjump" msgstr "Travaux pratiques nº~2 : empaqueter GNUjump" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "" "Download GNUjump 1.0.8 from \\url{http://ftp.gnu.org/gnu/gnujump/" "gnujump-1.0.8.tar.gz}" msgstr "" "Téléchargez GNUjump~1.0.8 depuis \\url{http://ftp.gnu.org/gnu/gnujump/" "gnujump-1.0.8.tar.gz}" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Create a Debian package for it" msgstr "Créez un paquet Debian" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Install build-dependencies so that you can build the package" msgstr "Installez les dépendances de construction du paquet" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Get a basic working package" msgstr "Vous obtenez un paquet de base fonctionnel" #. type: itemize #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Finish filling \\texttt{debian/control} and other files" msgstr "Terminez en complétant \\texttt{debian/control} et d'autres fichiers" #. type: enumerate #: packaging-tutorial.tex:1397 packaging-tutorial.tex:1626 msgid "Enjoy" msgstr "Profitez" #. type: frame{#2} #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Practical session 3: packaging a Java library" msgstr "Travaux pratiques nº~3 : une bibliothèque Java" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Take a quick look at some documentation about Java packaging:\\\\" msgstr "" "Jetez un coup d'œil sur la documentation pour la construction de paquets " "Java :\\\\" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java}" msgstr "\\url{http://wiki.debian.org/Java}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://wiki.debian.org/Java/Packaging}" msgstr "\\url{http://wiki.debian.org/Java/Packaging}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" msgstr "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" msgstr "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}" #. type: itemize #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 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 "" "Articles et présentation à la Debconf10 sur 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}}" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Download IRClib from \\url{http://moepii.sourceforge.net/}" msgstr "Téléchargez IRClib sur \\url{http://moepii.sourceforge.net/}" #. type: enumerate #: packaging-tutorial.tex:1422 packaging-tutorial.tex:1748 msgid "Package it" msgstr "Empaquetez-la" #. type: frame{#2} #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Practical session 4: packaging a Ruby gem" msgstr "Travaux pratiques nº~4 : empaqueter un gem Ruby" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Take a quick look at some documentation about Ruby packaging:\\\\" msgstr "" "Jetez un coup d'œil sur la documentation pour la construction de paquets " "Ruby :\\\\" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Ruby}" msgstr "\\url{http://wiki.debian.org/Ruby}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby}" msgstr "\\url{http://wiki.debian.org/Teams/Ruby}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" msgstr "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}" #. type: itemize #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (in the \\texttt{gem2deb} " "package)" msgstr "" "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (dans le paquet " "\\texttt{gem2deb})" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "" "Create a basic Debian source package from the \\texttt{net-ssh} gem:\\\\ " "\\texttt{gem2deb net-ssh}" msgstr "" "Créez un paquet source Debian élémentaire à partir du gem \\texttt{net-ssh} :" "\\\\ \\texttt{gem2deb net-ssh}" #. type: enumerate #: packaging-tutorial.tex:1443 packaging-tutorial.tex:1790 msgid "Improve it so that it becomes a proper Debian package" msgstr "Améliorez-le pour qu'il devienne un paquet Debian à part entière" #. type: section{#2} #: packaging-tutorial.tex:1445 msgid "Answers to practical sessions" msgstr "Solutions aux travaux pratiques" #. type: center #: packaging-tutorial.tex:1451 msgid "\\LARGE Answers to" msgstr "\\LARGE Solutions aux" #. type: center #: packaging-tutorial.tex:1451 msgid "[0.5em] practical sessions" msgstr "[0.5em] travaux pratiques" #. type: frame{#2} #: packaging-tutorial.tex:1509 msgid "Fetching the source" msgstr "Récupérer les sources" #. type: enumerate #: packaging-tutorial.tex:1509 msgid "" "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download " "version 2.6.3-3 of the package" msgstr "" "Rendez-vous sur \\url{http://ftp.debian.org/debian/pool/main/g/grep/} et " "téléchargez la version~2.6.3-3 du paquet" #. type: itemize #: packaging-tutorial.tex:1509 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 "" "Utilisez dget pour télécharger le fichier \\texttt{.dsc} :\\\\ {\\small " "\\texttt{dget http://cdn.debian.net/debian/pool/main/g/grep/grep\\_2.6.3-3." "dsc}}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "" "According to \\url{http://packages.qa.debian.org/grep}, \\texttt{grep} " "version 2.6.3-3 is currently in \\textsl{stable} (\\textsl{squeeze}). 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.6.3-3}\\\\ or " "\\texttt{apt-get source grep/stable}\\\\ or, if you feel lucky: \\texttt{apt-" "get source grep}" msgstr "" "D'après \\url{http://packages.qa.debian.org/grep}, \\texttt{grep} la version " "2.6.3-3 est actuellement dans \\textsl{stable} (\\textsl{squeeze}). Si vous " "avez les lignes \\texttt{deb-src}, pour \\textsl{squeeze} dans votre " "\\texttt{/etc/apt/sources.list}, utilisez :\\\\ \\texttt{apt-get source " "grep=2.6.3-3} \\\\ou \\texttt{apt-get source grep/stable}\\\\ ou si vous " "sentez que vous avez de la chance : \\texttt{apt-get source grep}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "The \\texttt{grep} source package is composed of three files:" msgstr "Le paquet source de \\texttt{grep} se compose de trois fichiers :" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.dsc}" msgstr "\\texttt{grep\\_2.6.3-3.dsc}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" msgstr "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "\\texttt{grep\\_2.6.3.orig.tar.bz2}" msgstr "\\texttt{grep\\_2.6.3.orig.tar.bz2}" #. type: itemize #: packaging-tutorial.tex:1509 msgid "This is typical of the \"3.0 (quilt)\" format." msgstr "C'est le cas typique du format « 3.0~(quilt) »" #. type: itemize #: packaging-tutorial.tex:1509 msgid "" "If needed, uncompress the source with\\\\ \\texttt{dpkg-source -x grep" "\\_2.6.3-3.dsc}" msgstr "" "Si nécessaire, décompressez le paquet source avec\\\\ \\texttt{dpkg-source -" "x grep\\_2.6.3-3.dsc}" #. type: frame{#2} #: packaging-tutorial.tex:1528 msgid "Looking around and building the package" msgstr "Faites le tour et construisez le paquet" #. type: itemize #: packaging-tutorial.tex:1528 msgid "" "According to \\texttt{debian/control}, this package only generates one " "binary package, named \\texttt{grep}." msgstr "" "D'après \\texttt{debian/control}, ce paquet ne génère qu'un seul paquet " "binaire, nommé \\texttt{grep}." #. type: itemize #: packaging-tutorial.tex:1528 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 "" "D'après \\texttt{debian/rules}, ce paquet est un exemple typique de " "construction avec l'assistant \\textsl{classique} debhelper, n'utilisant ni " "\\textsl{CDBS} ni \\textsl{dh}. On peut voir les différents appels aux " "commandes \\texttt{dh\\_*} dans \\texttt{debian/rules}." #. type: itemize #: packaging-tutorial.tex:1537 msgid "Use \\texttt{apt-get build-dep grep} to fetch the build-dependencies" msgstr "" "Utilisez la commande \\texttt{apt-get build-dep grep} pour installer les " "dépendances de construction" #. type: itemize #: packaging-tutorial.tex:1537 msgid "" "Then \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc} (Takes about 1 " "min)" msgstr "" "Puis \\texttt{debuild} ou \\texttt{dpkg-buildpackage -us -uc} (prend environ " "1 min)" #. type: frame{#2} #: packaging-tutorial.tex:1541 msgid "Editing the changelog" msgstr "Éditer le journal des modifications" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "\\texttt{debian/changelog} is a text file. You could edit it and add a new " "entry manually." msgstr "" "\\texttt{debian/changelog} est un fichier texte. Vous pourriez l'éditer et " "ajouter une nouvelle entrée à la main." #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Or you can use \\texttt{dch -i}, which will add an entry and open the editor" msgstr "" "Vous pouvez aussi utiliser \\texttt{dch -i}, qui ajoutera une entrée et " "ouvrira un éditeur" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "The name and email can be defined using the \\texttt{DEBFULLNAME} and " "\\texttt{DEBEMAIL} environment variables" msgstr "" "On peut définir son nom et son adresse électronique via les variables " "d'environnement \\texttt{DEBFULLNAME} et \\texttt{DEBEMAIL}" #. type: itemize #: packaging-tutorial.tex:1558 msgid "After that, rebuild the package: a new version of the package is built" msgstr "" "Reconstruisez le paquet : une nouvelle version du paquet est construite" #. type: itemize #: packaging-tutorial.tex:1558 msgid "" "Package versioning is detailed in section 5.6.12 of the Debian policy\\\\ " "\\url{http://www.debian.org/doc/debian-policy/ch-controlfields}" msgstr "" "Le système des versions est décrit à la section 5.6.12 de la Charte Debian\\" "\\ \\url{http://www.debian.org/doc/debian-policy/ch-controlfields}" #. type: frame{#2} #: packaging-tutorial.tex:1562 msgid "Disabling Perl regexp support and rebuilding" msgstr "Désactiver les expressions rationnelles Perl" #. type: itemize #: packaging-tutorial.tex:1578 msgid "" "Check with \\texttt{./configure -{}-help}: the option to disable Perl regexp " "is \\texttt{-{}-disable-perl-regexp}" msgstr "" "Vérifiez avec \\texttt{./configure -{}-help} : l'option pour désactiver les " "expressions rationnelles Perl est \\texttt{-{}-disable-perl-regexp}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Edit \\texttt{debian/rules} and find the \\texttt{./configure} line" msgstr "" "Éditez \\texttt{debian/rules} et cherchez la ligne \\texttt{./configure}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Add \\texttt{-{}-disable-perl-regexp}" msgstr "Ajoutez \\texttt{-{}-disable-perl-regexp}" #. type: itemize #: packaging-tutorial.tex:1578 msgid "Rebuild with \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc}" msgstr "" "Reconstruisez avec \\texttt{debuild} ou \\texttt{dpkg-buildpackage -us -uc}" #. type: frame{#2} #: packaging-tutorial.tex:1582 msgid "Comparing and testing the packages" msgstr "Comparer et tester les paquets" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the binary packages: \\texttt{debdiff ../*changes}" msgstr "Comparez les paquets binaires : \\texttt{debdiff ../*changes}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "Compare the source packages: \\texttt{debdiff ../*dsc}" msgstr "Comparez les paquets source : \\texttt{debdiff ../*dsc}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "Install the newly built package: \\texttt{debi}\\\\ Or \\texttt{dpkg -i ../" "grep\\_}" msgstr "" "Installez le paquet nouvellement construit : \\texttt{debi}\\\\ ou " "\\texttt{dpkg -i ../grep\\_}" #. type: itemize #: packaging-tutorial.tex:1608 msgid "\\texttt{grep -P foo} no longer works!" msgstr "\\texttt{grep -P foo} ne fonctionne plus !" #. type: frame #: packaging-tutorial.tex:1608 msgid "Or not: reinstall the previous version of the package:" msgstr "Ou pas : réinstallez la version précédente du paquet :" #. type: itemize #: packaging-tutorial.tex:1608 msgid "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= previous " "version)}" msgstr "" "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= version " "précédente)}" #. type: frame{#2} #: packaging-tutorial.tex:1655 packaging-tutorial.tex:1769 #: packaging-tutorial.tex:1811 msgid "Step by step\\ldots" msgstr "Pas à pas\\ldots" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" msgstr "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" msgstr "\\texttt{mv gnujump-1.0.8.tar.gz gnujump\\_1.0.8.orig.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" msgstr "\\texttt{tar xf gnujump\\_1.0.8.orig.tar.gz}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{cd gnujump-1.0.8/}" msgstr "\\texttt{cd gnujump-1.0.8/}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "\\texttt{dh\\_make}" msgstr "\\texttt{dh\\_make}" #. type: itemize #: packaging-tutorial.tex:1655 msgid "Type of package: single binary (for now)" msgstr "Type de paquet : un seul binaire (pour l'instant)" #. type: lstlisting #: packaging-tutorial.tex:1655 #, 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 "" "[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" #. type: frame{#2} #: packaging-tutorial.tex:1682 packaging-tutorial.tex:1835 msgid "Step by step\\ldots (2)" msgstr "Pas à pas\\ldots (2)" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Look at \\texttt{debian/changelog}, \\texttt{debian/rules}, \\texttt{debian/" "control}\\\\ (auto-filled by \\textbf{dh\\_make})" msgstr "" "Regardez \\texttt{debian/changelog}, \\texttt{debian/rules}, \\texttt{debian/" "control}\\\\ (remplis automatiquement par \\textbf{dh\\_make})" #. type: itemize #: packaging-tutorial.tex:1682 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 "" "Dans \\texttt{debian/control} :\\\\ \\texttt{Build-Depends: debhelper (>= " "7.0.50~), autotools-dev}\\\\ Liste des \\textsl{dépendances de construction} " "= paquets nécessaires pour construire le paquet" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Try to build the package as-is (thanks to \\textbf{dh} magic)" msgstr "" "Essayez de construire le paquet comme ça (grâce à la magie de \\textbf{dh})" #. type: itemize #: packaging-tutorial.tex:1682 msgid "And add build-dependencies, until it builds" msgstr "" "Et ajoutez des dépendances jusqu'à ce que la construction puisse se terminer" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "Hint: use \\texttt{apt-cache search} and \\texttt{apt-file} to find the " "packages" msgstr "" "Astuce : utilisez \\texttt{apt-cache search} et \\texttt{apt-file} pour " "chercher les paquets manquants" #. type: itemize #: packaging-tutorial.tex:1682 msgid "Example:" msgstr "Exemple :" #. type: lstlisting #: packaging-tutorial.tex:1682 #, 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 "" "[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!" #. type: itemize #: packaging-tutorial.tex:1682 msgid "" "$\\rightarrow$ Add \\textbf{libsdl1.2-dev} to Build-Depends and install it." msgstr "" "$\\rightarrow$ Ajoutez \\textbf{libsdl1.2-dev} à \\texttt{Build-Depends} et " "installez-le." #. type: itemize #: packaging-tutorial.tex:1682 msgid "Better: use \\textbf{pbuilder} to build in a clean environment" msgstr "" "Mieux : construction dans un environnement propre avec \\textbf{pbuilder}" #. type: frame{#2} #: packaging-tutorial.tex:1710 packaging-tutorial.tex:1849 msgid "Step by step\\ldots (3)" msgstr "Pas à pas\\ldots (3)" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "After installing \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-" "mixer1.2-dev}, the package builds fine." msgstr "" "Après l'installation de \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-" "mixer1.2-dev}, le paquet se construit très bien." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debc} to list the content of the generated package." msgstr "Utilisez \\texttt{debc} pour lister le contenu du paquet créé." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Use \\texttt{debi} to install it and test it." msgstr "Utilisez \\texttt{debi} pour l'installer et le tester." #. type: itemize #: packaging-tutorial.tex:1710 msgid "Test the package with \\texttt{lintian}" msgstr "Testez le paquet avec \\texttt{lintian}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "While not a strict requirement, it is recommended that packages uploaded to " "Debian are \\textsl{lintian-clean}" msgstr "" "Absence de problèmes signalés par \\texttt{lintian} recommandée (même si pas " "strictement nécessaire) pour les paquets envoyés dans Debian" #. type: itemize #: packaging-tutorial.tex:1710 msgid "More problems can be listed using \\texttt{lintian -EviIL +pedantic}" msgstr "Détection de plus de problèmes : \\texttt{lintian -EviIL +pedantic}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Some hints:" msgstr "Quelques indices :" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Remove the files that you don't need in \\texttt{debian/}" msgstr "Supprimez les fichiers inutiles dans \\texttt{debian/}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "Fill in \\texttt{debian/control}" msgstr "Complétez \\texttt{debian/control}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Install the executable to \\texttt{/usr/games} by overriding \\texttt{dh" "\\_auto\\_configure}" msgstr "" "Installez l'exécutable dans \\texttt{/usr/games} en surchargeant \texttt{dh" "\\_auto\\_configure}" #. type: itemize #: packaging-tutorial.tex:1710 msgid "" "Use \\textsl{hardening} compiler flags to increase security.\\\\ See " "\\url{http://wiki.debian.org/Hardening}" msgstr "" "Utilisez les attributs de consolidation du compilateur pour augmenter la " "sécurité.\\\\ Consultez \\url{http://wiki.debian.org/Hardening}" #. type: frame{#2} #: packaging-tutorial.tex:1723 msgid "Step by step\\ldots (4)" msgstr "Pas à pas\\ldots (4)" #. type: itemize #: packaging-tutorial.tex:1723 msgid "Compare your package with the one already packaged in Debian:" msgstr "Comparez votre paquet avec celui déjà empaqueté dans Debian :" #. type: itemize #: packaging-tutorial.tex:1723 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 "" "Il rassemble les fichiers de données dans un deuxième paquet, identique pour " "toutes les architectures ($\\rightarrow$ gain de place dans l'archive Debian)" #. type: itemize #: packaging-tutorial.tex:1723 msgid "" "It installs a .desktop file (for the GNOME/KDE menus) and also integrates " "into the Debian menu" msgstr "" "Il installe aussi un fichier .desktop (pour les menus GNOME/KDE) et " "l'intègre dans le menu Debian" #. type: itemize #: packaging-tutorial.tex:1723 msgid "It fixes a few minor problems using patches" msgstr "Il corrige de petits problèmes en utilisant des correctifs" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{apt-get install javahelper}" msgstr "\\texttt{apt-get install javahelper}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Create a basic source package: \\texttt{jh\\_makepkg}" msgstr "Créez un paquet source de base : \\texttt{jh\\_makepkg}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Library" msgstr "Bibliothèque" #. type: itemize #: packaging-tutorial.tex:1769 msgid "None" msgstr "Aucun" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Default Free compiler/runtime" msgstr "Compilateur et exécution libres fournis par défaut" #. type: itemize #: packaging-tutorial.tex:1769 msgid "Look at and fix \\texttt{debian/*}" msgstr "Regardez et corrigez \\texttt{debian/*}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{dpkg-buildpackage -us -uc} or \\texttt{debuild}" msgstr "\\texttt{dpkg-buildpackage -us -uc} ou \\texttt{debuild}" #. type: itemize #: packaging-tutorial.tex:1769 msgid "\\texttt{lintian}, \\texttt{debc}, etc." msgstr "\\texttt{lintian}, \\texttt{debc}, etc." #. type: itemize #: packaging-tutorial.tex:1769 msgid "Compare your result with the \\texttt{libirclib-java} source package" msgstr "Comparez votre résultat avec le paquet source \\texttt{libirclib-java}" #. type: frame #: packaging-tutorial.tex:1811 msgid "\\texttt{gem2deb net-ssh}:" msgstr "\\texttt{gem2deb net-ssh} :" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Downloads the gem from rubygems.org" msgstr "Télécharge le gem depuis rubygems.org" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Creates a suitable .orig.tar.gz archive, and untar it" msgstr "Crée une archive .orig.tar.gz adéquate, et la décompresse" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Initializes a Debian source package based on the gem's metadata" msgstr "Initialise un paquet source Debian basé sur les métadonnées du gem" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Named \\texttt{ruby-\\textsl{gemname}}" msgstr "Nommé \\texttt{ruby-\\textsl{gemname}}" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Tries to build the Debian binary package (this might fail)" msgstr "Tente de construire le paquet binaire Debian (ceci peut échouer)" #. type: frame #: packaging-tutorial.tex:1811 msgid "" "\\texttt{dh\\_ruby} (included in \\textsl{gem2deb}) does the Ruby-specific " "tasks:" msgstr "" "\\texttt{dh\\_ruby} (inclus dans \\textsl{gem2deb}) effectue les tâches " "spécifiques à Ruby :" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Build C extensions for each Ruby version" msgstr "Construction d'extentions C pour chaque version de Ruby" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Copy files to their destination directory" msgstr "Copie les fichiers dans leur répertoire de destination" #. type: itemize #: packaging-tutorial.tex:1811 msgid "Update shebangs in executable scripts" msgstr "" "Mise à jour des interpréteurs à utiliser (« shebangs ») pour les scripts " "exécutables" #. type: itemize #: packaging-tutorial.tex:1811 msgid "" "Run tests defined in \\texttt{debian/ruby-tests.rb} or \\texttt{debian/ruby-" "test-files.yaml}, as well as various other checks" msgstr "" "Exécution des tests définis dans \\texttt{debian/ruby-tests.rb} ou " "\\texttt{debian/ruby-test-files.yaml} ainsi que d'autres vérifications" #. type: frame #: packaging-tutorial.tex:1835 msgid "Improve the generated package:" msgstr "Améliorez le paquet créé :" #. Translators: #. This context is very sensitive to line length. If you #. hit errors building the package around this line in your translated version #. see, e.g. in the Spanish or German version for versions with explicit line #. breaks for the translation #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Run \\texttt{debclean} to clean the source tree. Look at \\texttt{debian/}." msgstr "" "Exécutez \\texttt{debclean} pour nettoyer l'arborescence. Regardez " "\\texttt{debian/}." #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{changelog} and \\texttt{compat} should be correct" msgstr "\\texttt{changelog} et \\texttt{compat} devraient être corrects" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "Edit \\texttt{debian/control}: uncomment \\texttt{Homepage}, improve " "\\texttt{Description}" msgstr "" "Éditez \\text{debian/control} : décommentez \\texttt{Homepage}, améliorez " "\\texttt{Description}" #. type: itemize #: packaging-tutorial.tex:1835 msgid "Write a proper \\texttt{copyright} file based on the upstream files" msgstr "" "Écrivez un fichier \\texttt{copyright} approprié se basant sur les fichiers " "amont" #. type: itemize #: packaging-tutorial.tex:1835 msgid "\\texttt{ruby-net-ssh.docs}: install \\texttt{README.rdoc}" msgstr "\\texttt{ruby-net-ssh.docs} : installez \\texttt{README.rdoc}" #. type: itemize #: packaging-tutorial.tex:1835 msgid "" "\\texttt{ruby-tests.rb}: run the tests. In that case, it is enough to do:\\" "\\ \\verb+$: << 'test' << 'lib' << '.'+\\\\ \\verb+require 'test/test_all." "rb'+" msgstr "" "\\texttt{ruby-tests.rb} : exécuter les tests. Dans ce cas, les lignes " "suivantes suffisent : \\\\\n" "\\verb+$: << 'test' << 'lib << '.'+\\\\\n" "\\verb+require 'test/test_all.rb'+" #. type: frame #: packaging-tutorial.tex:1849 msgid "Build the package. It fails to build. There are two problems:" msgstr "Lancez la construction. Elle échoue pour deux raisons :" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "You need to disable the \\texttt{gem} call in the test suite.\\\\ In " "\\texttt{test/common.rb}, remove the \\verb+gem \"test-unit\"+ line:" msgstr "" "Vous devez désactiver l'appel au \\texttt{gem} dans la batterie de tests.\\" "\\ Dans \\texttt{test/common.rb}, supprimez la ligne \\verb+gem \"test-unit" "\"+ :" #. type: itemize #: packaging-tutorial.tex:1849 msgid "\\texttt{edit-patch disable-gem.patch}" msgstr "\\texttt{edit-patch desactiver-gem.patch}" #. type: itemize #: packaging-tutorial.tex:1849 msgid "" "Edit \\texttt{test/common.rb}, remove the \\texttt{gem} line. Exit the sub-" "shell" msgstr "" "Éditez \\texttt{test/common.rb}, supprimez la ligne contenant \\texttt{gem}. " "Quittez le sous-interpréteur" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Describe the changes in \\texttt{debian/changelog}" msgstr "Décrivez les changements dans \\texttt{debian/changelog}" #. type: itemize #: packaging-tutorial.tex:1849 msgid "Document the patch in \\texttt{debian/patches/disable-gem.patch}" msgstr "" "Documentez le correctif dans \\texttt{debian/patches/desactiver-gem.patch}" #. type: itemize #: packaging-tutorial.tex:1854 msgid "" "The package lacks a build-dependency on \\texttt{ruby-mocha}, which is used " "by the test suite (you might need to build your package in a clean " "environment, using \\texttt{pbuilder}, to reproduce that problem)" msgstr "" "Une dépendance de construction \\texttt{ruby-mocha} est manquante. Elle est " "utilisée par la batterie de test (vous pouvez avoir besoin de construire " "votre paquet dans un environnement propre avec \\texttt{pbuilder} pour " "reproduire ce problème)" #. type: itemize #: packaging-tutorial.tex:1857 msgid "Add \\texttt{ruby-mocha} to the package's \\texttt{Build-Depends}" msgstr "" "Ajoutez \\texttt{ruby-mocha} au champ \\texttt{Build-Depends} du paquet" #. type: itemize #: packaging-tutorial.tex:1868 msgid "" "\\textsl{gem2deb} copies the dependencies documented in the \\textsl{gem} as " "comments in \\texttt{debian/control}, but \\textsl{mocha} is not listed as a " "development dependency by the gem (that's a bug in the gem)" msgstr "" "\\textsl{gem2deb} copie les dépendances documentées dans le \\textsl{gem} " "sous forme de commentaires dans \\texttt{debian/control}, mais " "\\textsl{mocha} n'est pas dans la liste des dépendances de développement du " "gem (c'est un bogue du gem)" #. type: frame #: packaging-tutorial.tex:1868 msgid "" "Compare your package with the \\texttt{ruby-net-ssh} package in the Debian " "archive" msgstr "" "Comparez votre paquet avec le paquet \\texttt{ruby-net-ssh} présent dans " "l'archive Debian" #~ msgid "They know the specifics of your package" #~ msgstr "Ils connaissent les spécificités de votre paquet" #~ msgid "You can become a member of the team" #~ msgstr "Vous pouvez devenir membre d'une équipe" #~ msgid "Official documentation" #~ msgstr "Documentation officielle" #~ msgid "Latest version \\& source code" #~ msgstr "Dernière version et code source" #~ msgid "" #~ "Latest version:\\\\ {\\footnotesize \\url{http://git.debian.org/?p=collab-" #~ "maint/packaging-tutorial.git;a=blob\\_plain;f=packaging-tutorial.pdf;" #~ "hb=refs/heads/pdf}}" #~ msgstr "" #~ "Dernière version :\\\\ {\\footnotesize \\url{http://git.debian.org/?" #~ "p=collab-maint/packaging-tutorial.git;a=blob\\_plain;f=packaging-tutorial." #~ "pdf;hb=refs/heads/pdf}}" #~ msgid "" #~ "Fill in \\texttt{debian/control} using \\url{http://www.debian.org/doc/" #~ "debian-policy/ch-controlfields}" #~ msgstr "" #~ "Remplissez \\texttt{debian/control} en utilisant \\url{http://www.debian." #~ "org/doc/debian-policy/ch-controlfields}" #~ msgid "Packaging with a VCS (SVN, Git \\& friends)" #~ msgstr "" #~ "Construire des paquets avec un gestionnaire de versions (Subversion, Git " #~ "et compagnie)" #~ msgid "Practical session: modifying the grep package" #~ msgstr "Travaux pratiques nº~1 : modifier le paquet grep" #~ msgid "version \\version{} -- \\year-\\month-\\day" #~ msgstr "version \\version{} -- \\today" #~ msgid "All patches are published on \\url{http://patch-tracker.debian.org/}" #~ msgstr "" #~ "Tous les correctifs sont publiés sur \\url{http://patch-tracker.debian." #~ "org/}" packaging-tutorial-0.12/po4a/add_pt/0000755000000000000000000000000012233730346014210 5ustar packaging-tutorial-0.12/po4a/add_pt/pt.add0000644000000000000000000000063012233730346015304 0ustar PO4A-HEADER:mode=before;position=\\end{document};beginboundary=NoT_In_ThE_DocUMEnt \section*{Tradução} \begin{frame}{Tradução} Américo Monteiro \hbr Se encontrar algum erro na tradução deste documento, por favor comunique para \href{mailto:Américo Monteiro}{\texttt{}}. ou \href{mailto:Equipa Debian de Tradução Portuguesa}{\texttt{}}. \end{frame} packaging-tutorial-0.12/po4a/add_es/0000755000000000000000000000000011674164434014203 5ustar packaging-tutorial-0.12/po4a/add_es/es.add0000644000000000000000000000055111674164416015265 0ustar PO4A-HEADER:mode=before;position=\\end{document};beginboundary=NoT_In_ThE_DocUMEnt \section*{Traducción} \begin{frame}{Traducción} Omar Campagne Polaino \hbr Si encuentra algún error de traducción en la documentación, envíe un correo a \href{mailto:debian-l10n-spanish@lists.debian.org}{\texttt{}}. \end{frame} packaging-tutorial-0.12/po4a/definitions_sty0000644000000000000000000000071311647327374016126 0ustar % po4a: environment frame []{_} % po4a: command *usepackage {} % po4a: command *usepackage []{} % po4a: command *newcommand {}[]{} % po4a: command *renewcommand {}{} % po4a: command *lstset {} % po4a: command *usetikzlibrary {} % po4a: command *setbeamercovered {} % po4a: command *beamertemplatetransparentcovereddynamic % po4a: command *pgfdeclareimage []{}{} % po4a: command *logo {} % po4a: command *AtBeginSection []{_} % po4a: command *frametitle {_} packaging-tutorial-0.12/po4a/add_ja/0000755000000000000000000000000012234410763014156 5ustar packaging-tutorial-0.12/po4a/add_ja/ja.add0000644000000000000000000000056712234410763015232 0ustar PO4A-HEADER:mode=before;position=\\end{document};beginboundary=NoT_In_ThE_DocUMEnt \section*{翻訳} \begin{frame}{翻訳} このチュートリアルは 倉澤 望 が日本語訳しました。 \hbr この翻訳についての意見・要望は\\ \href{mailto:debian-doc@debian.or.jp}{\texttt{}} にお知らせください。 \end{frame} packaging-tutorial-0.12/po4a/definitions0000644000000000000000000000113011664174742015217 0ustar % po4a: command author []{_} % po4a: command frame {} % po4a: environment axis [_] % po4a: environment frame []{_} % po4a: verbatim environment lstlisting % po4a: environment tikzpicture [] % po4a: command title [_]{_} % po4a: command -date {_} % po4a: command -textbf {_} % po4a: command hypersetup {} % po4a: command tableofcontents [] % po4a: command newcommand {}{} % po4a: command renewcommand {}{} % po4a: command mode % po4a: command +usepackage {_} % po4a: command *usetheme % po4a: command *br % po4a: command *hbr % po4a: command *hhbr % po4a: command *small % po4a: command *seprule packaging-tutorial-0.12/debian/0000755000000000000000000000000012234415552013334 5ustar packaging-tutorial-0.12/debian/control0000644000000000000000000000202012234414604014726 0ustar Source: packaging-tutorial Section: doc Priority: extra Maintainer: Lucas Nussbaum Build-Depends: debhelper (>= 7.0.50~), latex-make, latex-beamer, texlive, texlive-pictures, po4a, texlive-lang-german, texlive-lang-spanish, texlive-lang-french, texlive-lang-cyrillic, texlive-lang-cjk, latex-cjk-common, texlive-latex-extra, texlive-fonts-extra Standards-Version: 3.9.5 Vcs-Git: git://git.debian.org/collab-maint/packaging-tutorial.git Vcs-Browser: http://git.debian.org/?p=collab-maint/packaging-tutorial.git;a=summary Package: packaging-tutorial Architecture: all Depends: ${shlibs:Depends}, ${misc:Depends} Description: introduction to Debian packaging This tutorial is an introduction to Debian packaging. It teaches prospective developers how to modify existing packages, how to create their own packages, and how to interact with the Debian community. In addition to the main tutorial, it includes three practical sessions on modifying the 'grep' package, and packaging the 'gnujump' game and a Java library. packaging-tutorial-0.12/debian/compat0000644000000000000000000000000211647327374014545 0ustar 7 packaging-tutorial-0.12/debian/packaging-tutorial.doc-base.es0000644000000000000000000000063612114445563021135 0ustar Document: packaging-tutorial-es Title: Debian Packaging Tutorial (es) Author: Lucas Nussbaum Abstract: This tutorial is an introduction to Debian packaging. It teaches prospective developers how to modify existing packages, how to create their own packages, and how to interact with the Debian community. (Spanish) Section: Debian Format: PDF Files: /usr/share/doc/packaging-tutorial/packaging-tutorial.es.pdf packaging-tutorial-0.12/debian/packaging-tutorial.doc-base0000644000000000000000000000061111647327374020531 0ustar Document: packaging-tutorial Title: Debian Packaging Tutorial Author: Lucas Nussbaum Abstract: This tutorial is an introduction to Debian packaging. It teaches prospective developers how to modify existing packages, how to create their own packages, and how to interact with the Debian community. Section: Debian Format: PDF Files: /usr/share/doc/packaging-tutorial/packaging-tutorial.pdf packaging-tutorial-0.12/debian/packaging-tutorial.doc-base.de0000644000000000000000000000063512160621356021112 0ustar Document: packaging-tutorial-de Title: Debian Packaging Tutorial (de) Author: Lucas Nussbaum Abstract: This tutorial is an introduction to Debian packaging. It teaches prospective developers how to modify existing packages, how to create their own packages, and how to interact with the Debian community. (German) Section: Debian Format: PDF Files: /usr/share/doc/packaging-tutorial/packaging-tutorial.de.pdf packaging-tutorial-0.12/debian/packaging-tutorial.doc-base.pt0000644000000000000000000000064112233730346021143 0ustar Document: packaging-tutorial-pt Title: Debian Packaging Tutorial (pt) Author: Lucas Nussbaum Abstract: This tutorial is an introduction to Debian packaging. It teaches prospective developers how to modify existing packages, how to create their own packages, and how to interact with the Debian community. (Portuguese) Section: Debian Format: PDF Files: /usr/share/doc/packaging-tutorial/packaging-tutorial.pt.pdf packaging-tutorial-0.12/debian/docs0000644000000000000000000000006711647327374014225 0ustar README packaging-tutorial.pdf packaging-tutorial.*.pdf packaging-tutorial-0.12/debian/packaging-tutorial.doc-base.ru0000644000000000000000000000063612234415415021150 0ustar Document: packaging-tutorial-ru Title: Debian Packaging Tutorial (ru) Author: Lucas Nussbaum Abstract: This tutorial is an introduction to Debian packaging. It teaches prospective developers how to modify existing packages, how to create their own packages, and how to interact with the Debian community. (Russian) Section: Debian Format: PDF Files: /usr/share/doc/packaging-tutorial/packaging-tutorial.ru.pdf packaging-tutorial-0.12/debian/copyright0000644000000000000000000005272412114467306015302 0ustar Format: http://anonscm.debian.org/viewvc/dep/web/deps/dep5.mdwn?revision=174 Upstream-Name: packaging-tutorial Files: * Copyright: 2011 Lucas Nussbaum License: GPL-3+ or CC-BY-SA-3.0 Files: figs/openlogo-nd.* Copyright: 1999 Software in the Public Interest, Inc. License: LGPL-3+ or CC-BY-SA-3.0 Files: debian/* Copyright: 2011 Lucas Nussbaum 2011 David Prévot 2011 Cédric Boutillier License: GPL-3+ or CC-BY-SA-3.0 License: LGPL-3+ On Debian systems, the full text of the GNU Lesser General Public License version 3 can be found in the file `/usr/share/common-licenses/LGPL-3'. License: GPL-3+ The files hereby included are free software; you can distribute them under 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. . On Debian systems, the full text of the GNU General Public License version 3 can be found in the file `/usr/share/common-licenses/GPL-3'. License: CC-BY-SA-3.0 THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. . BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. . 1. Definitions . a. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. b. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. c. "Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. d. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. e. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. f. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. g. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. h. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. i. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. j. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. k. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. . 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. . 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: . a. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; b. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; c. to Distribute and Publicly Perform the Work including as incorporated in Collections; and, d. to Distribute and Publicly Perform Adaptations. e. For the avoidance of doubt: . i. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; ii. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, iii. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. . The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. . 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: . a. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. b. You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. c. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. d. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. . 5. Representations, Warranties and Disclaimer . UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. . 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. . 7. Termination . a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. . 8. Miscellaneous . a. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. e. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. f. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. packaging-tutorial-0.12/debian/changelog0000644000000000000000000001437112234415515015213 0ustar packaging-tutorial (0.12) unstable; urgency=low * Add Japanese translation from KURASAWA Nozomu (nabetaro) nabetaro@caldron.jp>. * Bump Standards-Version to 3.9.5. No changes needed. * Fix typo in ru's doc-base file. -- Lucas Nussbaum Thu, 31 Oct 2013 09:56:38 +0100 packaging-tutorial (0.11) unstable; urgency=low * Add Russian translation from Lev Lamberov . * Add build-depend on texlive-lang-cyrillic. * Russian translation update after review from debian-l10n-russian. * Add doc-base file for Russian. * Add Portuguese translation. Closes: #724782 * Minor fixes in portuguese translation to make it build. * Add a README for translators. -- Lucas Nussbaum Tue, 29 Oct 2013 20:40:55 +0100 packaging-tutorial (0.10) unstable; urgency=low [ Lucas Nussbaum ] * Change contact email to packaging-tutorial@p.d.o. * Mention ITP bugs. * Added documentation about the BTS. * Mention localized lists (Closes: #719925). * Update version in .tex. * Add slide: checklist before asking for sponsorship. * Improve 'Contribute' slide. * Update .po / .pot files. * Update CDBS/dh stats. [ Helge Kreutzmann ] * Fix two minor translation issues * Update German translation [ Cédric Boutillier ] * update French translation * proofread [ Jean-Pierre Giraud ] -- Lucas Nussbaum Thu, 12 Sep 2013 08:21:00 +0200 packaging-tutorial (0.9) unstable; urgency=low [ Helge Kreutzmann ] * Unfuzzy strings [ Cédric Boutillier ] * (fr) update translation [proofread by Baptiste, JP Guillonneau] * (fr) proofread [Philippe Piette] [ Lucas Nussbaum ] * Update translation files * Add a debian/rule target to warn translators. * Fix typo. Reported by William King. * Add build-dependencies on texlive-lang-{german,spanish,french}. Closes: #712357 * Fix minor typo. Patch from Simon Ruderich. * More minor fixes from Simon Ruderich. * Use fragile=singleslide for a faster build. Patch from Simon Ruderich. Closes: #702608 * Update URLs to devscripts Vcs. Spotted by Niels Thykier. Closes: #704194 * Manually unfuzzy french, german and spanish translations. -- Lucas Nussbaum Thu, 20 Jun 2013 18:46:19 +0200 packaging-tutorial (0.8) unstable; urgency=low * Update spanish translation. Thanks to Omar Campagne. Closes: #681338 * Add improvements proposed by Helge Kreutzmann. Closes: #672683 * Add new mandatory targets in debian/rules. Thanks to Julien Cristau. Closes: #689287 * Fix ES translation to make the package build again. * Re-add note to translators. * Fix what I could fix in DE, FR, ES translations. * Add doc-base entries for .es and .de. Closes: #680180 * debian/copyright: Document copyright of the Debian logo. Closes: #685904 * Fix gnujump URL. Thanks Henning Sprang and Stéphane Kanschine. Closes: #685359 * Check for wrong version in .tex during build * Clarify that mk-build-deps is useful if package not uploaded yet. Closes: #702119 * Include many fixes from Francesco Poli. Closes: #686594 * Mention Debian Maintainer Dashboard. * Integrate more fixes from Francesco Poli. Closes: #695534 -- Lucas Nussbaum Sun, 03 Mar 2013 11:50:43 +0100 packaging-tutorial (0.7) unstable; urgency=low [ Helge Kreutzmann ] * Add German translation. Closes: #672682. [ Stefano Zacchiroli ] * LaTeX markup: turn \url{} into hyperlinks using hyperref * LaTeX markup: remove unescaped \textbf{} within lstlisting * DEP-5: point to the policy version of the standard [ Lucas Nussbaum ] * Drop the use of LATEXFILTER to ease possible backports of the package. That script was renamed in latex-make 2.1.17-1. Closes: #676748. * Mention that fakeroot must be installed as well as devscripts. Closes: #659126. * es.po: unfuzzied a few strings that did not require language skills. * Bump Standards-Version to 3.9.3. No changes needed. -- Lucas Nussbaum Wed, 04 Jul 2012 11:47:13 +0200 packaging-tutorial (0.6) unstable; urgency=low * Explain -us -uc when building packages. * Mention dch -i. * Explain how to install build-deps using mk-build-deps. * Explain how to unpack the source with dpkg-source -x. * Improve title of VCS slide. * Give example of package adoption. * update po files * update date in document * update po files -- Lucas Nussbaum Mon, 09 Apr 2012 22:32:06 +0200 packaging-tutorial (0.5) unstable; urgency=low [ Lucas Nussbaum ] * Minor updates to french translation during preparation for Capitole du Libre 2011. * Add a debian/rules target to regenerate the version and the date in the document. * Use newer version of grep with recent debian/ubuntu releases due to the ld --as-needed change. * Do not mention patch-tracker twice. * New practical session on gem2deb-based Ruby packaging. * Add slide on backports. * Initial import of spanish translation. [ Cédric Boutillier ] * Use changelog to determine automatically date and version * Update French translation * Add subsection for answer to practical session 4 * Update POT file * (fr) proofread [Thomas Vincent] -- Lucas Nussbaum Sat, 14 Jan 2012 07:59:53 +0100 packaging-tutorial (0.4) unstable; urgency=low [ David Prévot ] * po4a configuration for the translation process [ Cédric Boutillier ] * add French translation * update debian/rules to translate documents at build time -- Lucas Nussbaum Tue, 18 Oct 2011 07:27:33 +0200 packaging-tutorial (0.3) unstable; urgency=low * Merge practical sessions answers into the main document. -- Lucas Nussbaum Fri, 26 Aug 2011 12:57:56 +0200 packaging-tutorial (0.2) unstable; urgency=low * Improvements after tutorial at RMLL 2011: + Use apt-get build-dep to install dash's build dependencies (works on Ubuntu too) + Use --no-install-recommends when installing devscripts + Slight reorganization of the CDBS slide + Deep reorganization of the last part -- Lucas Nussbaum Tue, 12 Jul 2011 10:59:40 +0200 packaging-tutorial (0.1) unstable; urgency=low * Initial Release. -- Lucas Nussbaum Wed, 25 May 2011 21:14:02 +0200 packaging-tutorial-0.12/debian/source/0000755000000000000000000000000011647327374014647 5ustar packaging-tutorial-0.12/debian/source/format0000644000000000000000000000001511647327374016056 0ustar 3.0 (native) packaging-tutorial-0.12/debian/packaging-tutorial.doc-base.fr0000644000000000000000000000063511647327374021145 0ustar Document: packaging-tutorial-fr Title: Debian Packaging Tutorial (fr) Author: Lucas Nussbaum Abstract: This tutorial is an introduction to Debian packaging. It teaches prospective developers how to modify existing packages, how to create their own packages, and how to interact with the Debian community. (French) Section: Debian Format: PDF Files: /usr/share/doc/packaging-tutorial/packaging-tutorial.fr.pdf packaging-tutorial-0.12/debian/packaging-tutorial.doc-base.ja0000644000000000000000000000063712234410763021116 0ustar Document: packaging-tutorial-ja Title: Debian Packaging Tutorial (ja) Author: Lucas Nussbaum Abstract: This tutorial is an introduction to Debian packaging. It teaches prospective developers how to modify existing packages, how to create their own packages, and how to interact with the Debian community (Japanese). Section: Debian Format: PDF Files: /usr/share/doc/packaging-tutorial/packaging-tutorial.ja.pdf packaging-tutorial-0.12/debian/rules0000755000000000000000000000231412205134372014410 0ustar #!/usr/bin/make -f %: dh $@ #extract version number and date from Debian changelog VERSION := $(shell dpkg-parsechangelog | grep "^Version:" | cut -d\ -f2) TEXVERSION := $(shell grep 'footnotesize version' packaging-tutorial.tex | cut -d ' ' -f 3) YEAR := $(shell dpkg-parsechangelog | grep "^Date:" | cut -d\ -f2-5 | date +"%Y") MONTH := $(shell dpkg-parsechangelog | grep "^Date:" | cut -d\ -f2-5 | date +"%m") DAY := $(shell dpkg-parsechangelog | grep "^Date:" | cut -d\ -f2-5 | date +"%d") override_dh_auto_build: # version check if [ $(TEXVERSION) != $(VERSION) ]; then echo "Wrong version in .tex: $(VERSION) != $(TEXVERSION)"; exit 1; fi #translate source files before building pdf po4a po4a/po4a.cfg --verbose dh_auto_build override_dh_clean: dh_clean #remove translated source files rm -f packaging-tutorial.*.tex debiantutorial.*.sty override_dh_compress: dh_compress -X.pdf update-version-date: sed -i -e "s/.* % DATE - use debian\/rules update-version-date/\\\\date{\\\\footnotesize version $(VERSION) -- $(YEAR)-$(MONTH)-$(DAY)} \% DATE - use debian\/rules update-version-date/" packaging-tutorial.tex po-call: cd po4a && podebconf-report-po --postpone /tmp/po --notdebconf --call packaging-tutorial-0.12/Makefile0000644000000000000000000000050312215670743013554 0ustar include LaTeX.mk printable: pdfnup --paper a4paper --no-landscape --nup 2x4 --frame true --offset '0cm 0cm' --delta '0.5mm 0.5mm' --scale 0.965 --suffix 8 packaging-tutorial.pdf pdfnup --paper a4paper --landscape --nup 2x2 --frame true --offset '0cm 0cm' --delta '1mm 1mm' --scale 0.96 --suffix 4 packaging-tutorial.pdf packaging-tutorial-0.12/figs/0000755000000000000000000000000011647327374013055 5ustar packaging-tutorial-0.12/figs/openlogo-nd.svg0000644000000000000000000001531711647327374016026 0ustar ]> packaging-tutorial-0.12/figs/openlogo-nd.pdf0000644000000000000000000000616311647327374015777 0ustar %PDF-1.5 % 3 0 obj << /Length 4 0 R /Filter /FlateDecode >> stream xUM+ uk1Ex6p~IכVC$A $@}gm)u b>urǓ3bu̶{j.V8D%ODC={zm\Hqnӊ7IZJXwSJxFvN4V!lrtq.ۊl|נI[4"^ܰUoO+}7sq 1.>!dBi +UMmw |WYw%.*p2&m;VJmvUW ǚ0RUjWC<&Pl @&x5}9"XdZoQ}]E1KG,&Iꎱ7󷷊X "3=^تR>R9^WnFSab )x3ͲS|BV>Hq}JZPUX(eU`3|J1tRa\ˊ|R;WÕ0V1]Ԕ3A)# -KU*́CCi:yv.`תO3·V,=@qVMZ6/%$IR,nʬA]ȖX0ֻTa;z*"rG@ɢZBõ44a"* Gz}@kD oFv5ē!W]qb]iIɯh2']'vˮsU@:^Q$gMO$Px\Jf+op]U8l!MRQs+\muRU4%H&y@ה@y nz`ȐqXy)U4C,k~7fn)z{;sSW| KV]brr&iqHmAE)CH3Qpfy aI9} yS/SaI2&3PSja\HE@UIR1CM6o T Xa#bTZqNXzN[^7>De̓+xCK$*q{ C=cEhQo"5*װv|) 9{㿔B|22]IeHPܰ٢y&KJ@cc}3F 3E=SW[Y Ax:xRh+ 8=:e'> RJu-> >> >> endobj 5 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 69.632797 86.755997 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 5 0 R ] /Count 1 >> endobj 6 0 obj << /Creator (cairo 1.10.2 (http://cairographics.org)) /Producer (cairo 1.10.2 (http://cairographics.org)) >> endobj 7 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 8 0000000000 65535 f 0000002701 00000 n 0000002417 00000 n 0000000015 00000 n 0000002394 00000 n 0000002489 00000 n 0000002766 00000 n 0000002893 00000 n trailer << /Size 8 /Root 7 0 R /Info 6 0 R >> startxref 2945 %%EOF packaging-tutorial-0.12/figs/gnujump.png0000644000000000000000000042522711647327374015264 0ustar PNG  IHDRsRGBbKGD pHYs  tIME  %ξ IDATx]wD~&[ћXh UA^"H"]tH!QAtCZ"weodglv0ew3;L6ߛy y.888888888lțuAU"@qrx ןp/qppppppp[ HuU*kլOA\|<"#"1ة@k[ G"`,f=i_YJAt&g * w5ި\v)Is*Z~ѯ>τ㿯`ۍ$GWQL4k9bϥBm7kr8xѻnbk1TqppR &㷕=|k j5/aHB7k^Bf2cɗ I"n0v&;Dp[O꿃"t Z9QgK[VsnB1hNeDYt~|oKSoǠE*^6)iۀךT~ B<x@8qQa:ulЪM[|3n4u3NW<(Oʹw܉PTRڴAP{v>P?=mOKK2j=w`Z6j_`_afִ `EPPxdj+>/ mC'_bR{Y^zy`x0Xl!x4ޭ?ayK吡H=9^R}^Bպ]1s>BC:aZp@4#=ðwm۰:f!w eXW[~-VI9 CzaCrNð+ԬV ~I·KAת1rru~6N&;.|+E #枿tQjT8Zj^L:Dѳϧ7!1) Ϸ]ö;+wo=R317]" 1z0N/@pe^ z>5&iKk6.3Wp}ԨR'O :/Q`|ԩ>*WQˏ]!fr\puw$ N3F X]@%nP'$% HKs@HOOSgX/W("x/ u=-\w6%6\nK;Xt1FwEFs5]rz+3cH1e#$V4YB$aqg|tOzɳ, N;HDLW PՊOFXz<9__.\Isiа{D1Y1z7_gr>~0r&Z|ӫ! ƌ] XP;ʊ;WEݟҽ<ipsǷڳdl?y͂;W킔 vNPjU0jJ$dH8r'!4-WTF#Wkr $!eצ(_"m"{1W ^r(Ɂ*v4{eJ}T~dE[t2Y>χXqQ` )'p#@UЫx@@&-f$wN$ NkA'{QQAlmDQS䀔KwԠ(@5yw.:>t0N'虨jYs?s.ft7/T *Kp.+ynhĨowT([_FuxV5 g W~k>ckG I𩫝t$IX1Xe-~!/1^\;iYUA(?hv5 %%^"/ӟ4ey =|pr8n_Eg;qy+љٱIH"^MDX\eFݞߙL#6Ghr#"wTz>AAA~3ujMYsIbSF -3culm%:xT[-!/z▃=w%~.ҿÚNS}BQTj)bjuC$/mwV_a֮[ )Tޏ; fOO8 ۣ]h1 w(2Ғq)H[fǮ́m=}$ZF[6p}8{ "@ o~toݙ!n}uPDNʬ+HOa$l >?[7~1hm?V VTgGC1|*Wq8XM x\hFIg'%7Of ]@$n,B ޕp- J^A TYĕǵ:$}>J嗟iBB6_1d1wxrܴ*)M3g(,  ^N>'GG22dzr* "򀏃 ( F'yp>@rpppppppp< 988888888x@#al6w$Ip:HOOGjj*p8888888|/`lEBIԠO (%IB||<޽3نf͚m۶~l2@=,Z(J.RJgE\0B%k׮!66'NÇ#{/r<><%ਨ([xwp/JQ!w1Ӊ'Obعs_Ϋ-DFFRSSDBCC lٲxPD -[KFƍ[m^:.I!A}!(((XGƝ;w2^mP͓p8Z'+أ?+88888889>X|y 2קO?~0O޼yQvmԫWsܹcƌAjja 6dIeΐXb(^8*U *fvڅ3gڵk ,;;ѸqcorG͛8uE׮]aX|_ NApp07o> `޽2dH,vhР *t̟?? nݺnݺ򧤤`̙X~=2988888g}3:rHرï6J*6m 99#G4;e8Ϣ(bĈL*WUb̙3=$PL,BФI&ϗ|99fⱔ(ҐcO2rXdItݯ2Zž={aӧ1h ZN¡$ ùsPn]8888d `^PNVtbҤIزeK5eCΜ?N7d!225bڵkquS7neYBsVŋ{S 6~=zq׾+{ Bԗř`2e2:|}߻w;UUb+G+]@,YŋGPP.a+m[7oĶm }7o^IþKCaժU75N,Xn>PuAƍ} (HJJի~Gxb3e˖_=z@rr2ݛevii3xl߾:jԨTzڄ,7hm}2g(?k릃M|g}WPX1+WyU#3-T4i}yf*TjBRs(Q¯s͛㭷˜1cpI~W3Y+W"$$$8|سgO8ZDGGRJ:u)kךncfG>wfF&Mtg2cw~йsg<쳈ƍe"22]tA5wܹX|9Ϗ:VZs֯_۷ƍx1p@)RįгgOہ;99 6DfЪU+X,$$$`غu+_Fޏ:==cƌ㱇 (BYQQb̛7вeK-yavh{;v,J(_~ڵܹsq9ۦyZlڵìYPfMĠ}Xd .]4={s|!Cm۶X,ظq#ڴiEp8~=4e_RJ#g/^yyqDQDZZqĉL5ydS|9=uEQ7h+[ٳy4hr2_-ZCh敐[oxx 9dikYT)/ݞ7mϞ=>ogT>;ܹ7oP IDATd-Z0fONNƪUtyQQQ۷.nK{lpႮϟϴOtޤ$L0vjb͚5~O?E\\Cppp<+Wj! B~X[]3=$ItX>ڛӳgv>E\ 6~C/ TR{:qGƍu?z|p8`ÇB it=U\͎ٔ]{o߾ϗ_+W.ٓ888kdC /l:x1oQп;w. "*\v uAdd$o(ѦMg͜={v@咒ШQ#˗̃42eJ}nԨi} nQ|rNƍtbĉ>Zj@h(d]z۷og}/܏ߊlܺu_]Exx8OOľ}/c?(}}:`?IV`͚5u쑂yyȝqh׮OiM4FrA hFZuFƍj't"&&tZk]hժ{ _YQzuɓP_;ْ,X@W7:@ț7/>4ٌf]J;w Iȱ? ˩2=YQYJƓQQzuk5 զ'yvbॗ^w ֜h$66111h޼q4_yEtt4kz[RJ=Z ?իW uڷo5-'tΝMh9`w}pׯTfZ޽EJMM?3_&M13@@~JYov;3Ƌ/#ppppxܑS -]OζK*fPv!11_}|}k'3k93q(=,TCÇǷ~ i/͛cѢE><ʚڐUHJJҥK}>0@˳WNO>/}E#|ᇆ6b ݻw7AJ7:L0^CT˗/S|KEQ_/ZֿFme7]DY~ :π@o7TcJYŕdi#GOaΊy tH7מəb /^?1}in#N ݶ93tZf9888tΝða0b/鉬O>z*Μ9tҏԉȝ;7>c\v ˖-ױc,i/'8?Ce?`ߝ ݷo߀tzj20a<QcB9rFJl6/`&ȷ$yl9dmdhN + 8888EXV{Att4.1==9Ao?dKŭcq Xt)N:eo֬Yٙ]FuXiF|>ӫ3iu#Sujy|rzkvdoH嫍pㆇhގ;ug^#N￯; K/Pm@?~2OhyWY*/"m/Fe g0z{=gXMX3fh"SS0ږ 6`ǎ1b jeSO=5k2u:, zpy}fpzx ͖)Q ;w=Eƍ/3@#? .cGBk׮]6ligPZG$TX8s ]5ۦGAgQʼn']㱄Q1d6o\L{X3?yO?t|Ҍ_9 &^}Τiu!g1saim0zŨ|v={988[X5N}<TmNvڨX"]+W/Ԁ63]}ts Bpppn8vw0c jӧ1`16͔{nfgΜ14 (\0VXכŞ3gm~i:vc(ҾELh۶me`%.RSSѫW//.rܸq^6 hVxŊH=A۷ϴǍpM{ k~PhQ9^u2SY`驅3g`ԨQ^/4}޽~e*88uEPP=Wf,>/.;imUf9"q 2¯,mszvҋ̎Ye޽(QMƍ{t:1zGz倃_1B aر>w`СCX`vwً/ȑ#̴%K>GEEa(]4ۇٳgU}Yb֭[3g \߾}qQ yݴiSCb?I&rSRRLQ>裀OJJ·~3ߣ1bׯVZ}UVaxԩW7~x/l̓')1cƠz/,S>R{>3abAʕQR%ٳ.\ƍ<;wOBe6u<06B.]w3.]B&MHmADqM 0KqA0?<:tٽgh2Y}4͛7MqXu+ŠAPB4n*U2gdd~ gϞ_|Cphܸ1jԨ3g>K{^֭3=Bk{꥙vՊ^x+WFDDN'/їqQl(NAԠL'&&n{n+W\sN'l6Ñ+W.XVƍxd}f{zh%3}fc>tPlM#wj9 >Ç#O<^:ʗ/%J _|FFFݻ/СCزe 裏teltnݺ66f3oQFY"!d`1aY;vK/g}}AnpA>|ΝիWQrryrJZ 9릥cXf#)~z8NuyhFHofѣN>K.Yܾ} +SΝ;EWl6鲒$ĉXv-lْeg_/9j? x۷/ʗ/w}5kDHHWի։$upĉؽ{D-Μ9 ʧt:t:p8͛Ell\G_7ow_{-ǁT[V 556 ݻwg?ݻ? YfaΜ9Fpp4ps4}_|~¬chN8ыk_]M5~14:GA}6fpppp8ZCPPʕ+ҥKTR(X ł$$''#!!ׯ_ŋq%?~/<" AB z(bqqqr`…H`v˖-ppppp<0Q3+e󝮃06 =dо/|N0Ѯ>3vS/ _F2Hd)gѢ""HOIHUNo,ǎGh|E8@'nt|M`Pީݦygu@Wҩ[ێ:z4:0}2> F.ӯ>5:Ɛ1揭Ι$_av\;y@G\C< 988888888x@rpppppppp#[x<@b|\ )>qqqHJo!DcT@"($D]y 2O^9"A޸EJQ۸vz$B*~>s]kX0O#]EH1IMIѪrs\>.IR$tY3S!m@ J"lܦ$ "FUAD W}"lF.]E*vz׮3DѩM۰a/Q-:y?UrJoBTLj(BD$&"84ԕW#: @$ADXd!*#ЈHEF"<2B#"5*I% &5$tݜtwYɩLT*mfq=EMM'WpOMr(CM?{]]c>cהWHGMߵ1Q15}*m:pHMmi,Wۡ_1-E-x>wD$u긘>8þ_AI}rSJTtjvy]?|QQ?/ 5{mVN jLPӦjM0F>._;掤B+kw:; {1l[>v5}ͼp{_(PMߺ: coÿvv}W1wSMz:.Pwo]{WDu|%)HSOKQwsgX^T߷GWd^KGR\:Դ=ˮ@Mm< f  @AA;{ xe ?yN(k~@MtUv+yv7`Zm`Fu [A?hdewV?hcq݄;@z# 6H`U7N+myaW> '> @MA3<֩[U $WXǠcPfoP };D~ҏxJcJy]7h^p!z'_ն@ށtÓ[x`˟ֻn!Ɲi8un^GT۴KNOu;;vT*6|7M{.PLƏD~CܜJ wn׃=ҼiۨF`b ]N.`~*Mn競MB<شF-_!=x>5kĴ?vz=?0{!^OZW)ENcPNJ  g} qN_cNzrTмsX|4ܷO^} sv:Q W<8=뼎kԹlװFǬUԺ]h~b#ڷ ݜ5cwg@hgc&b.{NFy!);UHLfzpi4}2tɤkک?)I~_o7og_}_}=_՟*Uῷ|hn;Oۍx'8(J}ћ3gQij^\=;ׯ"o^|C#,2O)Ra=O}%μQ&9Pt@. U6#^S8S5=1NdՎl@ZE+9kNi9}5?TJ漝S3I5h{M09cG\`Z,n5}p}ܳF0ۤvw(xs~S*SWdq'*Ykѿyj?bV?}w};d5] W[V*(5qm:9}Mw/7.[) @4u~ >^ӕ<| J36S-?17yi,V47r5^I\7@_;៍G37_&ݿ?fw8M+B\}Xܾ.ĕI0'}B=tQE5!;9W􋧬Y, O'J As5Ф$}Ermܿ0Jv@C('c IDAT@'= @>O)b1@'slN,В@O}6~' }k*@%= }gwV Q7VzkIVٶ䛋Ze-s ᖁq?KPfqx4/&9KeY8m4@׮] b<"@1Z#9T@ZMɯ^~{㚪]pE/rh>/@):/T}U{Z~ @i@AU:7Rt~1tX_ Yxo9׸:>$!Ȏd@"xjއ2tݼE}˥/H۠بRcK9D9Ԍa=:  żti(j9S @m}'$UPÏ :,ڄ: T8o| w5=9k Ǎ@>_zѼSG]?s| [e@/NFЃE;.Jo_:ZBHڮzg襓Hnb/KmFP8Ό I"= ?wP$Y+k`x=rj[ΓcqtYP{oΖ[SP#VMwJ:ZΚ[p xsW8U_۫u>ܮ:Z"WHw}?(a/jQ R1]?C܌:iti|tuzu 0Ɨ['MBDf 1? d8/kt ›SJ{exJ}烷N{|T$``v,ΠVPI[^~ :`KȘ;2Q ^2N$`Ŵ0k~uQSαeuQ5}o,Οb[^O}_|}}'{7Mi4'jNbxa@-׏K—!/xh@Vw!0A'dNP~ 9+taԭ|=(Ȳd3蔧uYZ@mx:C 0pN_vW.):z,@:&MY&lmP?:U>Աϗ \A:fuY):z+:zeҟi@V ~#Np#sOi@VO@6i%^mzhh(7o^щ'd$''JW[t)|M(Pݻw"P>r\Z`Zf:t@J0c駟b3gtV{]v}"Ο/icAz2Ct )SFѓ<>L `t8c7f2&t:/χ:Ow_?vr*@zL} t?\:O\[Y.I*S<.qyYcX@WPάt=lr='N_:bWJ~EkYI(:1CK ЃEHk N=LRyaCӰQL>(7j ׾L@SCPU@ZO?yҼPEPYu=wQqjk=@xY.e_:y P_ :<9^:{{]1;8^/"^̤+"EIuQyud@%~ kKPɧr?9dG}Z~RM{SEsʎLj9kpMVP tO>#D=@I݀܌t:f#;8=u?3:t:,N-?/*t{HNJtE`R4IQee!?|_vj>޽{O o5 AP9á\l^_rB؜*8Sܸ}p{z uq)K\?tږty\y߾~:mhE' [5a)t} 6,?:}'VS2?hX~X뵆_6Y  qݜ2w ժ|߸lJp3:  }4eywv:?.V0K'tZ[;m0|? aö?n]\ra-<._'chk.jh?o__龖9#C aaay?~!_z0y$#1<@b$!1>Iq7guY{&>e~בHQ%.VcZBT@VP`H=lGsƶ[n1KnӖ,>ZߡQ^\;x6=@ww^:.ޛ_:=;u8 @Z  i#4}[C_g.@e5x恷B?erJ:mkc_X ù`Φk9]#̧`AxsJs4r8U^nu oNRrD˗!Q' aɄ7TٮB)"zc#uuc_VP):ԖU8{{SoWʱ$k`ޛp5g;f=ϊ Kc_@VZ]:r*i@Vy6?::Z@F:`iWuYlf|@;sFg  +},d9=0a:~Y]):t=@3Cth@V!|fyQ?ߩVfuY:=?hl%]k_Cju(o"ubvt#@z7  {ޕPxs1?ېKr628=ӡph@Q:^zyqFzJ7\Vuh߻|/]Vխn@/΢FP?,]@HiԁU?d!U~CT:{Z@:@0mPUPQ>ػjZ,j Uۦ F,1k]mzM !:{횘NmH:ڗ uXxON%9yk_dӗ5:^8R+: ׊8wݐDQQe%QDHPcHj znو-0pBmZ@۾=c$INFy)5 y}hiwoPuzu|H:o'{Hsv:}%IGT@ZS(\Ynu0u)_&ܿ\ԾSST@MQ}%xs<ܦ@w9x_~{Ʃ7mwOs ipdg09]`09a'`Xrڎ 7nE wWd89{ti 2ꪫkNS ]PQ0D1gL"("HTP@TD"D$tTWթS=w!ysSv׭P =gj!|S@j37Zb_ﻴ.S+;/njḕ܋i_đCfsu~SM_y/==Bi4@GᅩjU~Zs9rS#9鍞&pKL?f pPjsU:aj|eƿPmJC9$?&K2ZW.υX@9&9IH[pչ'NOj{!ݘT m0IN3 @=M@m9nWVSv 9i^oHMQ  O23a|>pNBp>Q.Ih0y\0~}\ܔp|== _s @9o׼u`+ٿ;9>8Or|qu~V_r|siD(}q^9?~>+a|'E'" a8~,r~GϜ!9su,B~wB~O n(8N|%p7 4gu{&+:ɓTWL Ѻa2[lTZjZjr+VD@@&trU[i&Ie 4ALԆYcWo6]暾Ug_m[X@R\ AkWzOd=Ïֿxl|Ա:0<nI6P9X HѨžڷ 9MevS${xXLT^GY ?V=⶧g"fܺ:ZFcc1Uz+^ ;p͎;Cf-44mjʛHX꯮a?mZCP"O}B ώqE8CG9M_:^});īY{kp_׌&# ㎶QߨfQy;4Ph[H5k,4.[I"({S@KI+})9Gt 7X׆c-X`>?P}LRU50j8+gU*TD)r} }ȶ"v {2 Hr]͔%l8TA׬Eֲ,8 gsuo4Kt~e|}POr PVcOwUGpc|m 휏1z|9@to]o emf9 &.go]-4I{#; -#p'rbn[ϭǔRtFմMCWa ^7=mYiv R1F%Эr5s~yWuXK۾ot*33/>f|ZX_q}@5ˊEL֚OJ!io:} [ `k-:M[JoLZN.鷀Yˆ~揾 5Es|@$t5_ka8Lr)k}@r]?i|@M9\Ά_9riJt2|8@nw.awqet@+o = r@z++P9{Omrq/?G4n)Cq};Hl8ۿn鼭\'/W{0&6PMSK-RK-az4 `Y2f4o"r A-6Y@7~JMջI c?Ӭ)z-ѽMqa3޵9oˆ7qVVh[s]to.Ѝ,/dpE@9K 7@'.2q)͹ˍS , ьe|q -Yrr[q]҇o?tS9 lMX8N?PEs2,.Ɛge Oi ] a2Phx~#Rn9Z @3u-v<ScZqcO4p׈U۶n@73otse97@ɠv `놃 cn^[w{}~ſz 4Hl@i" ڕTfs K9ݞdw3*13YS ׬@8m4qê0ퟮ'nƴ yL'g>>g?5t$-pȞ&K: ;\U~߮If|^;ί˴X @"b5?a/|9K9;I?7⚬884/k}r>sv6S G6?>)ǐfsH f+84tr͒.w5Nij*jo+tK ]\ğ-u(Ҙm}ނ_6ChDWvk;p 99!C/.MSIivߓW=zv9niDZऄ7~`_q} b5{f ktH*m?$'W@_Οe~mG5[t<9\.CPD.Km a|@=~$f p4 HMxY8juI@@C&r;\ _}%τ0j4ZjZjʦJ:,?k6GhC E iCa]* IDATB`S޴n,0@߶m@Gһ@[S9Q$`X2w4,_O'8Qhcq_U>=g4jusL [19۽{88'ql{>$@罷ᶧ7EKh8q|ܺ9;$cb*&beH'nFOHc++EPkhyP a@"$pI֟rw.? Ď;YyҸT?պxyt JߧIJر_vT\P@E:2߀۟~Afp;?ii(˰ONDGfk<?Yfϧ=?…- FS3p]Cd9 0$2@?(Dg`9*!ȾX|?ЪըQ."" ,ðXsC kZ~>VϗkDB?5[ :u`:Lw!ø]]}@um-k~IC9\ȵ>$ L݀ @M9\(u'k}@ GS 8tTۥN(=@e!9Ց$pwpA&p}Kο\@ j9t[q}+ K  G_ 5ݼTsln؀֧U@||RK-RKm?b7csQyolڄ {ѭEU?,>E+xVa\8/0T$ЉN3d`˭ر|0nhjT^o+eSOuUuCcNugЍ1LOp-lVu8ӊwPFM6.-[b\)D kG,vLw ɟ!Z\=V1M\=U<TBe,@Z*T Դqn 4 8nc5nXU @\ψ33Y?9Ner?_Xw_ri9nicmj!W?@i3>}H~s@qh~qݾ)VeG8q헜F>>ZZm@WKI{u6Pؿ5o~%r)M 9N](?I@}k?4ë0ؿt_qUC/9neUp|` L _rM5qAjp :Y,_pCű}VXσr+Ϲ˖O쭀HA +Ͽ#R }S>_6Kof 8t9nگ8w+? Ue~],B } vCB$9=Чԇvl ~fdi KP w|Z`G8ɱp5v-P!0zvt߾⑨VMOU*l@[ 9KPTP +z&}0Zj QR-}WDž p&UmO/qMҦ͞}`&OD2+*Up<}*9_s۶8+UzDn&szq/>HfCe Xٶ[$Y@Y#֮ Ol\& ݒspБX\v/~ ?g齨#pzD+r_Ņ-@VCbDK6ސr[>[GD:y?P'R*y6.rH4.t*"@S@}f!'լeGYsKib@'9_AuWapq8,%EہS]}PkV6TVa zp]͚ @A|FM=T%qr<,#pCerR Z C|,eMHm̚跸d=\9[V^4s۷!6D*zi&I,߇! Kk&B{lAXo-r-_e`8I\_XqMJ=!QI&p9PNՄOY3`lh훪_?A?{>⚵.}=~@!`SP áxe6}1 4[S_b`}pq;L+?U=O9.pm7oc3BNcNҾA:<,a-=-?7e Z Xy6UE7:7kA`*Dl/;s|@`4Ns gDž9fij~ѼtPjΟ'|)Ǯ ssQ)ڶ |R"ETL`+o+#\`IOq~(P:Ʈy$>{pDvrk6 ?g XF9uE_S̝sb3>!1.I9S'~mvb5#q|w>Kl_>e3~Mh`q1D/N/"v~X>17&pݖ[~ݞ8~(pGgk2B@ݼ `jksrpjN Cǰҗa:]S`j!E+aاDN~O7C>;,{(${ @q+XR2c6aUCWaqxpvrok}dgE I@-6j^i =(\ qk3 V{@[Fj `T9e, # d2:f4ұQ;?m"to^텋1Vaw@C폁O?mo!fRtYT\GWrGW7u~Q2uѿf8BqPqcqqP@NTW>@OVW{0~ S]O 篾b}f ްWBf&r&_[Vh9[ :XZx b(psod9v,'N<8 I\hs(* p,6$-Gqc~P "зj%WnhP|{R%& aeUuL[77G-λ7R9=rMڿvzԝj G)(*!3fTd_q`?m|5cͿw+# 3qê0zk GKr]ݧz4YN8^G'P@!>j Ǭu8O]:7%ݿp[Shv^H9o07| k\믃3Qp'R)6;KPem0wm.9~q0?D9t9~ sgR]ڿt~.?3z6Ў WL 93>rn1 ~QkE{eG)*Cgu蔛{rs1_%B`g{v&g2XX-><#cYg +A3AS~PHNW6I`6@_.Н$LCpcHO8@Q@$}r}ϖgrJ97¯i| Oq}grvhp>@>r3n$aYi7FG_j7!=!%{Bݝ9fPT۳5fl I^i8\ K\9r+{ĮgǽvFYe*U V a7oG07+Vĥ99U\Q@`jv[t=>?k\8[ϦCX[*ܜa\).ȄykX] *\\1=)*, (*(@цlڰ 7`czl*,i ~81l֍hMԬ6@s;PղYw,;uj=Ms]W`䉚Hb/?'|&G;8Q}VZ]`q-M%iÐg;U{P1m'qT'ojLSI9 p2d7sXZMڇ9/hҶg+T99XhoF$g5dP!6 ?=eMԅi2Q(@?],5?9B,C9)r8GVE\3f43JWȞ8N^6~^?_?n>#( _B> ~ iC| w\P'&઄_22y$_w&[tsWH,7"=஄خ/h >Z%s "}4?vH>s=eh'D7})}9{o0>F_gO 1~WG_룛TKȿve7S& nPNjŊߟToX=O~Ob|6pլi ь`sر /J4]_O:b*=Y:f4N;6i*F:ZqnkmŮB&>WkO4GBNdHe}0DxVlL`4\{9:>L3Q@u\X1#`bq9@ST@K1E7Gjʏ鲮8` =Uaq7V< / ۭ瞁}E{w.?5g 0,Fb2:ˬfLs+nf߹c{?m:>.5kqu;M~*]ֻ5?Ŀ}$;荁H~F%9f$LcNgB`W_D@3\guG\Sn8Mtq?*G;>۞]q͘HqY↓.⚱~xu5oZLm5ssh^&3>jGL׻1s?js t̠N ⤺7K/ϯߜ%fUJsii4 Z8A`* 1-f"U23?ﴯ%XL$;qޕvE(nXzE) Ahə;0۔aҬ?оrIB0ԜM˘9 M8\݊xq pi_q}+o0ܔ0~Bri08l9L5};\vgas9;9>2' MB}_7@?C\P[0N.h'WPO <PptBI@D!ȕKt}An\ IDAT_asFC }Kw x W(@* >/GL-RK-g0=S+C pO""o۶jfZXT+B?8QYKAG^Vaӽ9er5cTzȲpomo9|0!tC;OT%eGC,tV;ţ_O- yxjvWUBt:ʫxexKH5kp ڽ7v;_iD[{;жSFCOGIٶmk#ڛ=Fo5W{׃>P@}D{oFMrIϿ" c,|O?ksf>"3g3abr*#`'ǧ-(Pk fxVKKoM^i8\~PmP7svi8\7cOrqP}qXWh94TpԲmPm8s6jʓB q MS@.M&J(,@/ W> ȞƘmH)TmOHnS WFI@Rӹ=8oB`Efǽ|r(ݛZj?L=cbnL&cqJ0/;5U/) lڪc?hS[a~Y>az9Mq}cs`A/9Aaw8/cq-rxFy-|%=$ -Cq2ph!xst74b;_g7sߜw`94.VQ3S-M0Lr? -RmzO:}wK79ve| \5kk\9m?w38M@͜R_[ƻ?u;8n5g8nXUӵ_r@|m>xlu~t5o#&9fqnɴi=ܼ6>lP@@zkJVߧ_rnߥH5}}d=NZZqM3zy!:?)gڌd}ڈs(&К?hLd9t99suWeR4_pJ?[}.mGi9n=!9eRXIe 3+}>J ~ <yq(H<r3 &@s]4g\P6&ߧ9s X>@0t9n\w9n.M NB +3l[v8r23ѫB*w6\: O-RK-v ^ {4lJ[JuYz҉,ًil*,@Qa6m؀뱩6hC!6hC wW*p $ #92؂ OKa߃jŎ6l98c01z/lpyqި1a'R L9\{׌ňϣql~g;wt,8 Cۡm'c8nK>tnvb6h߼1 p,"=, s ϓ4Trp w^'=Saˏ<@rPfJL8@Xl3\Y w]/4c"!#MK:^s~ms9ze !0 ܉].4|}y-zhl$55r1$C !ő/K9f|B;vq6:V;@raC5zJ0,KpըQ9>,k:)P=R-z~MTGռ|TQժG5uVCsQ³%$:Mt[u8 o"a [ w jyP " -w@XfX'ٺYi"u4r]MZqa.0i9 H,~t5u3 #]M oKpHUz @5S ԯLO1HOm ,$3wq7B\8T;p5(CWa>Vᄌ.So}_.oP!b@5tMޛi_g2I5};O7pm4lsz=c\RqMګos>~:l>@h8r5} :r?Zٿ3Ҩ*Ňr]ڿhN.ӾG]<8pi|_7@W$\84f?Bԁe&0ۖI(a"0i,&H fӿ3Ysd1 <вu9KPTX֧)zQ싋qc'q9?r ÓT=8tp9n9 8Tpw!9@\oW^vL(<9j ;"앧߽=8ns@39R 28 ݦ@qsd2: rƷ,@r4.M 諿<9Xn78Xk86iA N9Zj;->@NO os?d/\*}o7 c9_rs_&vÁAp\[wrH76uh4Lwy.O.0pƁr@6}|c8d2 db@u+K5}4.4cDW8l}׳Eez6u)U.}έၗX媼" -y9s:7xh8 լ8ݾ{%L؀u+f +4:HRj*<ǞvS&(j,;+ -9D(9uGòEQ-GSs[u[Yv%臨GNgrt%.-LP0tPKsdK繱`i4˵768Gn8,=Y@%"Ouo0?j8g7B%o=ֆ`ؿ]:L}piI@@"b<>^a3d8R1\vǴFuA]5uCyߥuӿOFsgto~%sI*q:= T#UcUco883{c8Ud uHXi s CaO_r3h$]|q9I;SZ+pJȃ-#NDz.LCq/NΆ@jʃS Zy4]KǩS@xڠ8`&|㤄O>mTۊ`YBrL9\=ߓ0~vHXLOi9|0vO~))@5[}׾^rv6M"' 甫c:JyKhB)T@@WH9\.m߯l>hء/)$ܠR?ZImڱ@ jSK-RKmwt_IO2ۮN3`OX(ݟdH\Yi"wȡZj(PAty,e䉚Ůp7mwtѨ z8299|\آ 7vm8VH?IrIleɠwb@Tc:z \wU9FښQ֊j{VNc$c͎;Cf-4woT)z3qK{%9_aP꾄ekp;v/ R= wm `8FfǮe9 H7!K ! i:&h$s@ak&)+3pٌBR!XHgq}j60y(}𱸍פҠAx30C9[~UTSF8k]N`:VH5,K/8rJUU8Gr@ùp(_uzPְ3OuHv8_zxZrk3r9M`9qzLX_=\sN2М @ӣf7^q-GrϨ)@N3h8^oz9C? ߗ 5ӿ߾]H=qM̎p?zÍ+ Y&q99AI](7LV,E\G90zK8W )u:̄.i=NbdNwb |IF-$ :V8\P@w#{ 7ȕA9\0x8>Mrg*.mrmq2ɻ3}H5}4QU@&4@btqu8p&W'O9\;T0s=y}@Ꟁlo|z<nP@j%SreP =n`HaARcjyaX60tjZj;BJµu r"KSM}N>.qxA-6j<7 ^1UŽ8Lqj3A9_Lѧ4d5kLP* u}~e6oӣe29^%9D I5k^oԽq@GBqx40d㎶c ~`4\{9:>qÙ _a%r'.@C+=rMRM_pmM])3ҸJE9K!߹xb{rU{708j;6#\gbWL+G//<~/RK-RK- ~&!M Q p=6(*,Dцl*,֯^Ǝu9ر K `32r2~ZW ^Kq:GeY󿞆b8\[91k#pzl\dh6^Z, {O;Ue{|_&9DI9:[9Q\ йusty2wq``#j*6 +SX\cy^ ?q5c\ߧ'حymH㾒ر_v ijDqp)_r1!tz0cr-$ɍP`ԫpQv8P2>yMy񥱸̪Snj9߫8ጳ O9v3pQj,/9+/E}#DŽ]Hy Ѝ1L9)j5{|_P-|QUZ~ :;\|z:g+Wd$EE@iNfsh ۠tku~X tHoKf`s]M`D.v T|FVaPSij֦j]q͚|njLh;9 r?9Բ6S9~to8ʇd4A IDATM'9Μx9?Nig?[ 6pi%f8>AEsrWU@\Vo8f`?Zǭ3p/eZ&:A;>Moǥs? I-RK-vcs?>'mΊ`VO#J##'7׉p-]&0>sp3,Y3/0|=*1qyY80MդiLd2d2`P?rJEL8ۖRaqLOp-uLG[[ []EZ8'Qq̘|?Nq~#08lZq iFWE9\X9pFvyg{0uF40j{0ē\9JGx83@gqh )Cj7G|AR4t>| դ)7'LV91sDs?>q^Os,v1W Ũ-+}}z}6PŴ/K .bg.՜T^~LLZ۳2Y]8%7?ao}k©oIN@7G 3ӿ!(G |wߥu7 Sq]MtG9N(`8DH{k>3>Jx:⚻OMr]Mg18Nt=>ㆹ}]`Uf|K~˟5k OK3 }X<|Mƌs AcoMwBu^\A<=vSh} 0=rH]M6H 5yk w9..$p%-@W@}&$9+$`I,|Oq}$`ɺ)}~H(r3ί,#?.t.w'ꉒ9% ù06֯8\'<3IPsڟ s歼9nW9jN-W! +@9b0? =_\TZjZjr+VD!w"8$vKpO߿f ر @Qa2 X@?/]RגspQF!4qɼf-0s$ص{>|:zhDsx`l\ {mV#z?oqu~!bתWi6ʉ@ܺ9;w3l߼1 ܮyxrX7c;F9N p?O@ r_˓9qC0dbKI,_ˁ@H=p:9=~j24مh5L@P,^M9wtQkPSqN1ajCw@!0O/\z|Aӏ9M80Jj'qi;|1Gt) }7i/9Ԋ'lt!V-_CZ:uPjUutǸxv >zkzdBP̤lbO„ve[_z&3]r]=>4ش78mNfrB3Mfj #6Q{1rP]?>⚱[SqM^Rq͚1w !LSr]Ծ&3>)9nEg ҶTSVL)/_|4Mtk샊R9~h/+4PTzru>`Hm u}okwk2bۓtڙt elʋGLnI+,Z  eg>/GH)S TkM+ (O9\>ڞ 9qrI7=q9ys]Gl:y+_s@M9@\H94ZρY@r8}Ər>L@H)q_q^8>?ruo gR1XIr%%mv%,Yc&hݰ>IzfZjVv[ )O-Jo;!:<#rɸf3܅@jY|oA0 [ӱk3l.*Bռ|fp/U/F3&u_Nʵ5c g}C;Ѣy8P9\]&` Cь?>0Ӭc]{2vtR@3f_=ѶN- .=Njoxw͘d8`*@>S sd99@RM_ѓpK!9[b@Y)/XW"0b) &>oX*Bͭ50 4@p;\1>۵&aMj Groٗ^Adk '6f<P)~ftYBꋈݦ⹳qGƎ-\x!9/1a[I-r\ -ra f ;RP̞aDغ HmfLX?\Io: ^* [E5B]~0,Wر.-YS+! [qVal9Ogt?I%Н3?;g(=p?֦6SI:d8jЮ8n Ƴ1<>HÑ9KN >_^@>m8%r]rm`:_tBñү<`}~H9׬=/.6Hya=&kR ۚi.՜q@[34Gj ~kn_'8Mxys Gr]?f`5f3s{q>qY%&R_MEfP;,_ij \wJznQ~HgvylDEWȈUwNwvL;;Н n$q}M(_b~ +KPv E8n`8YL 0.Q@8Fq}֣8W"ݔ0~(q,cetC\.0v!|Ur~2H9p 'qG9yМ^ )}\fI(}JO}9;tp?"9 E@=`+ ye&w%M*x x2tVn{0RKmW!Z#4+cD`!s ॖNdjwpV شEشETX}WTXM ~*6n&`-,PH@⯹@r8n?-Y9T^$ر( lX&ӿ'qV fN;br@YS@&$Gs^ekfM=Ѹm&&v3DS=eɠpãݬq y.a !U.]};u ϰ}yMѨ1ũcF^`V1o'bc+C| 8~|Dg`9*ZIj2w?OCXqh#*Wjf&cA9!j5{|>WG5P5/_G[zl:#V] BXz:`Z'u@Xn1`TCXN#8T(i}غo*k\!GV Ia/TG\S7AoPwNr2Lc]_IvN-06͌?ց8@!p3^7@p9wտ+އ7A;<=U9{)1Idt}_|{!>Aho 8&@!'{3{u5m@) h8לD5ww9MDzpTiC0|em|vSo8X>8!i_Ɣrao}IosU9ŇA'q *2\?8*ݣ%/u6C 'pR>nLVVzy}ourR.Ґon`2 * o 7vQ @mr,. $S l8Ư#~O{)L,X\l' p0&/w&,c12 %W j3n+D{IOhzչֈD*z&ضQn^%skps.bd20H A&z8p?h3"^q< wֆr]2* xU5{ *&fPPPH $# HN% HSէzgq ~2=s*uuO3wCa޴ɚH@@;.qW; id^H7w9ر-xOX1t 8e(tyqe?7yzJHP<U }ڊȱflD (5hTHCYPa{7SyͨSR$E!` ?e}=VB5a=yLel&P΅[{n?LMHUd<GU)COrmΈGLYu:u <oO(P@_s.O O{eb ϙ8^pPas= u+O;9Hu L۷tFR7%&}k*]?SF|-VkڣJ 8{)_Y*r7mVO plq5i %||q@9vl_}{i؝;d0@qi_+{Ο8}U(f:??Vo&"s:)\؝*H~‹.ii㧠Hۇc|Y\@ѫ5Q_vKG88|ݳš9}@8v pjqf|4VpaYG/ .ߊ\u|4#0E8tx| :deYi(8U.SO!qtqa99М$Nw_ͱ[yڗ@|9t;\wI09văWG"| 9}RƯL &ЮHKh5}/`"a%.(^8hƥܼ||* 0H*wor72Aa'k`ȣ0>|?8Pa C9><? ,W54<=`rEq`!/`8u'?rFޡ8`|8b ,9VOߦqg3u9.3H$Ўlpʞ'8+_o?Cڻ;*L &#w"E0rNrKmjr_9PQ&1]xܺ6NGri ;4k_P 7wTָxLL@]K9رWmbZ>C,֔Qol }{oQŝ%o} %84&r^@{p-wZZ8]D/hsCy-YxuqeKتǖp+{#c}&d+S|rr  X2_r~s"=Ǭc1n w{e9Isk5{pK Z5@&PmTL(ל9MK}( yz+gsm~aif|+N餬Oڦ#̹K PNYmM`sǛ !o~/-O>pkf{"9j*}S šCڻ;V=c<.Gtď3H?X̱L` ,Cf7HV?bd!4+# UB8v,^[\aj!W}֌OZ}8nZڱ JTa8U\` 7Rv:Sͮ96:Yo IDAT5}A_esq=4K)' `/0G2[~32 `a˾rrm t,`:S(dSծSBsRmHQ ֭8vʻ8rrc\a?Pwq@Fbs8tr9;ryRV8X0 0 14N] =ka.gl^@/ DAm튾 -H9&8~>Fܜ7HQ Wq8ŭ߁p鶋(Gq#ڗϷk#˽QZK%CN8P w:;,jJfO^mgpD;C($NcHJ1vWH!C x<S˒Xpa~ tR&Qss5 w[6l&6]#8;PN?#u,N;C,Ah/0s\Huo:}nGugUHqC-9>"mKm_rֽ}sx]u>j2uk%D6}AimM[{oh G8TZ8B48xd,.Ks@ smM ϟ0۷TzCcg.HǟMc$ArƵBhvym9o=R&Ly֯*b՝z #̑S RM@͝\ aMH[j_Oš3@[gsڱ}o39=[g NM2C970!x~.6p?U^p5MsihkMõؿfN3b.{]Pq\j(;H@p?|,š3_NRס4œ±Ҙ랜&p*]k~*K"!\u,T%AXS9ۚ$(v*f?7Nzl =>⻔e'kK0W@`[/Nt#*irgHKw@Dq[8.qpdmOr]RrenN]%~q9v;@GHPȏYLF݀p&`b n|RXrq)*Fhf 9>JEЇЄ|@'8 a ,'(:OPpOs鶋((m=>n#*N` /%`9G0NqO+?<5>7Cbp| 8'+YB,Yvr23CmߴkpN1`<0?SN5bRY@z1[6gKhDy'0?dL\8z`\uwPLri\hohjk==^oۼc1j{)y.k$j)#8&9F ,6 BT]rҸDX2w9<w~LʚS>OAiSr%8f.]*V/|kO;4 h)& n`R\W%%h}SR{}/0.IMn+śڱ<kjl|E֌i<8'PM|]H7??DXs|6iְJ1S 'R\yQ .7\@[95DX+(73[* ;:W9; 9_ )|oq ˘p)M!ӇB@P ;NoosTboH5#Uښh~Fe V(bY9Uݛ!sqey}})-:Esi&뗭׷d?[ϤDq}_1v\1mTuˋ0vP={Q).e@*+ٯi=t;?hx`3h\(,0#w 3l T8g2̟><ƏW\-F;ew;p;ZA}5 Y̯8f-иI^*X`¡n`".>2CwUaB'N8\9FlDO]U[q&2ar-=%V@[ŧ5rq%fqdRpyQENRc|I#.C@[L&5P- &_8t|.j㜠&@K)[4sJ=dr^?W_`i*qrbne3(Q&`ڬ?5`R;x)ե‡k" t\C%ք@[Ps֬iʅOe@GX,k8~ %}fgIO,*/86J됎fNs?ni,O]pZCO/8TϘn8@nQ٣9z| cu& ;tPќ;ϰ5}X*k:*{ڕksmr@ݿfw#@rk2k43e@Z> M3NcOC+ A E@چ~03~zdoO?}͓83~9p=+bFOp ̳KwHXΜܷ׃Wط\ ϺNXwx fgmgg8T8p8 4{n\|i|kS2W =9(J/R&b!pL h@(w9t_ 8sQ)VV؅8^(i\vT<9뱀ă!O­rqKkF7F(PN7?@Мr}MɎ)u|]@J9 j~G_Ї@pYǫ\[(]x `K `5%;Y;@9ȷA˛Cȼ?˺9!_RO, >E'6E朿Xx#FONzvxMz|؜L+olDcs=[r߿6ǣvL "wGcPH/[@zZ2@D|W#V<20,լ~˓\/8WC~_4<:Tu*NYcE{1YXvQb/p\^}ڧ:JTC Jjd>H5qPj,\4xvKMR@U࿝> `ێ_7Q7(4'7ὺ? &Op 4AT8\{/x~+(I =T@znAc4u6cO8IG00s>vúqz$i4BXC5OWќ5 ؁_5f]31U_\,ϩS\K\w[s=C{3yz(p?f篃: 8p/xw ؎>-4om/[:cD\a=(9lmәQw5-y>Ӿ  ܹ8 I0Si?`kN[ fp?͉]1黴keRGu[c󟅬 geVjD(?cR'<H Bh_(.K Kȕ@<fGxKA̋r~WDl 82*PnS wYD4.V5U @ L# 8Q ׿q@Pns@Or]@WՑ m8t;?@,c`{7"Fp|S~10!=rhχ\IG|{r?O>60ra80,N`<\z,G &=s5W]3s[ˎ>)en?h 4@SS'6,uoJ anMhōTc4c SX2D^Γ-- ymhl軾= ]y7_@9~^y "4!$n?/Jq&P]@Y2hJU~o\uʾjqQW %=Sm#аpm?pD*-rm%'x-(G^ ]GxoOঅ{)}WǟݹcxH7d~ Nx߼zljXv=`f*KϖE5B ~wpkfw~ &x/"ϟ')si{ڃm@7eqDusיYelY5g6n 埸S9m7||o/񵳬8GD##ԱH{ǃדl=9;Lh_vs"6ѿ1GGgYٿX<{c\5r֯r;};}{ݳ&+wg0Nyg:??j{Ag>n qPy&'q> ;_8)NS<8ʧs2lڎܬ,fg!'; YYl/; 7m-^B}5}HR г<\qe,!Yx8+f7NW?=./ +y`o3QdP\dH-( ^z,KQ;m ʳEKjN7g&)֬@@6OYGrÚ:QJac7mڜB2&}?) 89T:?m c08)eP*=2P2- 3P*#JTz:JgTz:JQk3O𐁠}@ 멀]~)g>L@t*Kb@9GY[i]a5a6P (PVT>l\SR_ xYX8ltE!hmVQqm\ar(BOGW ǝz:,-NJ2{!E dעj, }+ "()8šX0cevEX4*bA=AKp~1{BZ.-?S.N* ϾX\3 \ ޠodM0J!o{9M_ou^pkE9O=ZU^"bz)}߇yx}=܏pin~G~$fQ䗯xh00YYh\(x.?@NG9=?@G;zAOrUғ %+v]_ 7.XQQnOa@;OO6CYA%LxZyhV9~i6?>%e?8rr}r]@r{ @j@w8~Q1~HȍH9|(8/?,U&׉MqHxsU8b)N7=@<{xw<$qSrqZL IDATr\^`I2×C3J(7jߓy83R80}D|`jSj)3]Ek-M]h轒sveiZ4Y~\lm D=-bՏ;w{/6U;{?X Zf"ܥiB_KחL4Њq]{,C$ nk>3q|@L(c݊e8ꄓ 6$e R`r.4?@[/_H2y/D։}#"@~{I,)'iyغš&p\X_X. Ss'N@r`c[e,Ҙa%(&Rs4}hW۞XowHW}*eMJ;6-OhHYf|{rj |GyfzH9nhç-[c.:{fjjXWpδ5IP5X6\H5_s_ ~H/82۳u:ӿ&H{bB8Ley ދI#[B,a 9lgڿ00i?L|ݬê_H땴;OnS= ⠇83!\.>/X7$L9,;ͳ@9sAh2*íi[จW8nNRG?ߠ5D! Q&d}<# pkpC}8[eɫ1<^A'wmBPo8K0n쨣W#Ě[3@s9qaL B }M oW>B~ֈ} ƈp ܚ1U/? FDa_\؇ee_E\ThKprtGyG%Wː5q_r@lgo;i8B& )Nq@8 `ҡypS],VDH 'a9}֬IX֟,DZUOS@[Sǂy8sfֽ-9g^XSimڜq}k֦^Ԭר{G4i0z`\}رoDOGI>ns{\QEvѨq z M|ѱ3x3t@ǦzMhgpRM# Ha^/'m'Wņj`CrmMobUK<8@0wPqgf ط&WgsqkJep-r$iՃwOZ҈ۮɃx>fYgsf!Fs4j#ڷA_U)Fg:'p|s9_~9D7oQ!?u0b6Sb蛺ExlyC18T)/k@y' g@Gs@"p01UNk|ʾyEɘ@v7~/fl*pF1 .(oH>?艇K"ih) Ѳ5k֤W)|i޽y7seP?^YPeQy<Sؼ.@CpSp}'tQšD͙1`fpWfՏ.欳:'WaM]7lz]%5mzNH9:lio'8_Їk?jyF򟼕ԯ;p)"% X&$i\,R Ki?r5@9+E ʾn =æu xfpiO4jr~˓#!%"psl> aAq0WPnKrm݇pS WG~8\r9(_m݇q !ss * ׿!8rBs}hXWPvneBr]#(߻8rra9Pu(nS r<ns@q6rvqvrs@]2pI39v%:Nqg!|{S 9ᳵtdCp@Chvj ջAh2lFJkV+ Z99/aN`0od(5k.Խ),/X3\q=Jhk  9P@m-z 7[o) x]Plgz?/}'>WԽzMh?lqNI$M>Dl=d>2t ^WZ>u>7Dy>{q@(CrصRW[ c-9v\|s܇џ •wk m8SRCG(C&I,9}H!(-rUhE_r2+oU>[qmM% ,V';Vj\g6oyeˋ3jUm 1v[1>V-*&Rje@}HA %晩`{*/8v_l{is ǨCk]@Yw@nsm횃ZrH@s& `Uqڸ8 P\U#5̣FĚgC}?tSߠOOyW$8&vlvD$I(8fp-kM:R^9He!y=.=90oc(Ō\u5P@%ܩ}j?aίMj|֯LF\y(Ž]ʞMj2/z'[vAȢr!4_ 8%OH} Xhi\Nk{7X>\*Y@8ڐ@07h AhBN/LqT9.͙MQ@t_?䎯=?iP;>_;x1b|8 ݎ9c nN]؟S()} .|Mn͜&s@D^ 70G?7QB.8YМ[.Asosَ}o牗c0NqC3/8)NqSI>LfgcGvfgg9ٙ}FGl]y@ԛY@Ӳykǜrp(P[4kF@ҋyG57Z/ۯP;~Es%ѯoC};$,AxwBEt|?pڼM1yZ6m|mqJ㝯F}u ?H+!e/B3j:% sn+`3198tLX@l0[6Ќn~a~\80nՃw>C վ@id8T'%9:䍤WWѨśF\dY9t쓾awV@QgsÜ;48(9X ;ѨQ9I,3[ssjB[4wE8J3͛Qlosmm*ʇ@JtFJeQ* Jd\KgZ N,=G%e1&wƧMkmMz #̉Ӝ&uUӋ2vhulɩ&P曧ʏ8zd&CN8^)OO <(s/T(k@uW7<~ou^pw0^^:^[ xGV&Yٱ}=D({ш9Nuq)r}]\ˇbwSr]pm{o}[fòLo?Yس6pe LA4?tuSv۟d]lteSN^,a_@fٿp>hs׍jff2.U~:i?&8F$sAI}x0Dxp`õU<``23 X:S gφxlݥI a#zh '?@}+ ׿rm{~8\(lѿ0p~؆(ȕ( gvh[!, F9t;?@ LT87Ec~8I 8 [@%e8tAP2- Y[+ PpC 0vX<Ʊtd&󳃹)NqIXGb?%  1"8D [Pr4kC[67~PViK0=Lt,@ڴaw=M_PS "RK4OTwEL.>8!^x9Sm]Щ=?Y۶"rKp>=^~#Z?hj>}lj͘X0v48|@[Wհfu27v^yr K]G8f}9D8IߌO9ص/>9$&ܖPl޷]+Lz:ُ}{h! ӧI8NunXcasqu(-uZJ+8OVZ= @YtؾMp4vٽ+s:y(wgN!R}3t4oݷb 'C ^?5>4uEq{@&."pr})@X0no:L΁pnCr)P|>cP0PW G^7sixx8r ^&оIvLr)˓ ~DC+Ҝ8u$>8WJ3@7@Br}oL=~"p+GԿܟ>fvc*@':k98^@yi14o;84Y2p)NqNXWclM`_D9Ў x,$0a $V,]q)C/%aΤ k>L=_}uW{D+G5i l诊=EenhE@3vohjkm3Ӝ0LXm@[ =>C&L` ^^ 9t{"?]8_e۱WSzU6 H5qȓxk^ʮ9|L٨U?`r9Mj'oe ){Թ4šq6/ `|ח 9?-g)%quڏř-_1wm2AX9s-j7isiYcKq2 ] E=(#5F r إ*H g+ ps68\vڧ@N9\c!8^s)+O 8jg!Q p%L 8yE/@?>y$U`r`Î`sq{k7ͱ9 ͆ Gr]۔ŗ@nM m ` (=&Znw}C>Ɉy՟ѷdDRm2Qm%:30+ kf@ 0N& x&)NqRsm t9Թ:-?Nҁ:y9Q`^}H2sk7/{NC{@76AiHO2D[6 Bk7YN8,+wh$7RVSPfmCsF5]@FH$0o0)$fXP\\޻1c9θY=J"|xR=hvse^xY9Q#cQ˗hvfoVxArTu0@N9AH@_* 6$=OLop)q@..@#L۷tF`L֠!e7zoOm>^DvmGYn}H~> 43bYvFۦك_(9yɲZ$Ip&PT "ڬq?hkV͝\)O8cK0vΎ ,E3$S~jMU忭 IDAT4S^sq4ǫ.l];e@}ښL`YZZ7m1 zs5hx@Nwe U]R9~/k@<< 9 ws=õ*ZˡI?s>E }r 2B GG9ߧ~_*p?<s8K1ׯ9%|%y}u,g_HXG0@n7ClX]M[};w$,# 59ZWe0BUV8b8QǏs^.lo+PPtp#+ xĥ-qSC0v .]LT<FnV&r2Y5,7;9–ܬLl߼)p 4Q{8\X48kFkx+/ l`7q5N͙8_z9+)3 5z86f 6Xqm#!-4C'Q7t=^oۼcvN mk}Lpdt& v=Գx+^zHCHPM+.8"$9h!D"ϿXųSdRRL8\)8Cq_]@5hsai5yͺS_2DgW@S3&^?x$C~hh"Ј=1wwc^w 4b;[@N)95ԅ9RǨ#2Ι9.WcWBc5Ή\P\e~Hȇ@Jg4Z2= J@I>ps}J>aM-uyᔼ 7,|?%rYLC*R e3tu6e;@`iysm E@gFXS9Y h9 iNgsmU73Ư/Bkz8չ*89Jpq=Ãq?/jy:Cs_'U^s ׋GX[5=mqK<|cOاm3>:6\lq}5qS*8G(Ë[_sq@j_HXfΏ >zmZ'uz '[[9V ^,>\k`JÛM,l4]?@NE9=`hqv[gsmwsiP g@/8YX2x4rC9SؿV5}i9q!.M4y4[hsiPnS g" '?@ 89 S g-cX9 8N9\, w(Xxp4X*8#NqSRJ,si,h$`#BybpL*r tg-QRe/׬FO$& ꥋqgi>7P2$0Q{ˋCzDhkF 4d77~܈Lug{ U7#hk <u@$[{~}S~AZug{~c &Ш#cAhk:>D|`/2Ś.KsJgq^I+5S kVG)sYhrښ1>^WOqm|/z-Y}-߆7~~2_@.{/6qc@'m 6{-48ϼ67(Vqs7_΍z$aq@m8"b\xYa q sc6J0tt,ޅE4o<nj#^̍WbsosVЀ=W:yHdFBkr}Fi,e_Ҏ Aj.`".5[8gR1Ҿ\18>(H0M9hk&itcs@Əjq,0eQ``7 $J"fJsizƊCU^pSsUaM;F=سjf5}d Dl,@ NJ6n=H%e9vXw9F~@()}Q4[}4[3gs</}A\os М(mh3[F|"7D0ѭbBOG0+ AXGӁ,BSMh?A?  &dbp9GL,`wrE>i*@6*'+SqKn>֌O)ghWEf k:B3io>L=5qۯP; &nM$<_x<C}=,Rط]k4|Cfhۆ./ BOz`(R7~Y@@௬͞tPeX@nQslF5 1>Z7Y2wyXc`ر3@(8 8T3&x+օY!_s>C b&hjLEk{~ZI-A~ghh/8A@2_Sr)2S֨w%il@/>V-^㪞fWt,@7!|6.r%NS{U V+3Yp=B8&ڜleߴEq`X_ aMZU~tW͙ʛX)֔:(WAҘ`4)r}PaMvxEB,x|{19P{JL) vQ/8oM#ք`*k]\?Ў K9&:?SaXea9CTH+{2Ⱦ9[pIy9>.cѽ4c9n ћ`5~,δX@j_g/i+_pY0cךru}fkP@_;=/C p8u"+!;!FXbR >Q \nS WGv0Uo0z+ >:@5i.G.r??@.|P W>?@l,D:@n?(&]@'S|9vV5}etQo @j@.r}T8&2I+U^r]8}@C9\I}truz$NqN}wy!ģqS-iiZr8'P:irY<XRX,?4*5VPZ)ڝ/ $ %X28$n_PK684o0odT3vqiu3\q=رő@[yճyatO?8f 4~-^Spl28]}\q|wS'%uchy!MeF _8NCGH؇G.^~38K )mipq\"pZnRݛN 4e^L/S@nۮ#@bǶZ<铚1ɿw~4v}i(b^n.v|^TqIY?ė=@ to6*T[8/Q熛`}?@ @8^84>pԉ')|_\ 3oǟV foǞr*./Ĵ/_GxrqˋUk Y6PDţ!:F6`rPBEdnI0@.ʖÎ ]}Tzr)J*]ӿ=hس+>.Rr~>Dv"61?Wh1SbIfm !aK4Ͼ9˿DqO?MK些&J;4GY Έ?3#6h#W&eX%05/}c#_0g[Qa!aNp/"_2M;EEEԿBsΊ<. LJ\.o19?{!4%eŋ;2ja+n9|(^c.83.\8)N+-^!k+vNC ]8FnV&r2Ldeϲkvr}ƐNr\@>'sZZ+o?QcxRMߕ Nd粳P:QF=۷!+橉OĊT}f=m\UMEcS.i~UrF+WN r벲˗ت)z"p~J%Igm3^>o.V?/A=Ki]jW3k)V 9ӰSd,̘.ĹO!'3iέS88Ξ05]?y,~'FEG⫮5|SG%:>&S?"~ O`}1O{\|xUg4c _U'8rFjoyu.3}̝>}؞7m:۽y 䨢"*`Ng3s:yyg<Ϝ% Qrΰ첁MyGuŮ]zo~Upi+ACrnu>?X9%WhD=7,_}(aKmZ(޲kWcT~oX/`FwS(ڶ]zK cRjhߥ\9:2~Pͣ=i:iǝh_ IIRVrJ vaog\dfg9yFdg6(\}jgrA0 8\(k؟,5qxOS`,X9C?Rap;06@XVddCd/O6/ 4}s})Lm]g s&a!o\a 1)7E&6 u֗džR=|n!&n;7pwi ߠ L|͞aHBiB{bvb5S+ O;j:#`z|q,a nЎ_I;[}ՂCj^|g(4_(O6~se^dh _ZdH/e&`0^?u2Lb]rӯ 4O':_hjTtV B<7pl7S^FBuƶu =8j<[8Ls_!<ՐvV>+eʟ6_)NƯ~LWBgiyNdU\t)3(˯!|w0N#|0͖_YW>ӜiCޮi8瞚ݫo4~tuO6h/1߽P?ӜK)Nv5|9i2)?=N6~P?_6!#^']Luhլ? ڄ83~`i=+{$`Ib,h1JaU>FX1%11;b bcط&tح0}?lu1kcWǰa_þ,RXM XoK -?Z8~bXc? 1M1h5لzwKVo% };U:e=q8pnYyAP֢ ]PSUQ/Z9^Ǫ2d絗bbP;s_zeE;Сk7F|@ivtS+ڶ]{ I&ŵPy#ﳯ~4s>>ĒֵaYؼjX=$7,_KcE8Ìz8˲8z躣Y٨w_da98#%9pdM({~CN:Mi%9MQ) &a-RNP;fNag#t~>j 77۩OГOz39SN$SY Î=Aʢ3cc=Z4V_fࣆ+B}RI{j<;|GǶ,^Ѣ5וW.s9wRHmټz%W*m~پiOi[7^{{,mܣ'^>>u`qˋשfYW;ZHerrzKHY<)ZgpN!ÌIԇN4 ˶b_I~ IDAT4.>WpN8g峭:d_AwPHM OUW@[۹5WSkb}씳hrmbSNnϯ?.ӏsL Mbr6M@\b5q5U~@L]k')4m6q}6ORΪR84P͹^ѣ@Z4&:j('І 1,ܐp&~{/`x+q 8GL3w1MZ#ZO!&y؊l ɮO*Lq e+giU\BBpʪ/OwajЫuc/0M_LS)98ru{@K@{0'`wpMy۶EoX0n8J==vTWTH/wE0 A5T9 $ iw[i.(:Gə+FD4ss6Z.˓OO0vmo6k0 p8lptk0/PZ;O9;)IbyXls,%d79BҼQ@KY6rύj<}/~|9n3i?ی659z?YVkJah6@H=-pQ[GBXo􉷇k9ŭds%8X]Ӛ@&PZԝ#sv  +a\oE@,ɟhj@ '|HR⠩9q,45$an8Mp=)=8p:#IEEX8%]kB2[atn$ 7O ' ܭ!8Opq?s o1OG ^[ƛV^ZSzM` QW2}r^Hy@&&7B:@=v~n\a!)7;֚8|pM|qݏ!t/_Ė(9'o$p&A8Uܥl{0v5-. 'JVZoFkڀHC< *w_V\X~iau` T߾"0ue]n^36( @@ .( l[:{{`gX7us`|9ٓ7?s3+N9߭a֫Fr2-MWٓ²*B# }\aǬŎ} kh^4B=y>-ArXV#"'3QD 5b3y *gЈhl|x`YiHJʀmgo[9a `Hgaono pmьmczl_?8k!%_3.d㊒aumY`7+ʯ L_Z <>_ʝ&X~]MS`/u.Z#f8khQ]@X/ 8TWӧ-8fbW9QP J?x9V,Meq,|AGzL!+`YVSG;^ !@H=4ab&V}Q Jiqnp&?x6KJeIJ ǻRؼr[6~+8&O= ஞa@t1 Tۄܗ//iߢMMHJN2,둚d]_]M 2nTU!+;ǨD9PQ*q]{\@w`;:)Q6mJ9WjuoGs-&>[ ii(߻7zxl?76a(-F9qz|[-m5+>!N TGp1C`ÑQzOKl4(xt0M 6Y`)rL{OBjZ6qP_[ǮǢ_8N5}I++;`AHJJ3є2 }CuPWoAXv HEJj&RaI J$8F=@MW$@ghE ``%a>ħ~Jہ@7W8f-h`@jy@05=ݷ}rc8_ WvmM1TP+}w1R@t8M HK}=`8dp =jVǝ,s@u!;94yƵ׍F!Cq((G@j[rJ:ӑٓ&o`])PsYtY~Ik;s5vR޻h1.PAv ]+2?!}P?^mY9AfdY9yl\nvؠpFg9BM "krSp'R,vV9E&͠Д$(ܒbHs'4iRlA#v '4q6q{89n.4]s-ȚR X}߆w^:tmgںdO}|,/g:duY`ьL$%e&<8!%-;oW8߳7z{ cto1+Lp[n,ø’YlڰuFhsMr٧)͐ޏ&$54:POsۥߔ~4~8BmIj/79&`?ˊL#lHF4P~YʱgNS@K!}F5I _iiۭ@K+B v7jv1ͅ\T7߮P~fM |O_rǯ2:ԏinivW{@(?6P{@o_@`g-1͗_V>˟itӼQo p_1y:OYڕOp/Wy !ha.>5N9!Wq0%yla^p[/l;@èk6O_z3~mg|| $>(Azuiqq{Kj@ ,l^8wVTضsuea@s9/Pǜ r,q:$4-lp q@(Ym'aqyq| ~&ǁCcl̚5~.u!СȲlXvl;k‰FI`Cuٰl!N{;Գ ;)ٝZ <6w͵9B5 p4/Py$ڱ}ӆ9*@;ڈ(Q`z#?F`&%}C' މeB~ZV@Æ:o_h EuI/$ -ўr~@Kz\ {Bd8d&8hmBvI3sdZ~MȚ)&J}֤qgMP/9*񖻫s6fNH7$I)=9pneY۹Jy]4f` X[dm#%5&epkr Co@q٧ԇX@9r d߲_L>oPodqvǧ$嶵9zT_KjԡQRQM9GAobg%8}oZI MHec1Dd0932cM-9gT~[s8r9@9^pC{}@PUAnE8-?M]aXnk_I<k"d &LQyRuퟬ0n +X c3oXcVaauш[B=ذP*!Cmic図0t5i}-FXI7ǰoa_o,߮bcvYho=sOp[0}k7_#E1x-Kh|Xcﱮ/|ǺEcIvVh/ e@J(q4@Pg@]&s= e)#֓a6eѶQJ klD{BpmakYZܫO_M+T۷!$ n@.0oz&lԃ6h ;9=`"OICVUײ$5ie` ;|}@nך@oesM{0` i>08//_m3Ӆ[[c#l}DiR~ZiIW7ˊ9OׇX@W= lX $~@q}tV\u6m\~kak?^r\7"^ ?5mdۂ.Jm +; B 2 됎p Xv؄rm4apC{,JgdfE9!LXw,q@9oh(k40~q0F,_S {,D,Em {u {,͈YsҞ#/v)G * +BIciwİpbAY3X-1b7İa \þ2=&0Zr~!# I"O/{[}Eَ5Ǻ~ĺҬǺ9GVv'ǖ.1s)2iZh@#p]{l8ѽUpE%V, BH:66 {uœju`ea*`2t߆Pֳ?𺥋9V/Z`+Î9XM ]@a!\9' ".i ^:ky '>׻7))ֽ/ɉt --LHTΉpe>D<@y;HE]ߺ 0LcSV5|,R8b%,9rf0iV ե9hN(B.AƦ6G&9j;4>^ L(!V ɤ+L5Ԉ)P4iJᬉ&i7tE:j&LM1 [*1ɰrg%@==3sl$x)sr}՟YKj@Lwet_8 -6|_>};ak'vCˑB=PVy~B aaʮ o=G@+O۰T_lM IDATaWJ#k4.dK9qy@/L&0 ͝,Gl)kiNyJw]~ME,pH '\% CիCk叀[ TWVUeD\ƉTVdZpt-npt 9!q >I,#hl@{)Dr[71ֲ[U_LKW|2W=Arw@jM5N_^yb%3PO/״&Pj?MP>0@rO?n$<_Ҭ3'~jڄHkjjBUNn'4!aK%3u55koضqhqDh?]j~}!q;w؟9R]+0se_C}8ѦF շ:uFVN.rr.Y99ͣٹ߹='ΰ'&$f!qY3К@9ۆ%`X;6' }k4`o X~Bu]29&߿8@zCgc~~W=z@f@ @9eٓ ַ?gb؈ 9eb|tđX1?@)v4O) 0eIqӗS()dIY={8?MgK Cnf-SK@:v7@:uv5Z h߹?_QYfH5s-P@5!Rag Xl%55m=wJI'sDZ!_ڈɋx6h07qMW^s7]ao / `6C/sEhhN4baWHAaa# q8?7j(A&Ӱ4ʓ9z0 9֮s\R1}fwN:Lq6h/1߽웵G4~˗_SP=N4~0ͱ_@pLMqJT]dqvPߤ]Ijs8,9c@#=a5-wVu:eaC )iɁcri՚R~K@U Ⳃj,˂8HNI;˶AݻH9<> M`Ei w -K(ڶٗYlw{ akm-Ye;'9[>w6=BR.׌̞<8mh_  @]eaڗ GF˙8}U_lŖC֬Ff4 ]wlۖFg/?Kn6ۢG?> [g̙u=Aʙ7{1x;pSWܟo/.V'nFѶ`Y)Αgw0Si}gL!ÎQŁL7X #=Z_{ԙA5еYAUNdJ# !@C]-SSմl[%/X`[@$ (kضDTW=+B[J*`Sf!k(N1͏kfc+i9ٮ2&l d# XK*!=9:y l?R *EE׸>B;Cr3H;}1zQko>gx_[{wO_O1P #n>}aa7gv2 OI ouû/\vx7Cu3 &: Vh?̷.>;=ú@h~> ^cNR:fgҿfs^A`t~3im#/-W;&Hw&T?g3f;F˟4:`_S?ϔ~gX, b?5bb&j屝oӪ~D\Ad)_6FwYQVZJvmdȚFXkw~m|WTP}ڿm{ʓB,_ l; A5#O"P͊|P͌_d͙!'r0~IuM~|8ҘPT",r|8 .+6ap3W1Dgm y~e8 \` ͅUA~PslY$~e" Nܾ}@ɏp/M^伞uSKe57M0<#>tt~_8?8+~?Hc|M |o &TJM)unozL3-Jt 3͢W#]MrEju>C_ K K흠"plR+y;=T @h0 ?3VBۼb>Mw"޹Ǔ4c uHPttLe6"eѣbtыTmsdzlW,~9j\4(ӒfmcoYK{y~2< W'^mcB`>)\Ѭ&|6ξ]epUHo>\pBs90οv_ gΝFg?yȣYc_nȿ^t]y+V nqp݈Oǭ ǿ,FgVk~xqf@bXIF?~㕸w AnğyYX_?Ghn5dW5k\v=MO .ϚQƽ*ιFdsuoǼSG^\֏ǝ{u8fMGvdy?~Î=Q\L4h5-5C=ZM˚Uէز{R%Бkc]pMW&|R߲fM0gON@52VV̯J1Hc~of7ͻB38CpV P篴3o:a؁rx/F/w1"zo5?g{C?'n, @}ޑ ~i&K~ñ _9 &i"jZn5g/=f' fY>jt͟_wݒҎj>-#-v8z/Z83i &Lo}3 WA9fr;t\~|qUa-_귚4]pDWK&}Sחmߣ2^~6[ʗiy+KuoaB40aAGFX^F@<յ-P5d1߼ORG)(gSG@[@}8s~BƉ3d!tDړ.pdp1+PvXMp /cC-6"7svЇix >02Gg`@7ұ7Kn 8pg@O; G#"ўF< \M~`SP̽t&;լ^g}W5Ln}to3 \C\`P@,WPqM"Aπ+կ}W~CggG#p3L_)s'P/ *YHnp;}Q6̄! aC;%}§JhG_8f 2kϟhKb/[޽X PvYXW9Yha4hݣeY5t(*D8TI9\▫q𲫽BW8Wq7U[Y^e;ѣx򳱜( oV*)O2gۜh4,r PYٟhxƫpN~&tW,ޭ RLB_xk"Ҳ,\qD|p 9mb9{Ac̯kU>W~`xq*Pb_(uߨ_!tօ ~N@Xcˊ We'MPY@{ eYnPm^Y}g窥ljv& 2]ܜ &_(6J1طf@-eItZ2Xa,9i&i,*D.P;{L՛#.e(,Fgc09jM |_hi@p1#9&MQ|$xmya] 3bE9xQOp/?f|(&M5m2Ф |?*a? @ eYxq-O8~Sمe(g^>ite`GuLå4Q޾MܾfQaZ V%kci(ܢs,kZo*ǾI9llxyI{j /91OƠGMOC[xɱښHWw MuS @9;tW(Psuc*Y-(\dϟHfB\~;h_* GeN&Nꜽq1})3ee@?' 18vɓ9OJ90uu);. _<S}Pφ?M%Ÿ@%9+`v@0~&qQ<>ߕVH+bVbm'לh~ `vExPwi.,2= )j0! ;Z-%k<]\]YHE9"@ {y9"娮D-+ᣩP9&VZd19=?@Ѭظb?xOXZ88k-,;}'yGþVGEs?(@pMöm[^^e;wԭ;~)u 9 8DJKm,T '@og(8YS |t,}M O2-Vm\s@#ŨC` hJ!u펦Yd>t.].KKr0~qsN@Q!gח_NJwNV_hƞM!{\SC8_[{U}|U]1Kvv>]ɗ9:DZ%@B]2R[֬^}*:BI81!;5 5*gf*~"42lCVN2srRaa/YR~@V(쳸}z|Ta  `M^e0`^yz`?^ۗewMy1?|5{$/8i^g".Z%qZ8{PpS @ (C_ {W)Rov0WT8C7l_>}fʉF+(h&(-A.]=Z=}+ڶruMˍp!uK5\ߎh35w \pլq-9&Mg/?O=}CyF&w{æ`gS8onjǟ>fkodP,8LhI~M@n&)vPB-8&=m KBkUTkM꺪wf/1hP׌g!&p],ckG7? 8 /uJZ4ڭs{A\Uģ'1?aMwk/?ܪ{S*JI]* 19D1 `,1]:OpY2z~?K ѱ[wuu l'ʺPɩ?kaDnO赍}O*7u(kt7 ܡkmw^ 64%W|@f}8yz/}8o\!4r>?gFVw˽W(Gy[87p'GP)|9ry}w@fnh/g#:Hb/젥g^~ IDAT8le@}˧@~/p5Gw6{$[(OCM_QuWfʺ/qb  $/g-nŝռA@BRWI8</b*Pg3SX4ڤ  S?4o1ϜRyS v)PsU)lf'^(IFxzۣM,ogzAOkJo%د+p'OmkФZomo9TV`."GLPkfAp,6C!_ "Tsj@[0XP8W?U7y+s P_/}kA4ك8}1> x8*Pd@? q'~@9z9+!8C-OW ]_LqdriSRӐNHM1GK P[7@F4:|G_j|Au=_xOrU$}*U(YzvBK샏mh֘Vp=`xEE]@[f8)P#/EPl CzoO('ן35{r!S ӾJ4A&*1Y1(kWXId|458nB&8a>`7xI'8a#o9z Nٓ7GlpI?f: ׹ߙ8239CM?`9k5}樂(ljH\i8w1/8w`_'x@}ˏ'o΃c'q2iqkd5,C@ );峈ۧKŲ|nռ~l}|&p+_bhq1sk;{l4{r}@gq}$ u6h 41/ӸpZ@6t: %@] ̏&sMKA9L8SꫤKA9V9C(聯3PmS(_3?*.p$ 5H`bg4(o@pMv~| #>jZڨ  </P]w}9zL@y?T?hҽ-?MA7qmh#sM!]LoM8o{GP‘^gMSACK a'^P[t_ /pw! aEP5O K !Þ$2&Fܕ0ݓ8HJNz?]3VW]p·lѶϾ_=G3&qݸ'Lj3ϥ}!aY"ڹ . .V8po#֭but.N!0#5ű))5xzJw۶l|%߸j??qt>7~YiYxb,sT ~@[?BM_\з>[M{ m2ι9&ߵƫ _:|'ssOpyC_ߵ2[7Hk7<89Ѩ9:^ǿ(zHy_|ڋ8[ܾ E9_e/d4Np.(駯gsy0Yьiqr%F/P %WR]i|?]nzl8&ƥ:֘0n0<0ɽ°'6^7#Dz.6Kk)~  sG2 ^ͺ&Pp`Jf@])PKrV j.VD֪bCoɾ@]&8Z_юKA:A=>(_6ߏ9'7@cѸ*,B/@ p9a:'p<^W|/F0p9z/&MruMtb'C? :!P>BM_ EMyᲦ@yn7s_v nE5\n_p:8r~@͇L)S&Tn&NON9rz2t}>4ߏ@Ҡ>6q}͢4C7L2/ǧjU rGh蕗ԺIswy;Dua@\}Hhq&y~>=ND;**얛Wv@rP&q8qz *Zq}ž\8R Xa3 c%ʧCQQhOsrtnZ?P߫68~3qP?vKS"؟x8z\ /N]Py@= <~p80*PHJP'~סn@pjMuȶk(]_]τ/MG{#Mp{-p{i/(k aC0]X%]y@ TWUϊrD*+P]QH%E*Q]Q"_߱ d+4PNhLj 6m@PʾueUrT?cNp5c0r:LZ7Yjd \!nR :3~eYW]ԙV_ ;usjz¨;2$MecN@c[kEK8e_]pU S[}rq-|;3?6nt⑜9!q5(kèC`7غvGcqyt.W}J)G@QXN@?͘Bn7=G34ko=|tk2У[8pU=\ ;qY\ƕ9`/3qУ :ӻY92_[6KsqXej]/f7.bsܾmIOPq<.7N7is̀W&s=i، ZvldYqi#Xխ`;Yfq`3ٚ>>XV5>Ex9.sK4 n@>5:hwdGx}'9u~LvZgx52 !&ߓW=8-&M`WaMv}cɆw4>/˰ۏMoWsɩ 5ق(/8+HSG&CE`d!|S <*W9l[hkm~m0ήLk|f7lyLl7M(_+8(_4ő92Ф* _ z@}T?l!G/"<@y۟<6`8l{*( >eLtgŕ9@=u59pw@8ִxt H(Khb%&ݚ(mM Я?Fhڿ&2Д4OP9*!aLs>5YK7A|&[ y:ߟZ>N' aC~SAA&yp[!P^]Ù} q-Kj#(kp `I6ctۻe*.,j@f.P+c֤o(PnǴ/?ʼn\n2pjڇ7qv{Uw͸l (@t`\p ?в0GqIz5f8_d ^NL3's-ϗWpeMf6o8v(x8ܪiC`k?[Uh&ʕ\z4c@ƴY& @yy9/3Ukv}C^qۮ@/k !xР;pYz|ܓy]\ ޤ@q|tѥo$&Pn4se=8X`BaR?8b,AUe;/2 `C]-z8" 60iB`kDWv],hYPpjPgِ9JM}J]Ⱦ28T̜ kY%lV*6#3-w%_,&<Χ1c13Ҿ/*HQE$$B%eD![B3D2sw>!;{>]ih]g_Q:91PЮV3Ppm[Ѿ_U&D %@[H9v_5*+ bYcPs,>́@{|_ɚH1C]["M_wPOݪT'jC症@{* &ڱeiy_f7o.p\pms?U~G9kiGpmM||X*S2bk*݌LX FW/) ?_S2[̺W?P5GWp6sÃ?Gv'637H(C&Yۃ:Fr4{9KړMc='*}?rtf\ByUdsmo}rV=9]\m؇1?>VZn3ɫҾptGb Oԑ#XՑNw֕_gst}`r:h`@o|osm/^l3@ঐm hasmwțxvH6.el$.h ;iL]FЅXoIQp⏀s\ 1 Xk kK ye[Akl;}7",cق'AK `<'`혋8N_-y"Ŋqm186Cqbصmrey[~YJZvl]hh c1~BccqpT\RVžUm;g&7Y 95.d5kZm8tn {i>\dGzCq&39hUCx(|nLNF#nZg8ںO7 P};>@p4cPV1vsop^P)wre_?4\/"`mԭ$z3z31d ď+khU\W8ճ8#ud#u5ۋ٢Zq%Z(s5Arص;ϛ,N^2\p Mt3>u\~pͷtX>Ly&PpMիpig( k ۸eOu"jۑQW}HtrQ:F|ՏͻLwTb0P8͓Rks]ŦnM+fclXRO8?XA17ډԑ0VfG0('vLIxvz `P~S Xr1U8W"Nd"i֬i΢0ښ,؎ 8u]<}sc e׌WMRk-m\ A@qqNG8ϖ?>>M'&˙g`'W׿PGbTT}_S4ˏRYʟ5Z~M>? _s^vy2mʿymjͅs]T>%WkcDN4;8R rr9"Vx db`8 _jHl,k(v8sb':bڢ FCNh:7򝃽 ;r'|^.ApЂ'=ȕ$9ЫEǭ's@r4A@N9\$0}.PS > 9r>8q:rH@nr@~8 M4yKA^@9%,0&`+v/+ xӌ0J{ 6w #,";,xH5![@ԘdCGsrr4ҍh0fR^[~9J!91K([\q띁cG}fl_,?,-v393qKFZqp/p0il81b:~ qb|;[1x-#V,CxyxuKh}+38^mxHqAnDω3 6dAq91m9rՄ?u]>Yɯ4Rsѥ1`@sf^3>+Gr}:诿]{a'f &;+@~4yD?^z8Qb"eHۤ!ˏ)~7,p]&/[Y@uoPkZRT93~ښ=hj:@{ 1Gu显s@xڼ'u;L!R] ݿbYjuC2Ba 9fLs~M?+Ei܉Ř-Scc4؂%;ty^|Ǿ_i?z[+U.s-~}Uq:v`H9]fXip~,!t]-o515F@ore8 i _ZE5c+RMVw5~_VR4z&P~_y+?S1 IDATЩ)8q;/q0u1F̨F.䟭@@k߾Qχ2@YRUI4k_:WW/I?P#={G?/z|-N?غzz)& FYd[,;4YDL݋L}VrI_rfaz@SL='_@.zF<9W]g[0m .uϙ0uj[,uqL3=6Ũq_<PKp)}1ۚ(a[`صZ6hܦs^yQq[ vƶ'h}X=$9J&bqX1(upTKojq̶8:].8b)ͦl|iuy>k}1#`9gU@O/f$~g2c ?q3u)FVwRKu@Q-bbGf bA* senrf6h5#ĸ(@_ڸFʾQr5gOGڻX1qi:)Pow\2q)\HLds?ٱN9>]7ف@u{ʗ@R32M,SiiH(4exFRyG7s*/}:psqahL\R 4۔r.&_P|@f?j'Ls$ЅShŪsWȜ=|N5/^|U*ԓRmN'pھm2PVdc9P1!@Zv}$ӾߡwWi@nON,24\ly nOp8.߷- ,LVA3~ Q):?@kUA)VM8͟>?_eL@ۿNnd03>&6I3O;P=Us>GP :xZ~P*?MBc#kQ Cٱ` tr8tr+(ח8tF\97h☇4L=pih"8APp"L WG0qHR  ؎'i :4[ȵ]oL h=@s,:$0ȟ K r9? s@ ?Z)mR ׾D9v\`D4RүP`w[AbՆ , snoJ<YdEiA@\reI}.]\,P8PU};YoHhlf @7;׍5w&z_x ڰXU%X ]5tv1Nqc~M|NW޼ x-z'mZgYWalں.uCh'H5}h up@c|%/hj:*-ZmkrGE"M_pWGsJjڃ瞪ճI͖|5÷u1i)[AI_i͜[@'9~U@7c&Pn[n.\x[}g/+{Lю۫Z6Y?i>PEsẮp8RH5Zq `ZFi_,;3A )?Wq)T=tRukP"Kt>u(]brcRm+s0wcn׎3@y2vnbh9EQ`!@/eoݐw(v_@ntrʿpF1dx$X;(9;Pí(D #v +R!9Z`id6ws{Vsv@@?Qb](C81{iƩݟ.vjqG( 8`/)氿2{WVƗe|_ٿ]T:gGGf]Ǯ(طiy Cr(:+wjb޴?h53'oC:Ӿ8sT~~8,rS_O. LF/>^?L6T;ܺsמO6d𧾾!l !ڢ\f/s~oׇ~f% >uѹ#Zz1fH5coi_@s&i\}1296~L ri<3?;ڱ@IIrP|r>Xi9+p~nbMTG.*;ˆX~:V/O4]xrL&86'ښ1,ל6_9S_nr?wu0Gsbj'}DS9)̽ŪY1Q4/ؿש^39k'3ۦؿ1F_vl.d @ @z]!w_#;>oPߞu[h1q2?@p~e!wa@O9\ ؂ӐЁO9'q4G-/ FKm="^Amq8 ]84]"oP~ .P.9 Or  M;ȕq8@f1@Zr#9ApKYy3upd A'3? lg BbYEYdGIaȎ ;:t_#X()Ҍ9<Ў_$~͓XjD}N?,:~\0/@N38?e6 >;5kc!~CwVs䄶l>`5{'<|;Cc{'eEڏKi`? x9V[~ٖ.lrd 5b1hk(P C1`ƘUᢟPq.6@ٷ"M_pWm29|JRѥ1pRæuWͮ84k6=_=|ڼdN5P5WahDݿ%1LU &0(٢8́Z:~^_sN,8}5TƯ9Zc/nbazg:51U>h.oXɿ wH=^ ЁeԴ>,?q_p}-o4}}UHUG//ǴM~rkJ;+3+0?"M_wPn5 ArR]X/eׄ򷸽 ?ku1~͢ s$‘? }ZMنgNGkzH\רvef\^D\dZzx=Lgvd*~"$R| $5=C,2&@jtfd %-32 Ͱ@9-GȞʓX8p]@Y@[E8e_@koM8u ܦk%3oR9&p3(¯[&PmQ`:?_s_V$4Pu4z&Q*ƥiNZz(wG1OlI=jMfj}lNNbaa&5c 4>h\`y:5]^A^1|X4:(/A17'P @k+H W~9v0 ,Hq:riA9\0}w#ʥ˰96ˏrA9r97\8GH/dq~i> 㗫??@NF9\~? ]  O9\~/H%09 9s@r4ȕWGy%2a` 9 fx"`daV ╓5GYdEVr,@;D nIONBsQLJN6tRa@8 y*ڵ%˕'quر+f Rݚ^YtyƿE<51 ([,cG}|1ie{[4q@[F9C08>b nipñzhoqGd4z-7dm8-4d?F0]s,N㓵T@3详W_s|jhv8fq ί8+9"}ap~C?8p8 C({4mG^|Yrh>'1UM=y@=nv@~Pr)Ïnsg+68+VqnQ.J ukP!9>MdYu9EM)7d@91?m=\ !gr@9Hzb$5];TVq>q@9pgCq̝dv8V@ʸ 4avi@n_(ӌUd\NTT&ubAIf8 -n+&]rLT~` q?t~fvVV;ji 8[<8k_]t]`k\c'8l ǿڱG+^_LgʟnWǿuQ4}0K?L+R])ORדS~7 Fm߲fpʿzI26aUʿmC!~[??@Ǻv.3D4;(crxD9!xe%0HG9h)@!91b؃K;݀ 6IfG2ef2ph忌((@uoG0'#Hqm{@C BuqpdgL&$V鿕@܀?^vJ?;^h@f,`;W~" `4L͘DxI eQ܇otDVY=bu Ҭymw.ze|>u}hLi*jοz_retSr˞XRhJWxn"bGi90psPHd\oBD9TWesm͖$m$7j5pS9͟h M9fSϟRPה-V_4LtGN V̟, J:~4!n'EkVUpNE0yOUXKïhkl=@XicKïY"=Ck|˯9}ۦ3kMq@ZLhk"m]&9:_p?}~^<@V7Z>T'5{A@Nwh"xQ10}%r)K @sprt 4/`&7萝A |q e#&mFP @=&Dq@Fr8lG??@H/r4T>S WԾR?r; ]@LqG~ $y!9%Հ@: `e 4p,!7_]gxS"i `Z~M;:] 'toOyr+VoU_Nr,]3;` r~q_c}>Wvm:]pplu o~ewl#Gȝ?Z{;`igg;86:O{i$0Nرv't\dY]Qgcu{  C@ŗ @&.T$9\~nh}^@X햺kF*G7.8+T1@_3_;t]]9»߻pڜ;΢z:V] Ӛ ʿ~e2jk -?//1@QS @Rz HpʓcDpxM|C~re타J0]D [͎ ˂hk]iRח?m~9?1dڧ9=i*;/_sG9gzgGsH} fNsL?s@8;(ӿ+Ԥ`]@qt[@XelQ_߮ߺAji=l/V?9t eEFĎ#`IdgهsD8\jPVCp/1ToEKwȟNNtwK'z7 #ces]6釼9 C9v6N#9RtMk 1`0(חzW{"SBڷ~ ] B]oAar:ݾ$kbG?B& bG/Fv,3ގ?{A/#]ON [D 52EYdh;⏀G.[,B,dea_w{3Ldebώ"Ŋ ?{@#v׶-> me-*vjǎ@Q+ӬZ|R׳;qtTkĐ8=ڝzvl nmxp7)z4/ߕ 3c 2blX0m >\R2M@ׅk Đ?꼢 9T37\npm[;o@D:E=(dkzBfr]F3fA@ xt7qKt=%8uYm85}~J[}s8ggk m| $%-32!OԴ !5RP<],S3F3PI8)65.TiBsWЁNjZ,~M"u?/7Svן.fK_9W(Mpz#2\x dhI7~ծ> A.ŊŽ`:ni+jFyo;Є @b^z,0S/ LYhr @uOy-a89@ ?R@?r(9`"BlPs 1At C@!8bA@G|; C܌M89JxA@S!@ːAY8'mC?_wt9E'Ľ%r9tC(\$O 7l-q4[a@ ~r &7LS _% CHˑ 4rrq/&<~dHQ, !/ŻYd_ _7ӻOg S~W8!e@$Ďش…Q<=;K_ 2'r\#>tj 觙q@78tROi~o? N=`2$PvPE5ki8LDHSG - C[l{>,c=pSzL/ >b`vxW$:xM+<-1L,Ρ8qO=y]7B~Cr_6xJº'/PDMM'хF0]m{҅>YJ;m>\u>7d/Dƶsb*bP!2 1;p4bGċ1uY8\3'&,8jtiu ֌<8Z/!.h@<-pVlC?󤶬֬Q(5~ip^~/;xR-,kDϮs^uy{>AtcrmMּ).pg&:=XOǺ%sg*},Pn2TzwTyTrO'56)83@l͒t'u;'L&z89-:!X4&7gwwfkW9H(R5_L[@ѱ+M,Gs& f[~q4kTt93Ԯ-ij^Z6NTyqL>Rכ"%_(1݋ ` .%i/W?250{+gM_<ӿĺNՊ?n'j Οv( )s]؏H~~@rgΙl(hpC}&8PbxpcdRp*a#V㕇J1\S9yV^ҙQN3?1ퟯ<;?8'c_~7gUEzIacdە`M ٞxJO4WWsк@)|xߑvc'!uaart9М$N'9\yq`34 '*H'9A%0DKBo4gpupH/ idYOZxXPCsʸG@C4،3p"~2bA__hN7zCs޸;hWi? D1BahH~$+țؚ^EH}qzɵ@osG!1`?(קC"@?&à/ );h ~9v0 >%Ŀ@x !,q!l(Mr"HIKC֮2LUD0<_,3\gܗ`}x߽{!EY" I ``Gaw_FTeصmkB@JEugXS>WRM9TF_6P;!ôtL:w4jJ~0b گj77ڗ#^k*w~ZK]+/y7 #}ϼǷ獧([Y,;>iK7:b ƅZIxxcTcLln̶G׼f-TH8Ɨ.M睆j:w9 yESPtXJh~ѬVe\Nj `ҤY@b9F^(2n+`fMr9iDyڠq?VOr VL x|صkp .e7G96ːr9NbAqU:_Z[hrmM\g@ r"Ap4n1AӲhsrh??pӚ$m/8fښ_l;6:qߏ@Y.l_J_sP5kw3ퟥL'+}?SӿUm2$j[J0Dm_'J1QHqСQ)flF-I8f[/ =Y{2L)S7e53~z(#g]GXiyk9ݞl ?^kfr`4f$45348aP*S>9."K/(hvaƿN]V|i9 浜&p:\6`n*ei\a2%wǣE La$$r9"9 M W~Pq:mrèx! \R rKnBLՆ9 \@ /R EAPFA [w A^~MZ@84-r}'9A9 ] !()ۿ.PS ? ]8/9AG9\a%G0ffz@[!";2vk|O9cҠu~x+-4Ȏ@J[B"bIGch1њHIK7n1ڵp)Ns+ @ShqPht\XFCOgsN_R78shԬ}Y# ٸȱX e9Yp0 =$Lx-CH8Oti2=[4Ohh:I6퇎X,Xx.Э#8 @pl-}+Ƙ¦W_mmP@K )ퟬK8 38rS#75@R<\4S¯ 4+U~i͵9]_Eտ~U8q=۩&P\Q篜t'{(2w޲(t "d~`G!}֯B]B:9vl9t]r4]ı cDq! %A3 j<0@;@}?Կ7?q>h &N&4'۾.@H~e0Xa@ 9z]<`[@=4sr F!/n'ŭۘrh=4kRC58||BHv(2~l]pz}|i `dvl{>i4~߇H YdEvNe$LdBNVeANV&/K,2=;ucN 88RƇݵmi'zr9>Q/-x .>$~Q8~!@@h֦8*ICM|ZHY~okwΑouÃ-_cbhilZ7S< 6@&sY5#+u b9+zq28lv0_Z]pѼ5NȥkٱOݺI9bk( gUƨ; [@K&9o1W7*9(r7ton8~ߡ }mjX K,t]S  ݶxDZyve^>v]~ZJa{! IDAT6n@+6$.j:9 x\og 5=)Q<#)HMKCjz OIKCHIKCjzhu[Ѫ7˔"v+KS@5Wi#gs {7wۚ('t Di 9}15 'o A?Q9Ύ XikMh9k73kk' m6\l`xْ}Ҽ5CLԣ tg)JDWs@ή߉Ld_EYC_uٚ*Y|k19qi>@#).>X~Pu^s(Psmç9^4og?S rS@()_M/W ~^<\_}}@Ԝ&&1Ӝ[ 1O/8.q)yCM.;qâUtrAp&o)q'O9\8r @piڟMp35߼9c/LqzPO9\ȕf5q= EIG}p2q:rIPrrultoq@^@aX"ÿaPp cf"eIz?Sl/Eٱb `^ GĎb,`Xw\=h 88tX[(UW?vZ;Kx>qi<35?er<8X S@6h~p;=9N úw/Sm!x-{uCIs60fq(]5qepthT~vl߉.c&yZ8i2X"~=W80%ƘE0lj_NY+ew;8CiD$;xS1|,COr_4}OZ5c6lނOĕտ,Cˀۓ)_Sgq _Pд}gGw^EqU<8t;>y7'Iyq]ŗ C~x]bHLhY}.̝8v\dH9|kݏKQY^{7[O6ؐ%sfu}j#(m s}w î'"@)́x^rle[sw(&pjR?U~9~A8wb1~R?K_9\z1g:[}S592]^qP q+ J¯9/W@\HF3H S5eu5*0YߺU+%E e|:>)9T_p%}j?@>P딆co9pHˉk@Z Q~8_8x ؿX_s\M%k(wmjvmdAsp'yO'cinɧhVuQ| O>ʹv,`hk$ӣ;Bsi]6оo<`rڷ֔%7}rli3mЄCMlBedcN@gʖBw? 4d(61>o`Κ6N&eq=h?$G"@8r} Bo:~כ^ҿ@p4sA@ns2lݾ›(wz'/ sԿ`r X2 Q,hX_,N.9{JBh="X7=,e D/?v;02hl`iDeqiL\^qرJOsu:T: 7xZDŒ[TR^;{[0m .ubѾpYƌ7PcoQSf޼rFz[˯U4nA_2%C:ЩCVv9PV߸w,)k\q4y:˼8t?42$@CI?;RC! Wx8|E4kA@zgRsرn\qMf .^40Texi8zh8nQZyf^~`V/~Xf`hrχkG~h\s}>,gpͷ3u]eR 8s 1nlիpig:BXIOlH"!b\u=,Ꙝk݀wH<8 ګ}s]Os~\i4p,ZO)ʴ|ƥ\&3_Lags@[W9SmL)9Mmi?SZ9]/?J;4} ӿT_ 5s;֠2u,ό/8v)t$cOWQ;4d|5͢9@E^cwHuix67D;44ire:h5o[G884w t]4_gS9,Rg4Uo(j_s]%@}a@B$_<~ok`p7KM U/8k59[𵚿Gvfe+`j8 Dza@xD9rvl Hh=@N9\A@LA@S9`\~mCPP/<iU؊ H p $e%l;9U%p{^閎8E.-?@D9\ـx1p84g^FH3rMN iv@15gX~#hN3g;1Vu%ޝ60ЉUYv^Qk:c15uϞ^}̓8?Uz.jqƬ2ܸ=lZs.ta@xe$3|ÏMѬu|>ZIP@hkd_ ^pB]*3bK'=M05k/&@q9Mq}|18LjRI9q7q'c ԅ׭Xt]l^3*V9?n\s05=Cb09K2්铋@q yki/űA@S5.sT;v&7 T-q@[ӥ9PKaos)L ?}v.;t>QӘ=!]׼؟ho?hosmh}7-lPi_@[<&98PAs,O/o| |S4ZsV 05߭;Sꢛ_`@u_Y51*~ЎW59/-l:5)qgNU$P/(=T~}sPT3>b.UϝiV*wӋ ok&)0}Ul cFϭA@'81s?&BU+SZ%Hxrn"rۊȵB# q6m;N^Eoa)3&4i8۔5sC7,$H9\~4H 084-r(b@; :5 G v*dpzh.z.p=֬>;ڛR~;c1{R6dR@?wᵉ>q[yZ\2wkp_ʸ]k ,8/Vo?ه&W__o+8qv$㭙pa .d|/ qM49wMq_S+Z+QSwsw;رއ>ne(9^LFGu tZ8ukbxxuQY>$)Wߏi#J yѸdyW̙knUCY.Y+j\ź/W@RQܿh1{i|};w|* ѫ##F\e7"HVesT7P'=YqRCf_:P*]߹2uTq}HK=v|Sgpq}WM4@b Y!L zi~NqtbO~hMcx(wҘW(c[ȩj'PX|8n9x;X&MTp^3%8) r0д`f&l<`gWBqi@q8n9>~;@7?7@ 8mvb;fc3k>HӘ+;>׿ wC{2LgrUcz""P@.0r~sGh^O9| Ns(?X+/8ܱ/8\~h_G\lF m' Q ׾d8tw@.R%RSLaxv CQ~КmT-Ed.{Y;-Mi!,3O%;1@nj4`̌&-Đ}$ EG,%@_'s(z6عe4uy&P5qM͚hǷKrX _̝RM&ze ~lg s'F+vڈOgh><@:4~m of/v58{54]@ݦ~@)EG8gRmd\Gpxc̀V;Ohٽ\UF74lB0vߗAVOZA 9juI_~pO=Chp.8|_}>W־16u:C0rE]~X/(o659I )0|e.r꧄= FSמ0KIJQPdez+@9I{w?<vA4W$'_Sop蓒rV~3{-MT9aey1q@| }@8M2{D8moj#wńC֢vE*.OF~CĈLk?Z^~󛚭qBvj_!v|Y52Nk֬r?m9UЉ2LFq-A}A`Lwo߆7|0`@8-&pH~,:8@ .PIpT q@Z45m%9טrAyBAצ8܅J y} MdZh?w9*{wceW 㬳5Хh|Ic?zC mpiUL~ԑlcu L_qqEG =(to8lj]3HW6_s ONpe[( \l.9Z~46d8|{vF/Ʈu<Ц]@O7uP뺘3~n A :90sŒ͒?:i_( /ywQ8|qzs_@.u8 >29@-ˊWnnk"` :"vBPSvPux'EQ`~ŁZ(WqV3c 8TbtNq)+W@њ^)}j>+xΒ8f_qiߣE9;\;-?Drǭ:da;}sOb+]j_ 8s{\rRr:UǿԬ Rם\l_uP sijTLOq4~{@(0LXi __JI\lղӋ#ŘoeEmB9- 1= scį\Uϣk-H9> r* 81 f!L!M6uSI驀9a3s@-9f0Ls Wpd8iCPl-P F/8a~p@8 ?A X08 ݦ@7McaO7͟pNt0`( >hMYx@34I9`i&[ٛƈ  <P@uDa9f k4۸Sh4N1_1l֬~&@c<ެYf͚櫉3Ӑy(ii5wiHOKKCơtdJ=YMgA5@ rw@VOp"FO߯^z:q땸H ɁK[ hH_,l2j}L]̝8&8OZLdcxQӪ( =i.AM&FPoqQ49G9Zb_qi_t1e?)FehFx-{]))}Uc\+Br]c `菑}F9d\G7ɟ%Pިv߫a5vOiҔH 8"v,].>Tt#mڥ#uzhh'3Jf>q`b.fN!ǯ̓@3.2\kTCn<TzSm?9\TR`ųb+H۷WuN`n8!QLL-}.]%SSeʠd2(RˢDj*J.Gj\aGXN 12蹧992oG5ua@; ۴}ca5gd~hj~7u+Br)W,{.6\ia%[&;fl 09?Lriev*_^8}a@PuxWT`?X=ob: +-3L8xJU/8@&o8ht؃.տ^^AMkBs:+O[!9` ?I8Ke,*= 辥O)|8&P]/kr,FW_+Ohj:U'^q;r)? @@qq9z~Gp-vgbԇ q_h_gUv v# |/u9TW_p^a@ҴV>Iq?7@NS6 08 /)r9 `X8 n'r!(І@ƭ iih^0?:*kՄh gOAmf͚5 ;l9@1crc1sr$PşUکLOO@R*/Wg `jJh@+q>Lptt`AM8f ]44kQs/c&x};>+9A]s)ptp kzHrr]tڅJ߯]:ǢcX=N\];tI&U0jpqc1d\TMN0?ح88 d9_ }Sw܀~>ڲtjBbzڲd8Cj!u]|(Jfri \H,P8>H^_>cŜ[}M +jf~:C:6ڻ}Ntqs<P;.d8u;}f ]cэ8?7GAv2>#-R(Fc@uu=)qMɑbjT\%ӊ3+I':ϲq9 M8u69!h +`G1?Z_nT[3t!bX8`HgG9Դ͓~e,7/g.I&n+??*f[j:Yu]Y^u8![֛8hl]ۄfjL >*M8cEӌ91KB\$Z&K07@.Jvi7+şMw%Z4 B@f"tbx)]S@{vA:e\@8vhѬӫ~?[0z:$vBT9:!$,JM%suQJ ƝV/(i49Ou{ts sL<0zvw I$, x@'45SsE(/&Mk @,~(3brJ)ԬU,ejgk N@uϑ~m0984Mr@64~_io0 ]BBq'M9M_n9fMqi߿C( IJ2SקK39%R [+_>()WԱA_Q`aQ>owEw5`THl}Y~ *Hc`ubvL^>lצ#Zّ7~پw^\~Xel3qב{ׯp"۷`[>ssdZ=3ҿi>c׿}{wdD?}azU1yr4 ܫ݈A≱ӧhѢxPvm[sZ]vX"F,4o 6N0Zh?LmVX5k֬Yv,9tY㕷@ff[e  F2]Z>q3,&̠gq4^N,<-m 04eoC?We8wx]'߮E{@(Npif|w;VpŬ1#p{ÇOg(zfQr=$C:X# Pk8 B S9鞼je?ХhlHz|/\Z&}Bf/?8TKfrG1E*h:_P@0z1hmxm4f&Vp](̾uѿ}k(4c_{b 8"?:Ǐԟ' a Ν0ZrRRyGW̙kn#zTwvB\^z@q^EqrEr*82J`@7Y%q{U@; ..&귌97Divm;߲~?9qAk_rqYiBCHf>l2duHqo}׊4ead}z~d=oqZdPc̝7ӼHG]<4r/~SPDi^q4Tq!~s1)/Llˍ"J֣ŬH6s#a{RseH}پ#C&n - ,)}+o<~lU#oY?[#vgFD4;߳sݜ ֫W/nW_}5W,v'@h͚5k֬Yf`qf32BFz2Ӑ_ӑC!PP:1GN(Ήpߵ:[ο׬1@3W⫯c@;VĮH J_dԾ~ roiH~3bFq8vqN%5yf08Zx,f W o`MA=e5}ǁ(O znb^;N<;K-55Э ֳj|9X/O88 c5cPu1gв{oGX8@Q`@F8Ys]q5N!wte3>?noIrxkW,99uma=ι"MGhr+uv@ )8p]sr (wѣ()Y꽗SSQLYHMW>Sb ;q$Tճq6HuaOI8SZTLt]t`JqUcQ@24-ݗGy?[i& ?q kpj3\)u L~6P`K 8@joaQ~hj^Wǯ:'wg2qqE(Ph ijݗ 1.AN8[׌ 2/ӯgg,N8+fs رs~_R"]PSx 0%RFmGjSNL,t4Y|8110at aJ wawqJ Oop.5\QzG_ fh\_ vDpSCv [^qD}Y=GZGوtwR7vo~9MTWn'#]hpM -ΉGhؼc<Ϙ IDATԍ?!y]x{Ⱦ`7G@_|ɡ~r%ˆ @Ո?8+8V( R":u"<. >_* O]?t(_]t qQ׿Atzq(nGh?HI[I#7zi_cgrŵ)}b[|(' _/m֠'k ySΜ́j|O(p9` փ_D4 +#ڷ@us? +9᜽OR6 Go Fq(GQ9M)f{xMa#rCĩ-vn翎9(R+(*x` M쟟a"7@8|L~.Sw"\S6\4 Z/pmKW!\Seο>ѿWN#ڷMNo\3s{Llu@s\N>\ 4w,320< 3ܴ k 7'oH_*?Q% 'N?9B C&ǻrg 5?eLyGP˱MG+s1^>?ӊ9=aWc%?>$1Xpf3{"Hk~.@7|7vԝ `b9Mh2<WH v]ŸV5CwqcEkq_/*.4^ۥ@YbL\[Y'+b@Frc1L1Tr~xz8f/Clڱ|(toHzibO6KH <~H.8f\qܻctmWZc7?"R9w2,|8q{8T3;0 ` vIY;Y7]:YW !`'3;XpN^4z,C/82W @CSI9RJ8ԏ{PUqcJYȟ;XEt#|,+@\~ N 7ȋ^Tq]n9qN5Y_4XA͛q eբr 7g@^c9M`^8 K ՜[dD9sND~ϖAP8e,}4tmzPrFHvfr+0f _56#H"fʳ V~]:!(5oEG!QݛҤvjr4؎;8M49ֽ4>u}P@[ oSi@ŜOͭ.F^?7(Ӿp "L&~(g!P->,Ϗ#q$}E5(QЅ L @0}_'FL ;@CFq4qr4՟ n8\A40A }@.?rr?3߰K<Qe'?_"6Y-Ux͙i~H9 MHb  M @Ҵ 8o]2 `XrP 8 L5t,ex 9O.t륆HofƝ R['h1x2@'9O9~Dq㮼82c(;8Y'Yz8 ArUҗ&P,? .=* /ڵkKfͰcxEXV-4n{.ߏO?ǏG<S %קy[2m)Tm\l(` "8ؿb@hmYL49q?ɕ2K0ʎi3'q_qi^)w~@S8[=Yzz ~ 08xjK"wp(7O!Aڟ =um@Y֯_S3m/ԧ(.:PQO{@g39eHc8MqhjLY(N `ƌC FR$ `XhY #GporiA^+ktHF'A%VACw?%KU}`@fk9e P9KF/.0MW9br "Ci68mkA`4JGasOB z"ϛ_EVVʖ-TPŊf=UVŢE0f|ͨ[.q]w!;;[Ktxh͚ڕIQ_'H\_pqgT۟U=zg=zsC_~AJJ 8=ٳgPBhҤ 6l؀bŊaBOGڰaCܹ@]5clFCLOCơtd!P2BFz2w84ܻ'DSq/Nl +i%Pj,Oܲg_pd_/BjM `Tn Xi?KΝ8uhqM=$jZ;m_i!9L\X,h*n32хsrH<\"4J)eϥˠdj*J.뽗)(U{/Y qErP|q[GF[o>|{ɗٲdP46 :H\7鲞z(+c#RlhriR@ rV-.YfhDe HӘ@麉 tT?Ge!Ow;qO@߳e_ou_=ܵYy(/W@Z`yZ591yr0Oo?_s9de6f2:,K%~Yk_J“8`5ŌQE\ς' s__/C_:6ETC2{ |9(GJKiXPv#Be3o-,be(^$SYTDZ>W߮Wqߟ2>7r?I|R͛|~У49!b2y@orG7A}R韵r,^TANf9Oܴ2SYZ>rɟ.[GS{ܟ_ws@HQ&A { >}N:SL3l0deePBvǮٌt4Uؿ3 Op) E=&S Wwh rvp[DQ >՟ }{x>:E3?i? O)0Zom#ᚲރ!M"O    -nqg3Y n  Bre PL2$ k?r}L9\6c񀏍t+WN.fggc<&M`ΝR\98sڵ ڵ?,"}0T[>e4 w1f͚5k֬  47fn(3GAzz:ʗ/:_@k׮Y&6n܈=z`ƍ8/ ._|{)))r61''GjOqէn9 jy8BAVf&JJŮ@WC9fleZ;\8C8BbHcR9qLi'էtxI+}NxA! q,~ϴLCŘ܅&N?:_cCyN- </^Kр?t%ߕU1qv I w?5͘`ѫ~ Ĥ ÖVz3x_N.`嵹z9ՍǓvq$q_֏J@iPh e_{b8q\ئƾ>z-ؓͮ-6b(N=\r8`09P08*Mon5^W#wlU8v&P48zlg/dI7L`sض뺸} ^ 6_~8p Аq+F}3L~fz0hrB/Qr;BPF9\_hۥ&P,{r \'qc5o"4&,.tQ|.݈׹ؿdu6;r@*Y\ѲB}.N?Hqͮ3\q^Ydz*#*Tf~֟ŕlǿU׬QiTrAf<{jޓs8TF8-ؾ&,mo ewhrf}؋*L˛!%u׌Q\l`uQ |h_'_9y2N8<cLVAgn?eU)+ ,F1 ؘggghѢ(SVNɒ%2/)`j 0x,^۠kM29r=ӄQ8Sa `?@e^XxaЁIQx}8``I}G'+!;+MNlw"9rx.du#OtD<|/8b;(7BH8bxmH݀2}:x0M&r}-ЅG!x% O_Krpb˙8x (֫C90A 4_Q@8<v`#9RG8RK8jNP'9SfqU_DqJ0Bř)N4bv1 (8ˢL۴`}#zdH*4K$vO i1۵_ozK+"KMpڟh"\z,( wRA9e#8Lr4rP0 nq6rYP0}rhp"rs@g#0xCXb_L9,(`ʠ@ogX +r?as@@y2!yYh;n|j[ .%;, ]^g5֬Yf65, ϹAs:7sGaڽQA6˭&0vbCf2 r)b) H-ԼAH<`hhD_a4qut0|ZF3z@#>X,E^}$"p"ݨ乗ҲcN ;>4ab+ֲ):PtMб]9aj@)SۻnFa@ј-jC~CirMJC7*&|-f5}lj{Zua:ҳ&r:PŤmYG{#U5al.9K0(+8WRhGhǃOL6#D87}+c蓏PwnX`XlrE_t]ؼQRtKrO@*`@r(Vعbk͙<@G˿!) y1e+x7NݿgsKbqMMoҿժwQڹjD\_qOqW/+p盱rVL 5/J1Bq-_Zif) P `א.\2J3$!MRM*j1iL*PrNgroY_9?bܓB )$gQ.v00<M._%ȫx{a3Zo *P/K&+d]hra8H8sB@rm?׼945y?r4arvLq:4QG79&(N?rr 0}xQFO}/g"790h@ ӌ@QL?&L?C|8}UaF@}p+3irԈ?y2wܫxyˢi9@k֬Yf͚5kb Yf͚5kК5k֬Yf͚Zf͚5k֬Y@k֬Yf͚5kvh͚5k֬YfYf͚5k֬0+d 6}twܑ]ZvnD}N6߱֓Jۗ}ٗ}ٗ}ש:3}n-9tQz)݋ޚ5k֬Yvj _>ˆ&l932l4j-G-kyؚ>c͚5k֬Y;yvܗa,,v)3l 9KɶX˲lLx%a//SuB6gʏr)Gj;ѳUonfigYf͚?a00Q(n'^kK/Yf͚5k ; 4zLNr '2013-05-13' dh = lines.grep(/^debhelper: /)[0].split[2].gsub(/[\(\)\%]/,'').to_f dh7 = lines.grep(/^dh\(1\): /)[0].split[2].gsub(/[\(\)\%]/,'').to_f cdbs = lines.grep(/^CDBS: /)[0].split[2].gsub(/[\(\)\%]/,'').to_f f.puts "#{date} %.2f %.2f %.2f" % [dh - dh7 - cdbs, dh7, cdbs] end f.close system("rm dhstats.txt") packaging-tutorial-0.12/cdbs-dh7.txt0000644000000000000000000006300512214260445014247 0ustar date dh dh7 cdbs 2009-09-07 59.92 12.69 24.97 2009-09-08 59.86 12.75 24.97 2009-09-09 59.77 12.81 25.00 2009-09-10 59.73 12.82 25.04 2009-09-11 59.72 12.83 25.04 2009-09-12 59.71 12.84 25.04 2009-09-13 59.71 12.84 25.04 2009-09-14 59.68 12.85 25.06 2009-09-15 59.60 12.90 25.09 2009-09-16 59.49 12.95 25.15 2009-09-17 59.35 13.01 25.23 2009-09-18 59.30 13.04 25.25 2009-09-19 59.21 13.11 25.27 2009-09-21 59.13 13.18 25.28 2009-09-22 59.03 13.28 25.28 2009-09-23 58.99 13.32 25.28 2009-09-24 59.00 13.35 25.24 2009-09-25 58.88 13.44 25.27 2009-09-26 58.86 13.45 25.28 2009-09-27 58.84 13.48 25.27 2009-09-28 58.80 13.51 25.28 2009-09-29 58.77 13.55 25.27 2009-09-30 58.72 13.57 25.30 2009-10-01 58.69 13.59 25.31 2009-10-02 58.68 13.62 25.29 2009-10-03 58.69 13.62 25.28 2009-10-04 58.65 13.67 25.27 2009-10-05 58.60 13.72 25.27 2009-10-06 58.57 13.75 25.27 2009-10-07 58.49 13.81 25.30 2009-10-08 58.47 13.85 25.28 2009-10-09 58.46 13.87 25.27 2009-10-10 58.37 13.95 25.28 2009-10-11 58.36 13.94 25.30 2009-10-12 58.36 13.95 25.29 2009-10-13 58.36 13.95 25.29 2009-10-14 58.27 13.99 25.36 2009-10-15 58.21 14.02 25.39 2009-10-16 58.19 14.03 25.40 2009-10-17 58.12 14.10 25.39 2009-10-18 58.10 14.12 25.39 2009-10-19 57.99 14.21 25.42 2009-10-20 57.93 14.26 25.43 2009-10-21 57.86 14.32 25.44 2009-10-22 57.85 14.34 25.42 2009-10-23 57.85 14.35 25.41 2009-10-24 57.82 14.37 25.42 2009-10-25 57.76 14.45 25.40 2009-10-26 57.75 14.46 25.40 2009-10-27 57.74 14.48 25.40 2009-10-29 57.74 14.49 25.39 2009-10-30 57.74 14.49 25.39 2009-10-31 57.67 14.56 25.40 2009-11-01 57.67 14.56 25.40 2009-11-02 57.63 14.60 25.40 2009-11-03 57.61 14.63 25.39 2009-11-04 57.61 14.63 25.39 2009-11-05 57.55 14.68 25.40 2009-11-06 57.53 14.70 25.40 2009-11-07 57.54 14.75 25.35 2009-11-08 57.52 14.77 25.35 2009-11-09 57.52 14.79 25.34 2009-11-10 57.49 14.83 25.33 2009-11-11 57.47 14.85 25.33 2009-11-12 57.46 14.86 25.33 2009-11-13 57.43 14.91 25.31 2009-11-14 57.40 14.94 25.31 2009-11-15 57.39 14.94 25.32 2009-11-16 57.37 14.98 25.30 2009-11-17 57.32 15.04 25.29 2009-11-18 57.26 15.12 25.27 2009-11-19 57.22 15.14 25.29 2009-11-20 57.11 15.23 25.32 2009-11-21 57.11 15.26 25.29 2009-11-22 57.01 15.35 25.31 2009-11-23 57.01 15.35 25.31 2009-11-24 56.95 15.42 25.30 2009-11-25 56.94 15.44 25.29 2009-11-26 56.91 15.44 25.32 2009-11-27 56.88 15.48 25.32 2009-11-28 56.89 15.48 25.31 2009-11-29 56.88 15.50 25.30 2009-11-30 56.81 15.58 25.29 2009-12-01 56.77 15.61 25.31 2009-12-02 56.73 15.65 25.30 2009-12-03 56.69 15.67 25.32 2009-12-04 56.64 15.73 25.31 2009-12-05 56.64 15.76 25.28 2009-12-06 56.58 15.84 25.26 2009-12-07 56.56 15.86 25.26 2009-12-08 57.04 15.67 24.95 2009-12-09 56.98 15.74 24.94 2009-12-10 56.98 15.75 24.93 2009-12-11 56.94 15.81 24.91 2009-12-12 56.92 15.83 24.91 2009-12-13 56.84 15.94 24.89 2009-12-14 56.77 16.03 24.87 2009-12-15 56.69 16.09 24.89 2009-12-16 56.70 16.08 24.89 2009-12-17 56.70 16.09 24.88 2009-12-18 56.66 16.13 24.88 2009-12-19 56.63 16.18 24.86 2009-12-20 56.61 16.22 24.84 2009-12-21 56.57 16.27 24.83 2009-12-22 56.41 16.38 24.87 2009-12-23 56.37 16.41 24.89 2009-12-24 56.32 16.47 24.88 2009-12-25 56.25 16.54 24.87 2009-12-26 56.24 16.55 24.87 2009-12-27 56.22 16.58 24.86 2009-12-28 55.90 16.73 25.02 2009-12-29 55.90 16.73 25.02 2009-12-30 55.90 16.73 25.02 2009-12-31 55.81 16.81 25.03 2010-01-01 55.76 16.86 25.03 2010-01-02 55.74 16.87 25.04 2010-01-03 55.72 16.91 25.02 2010-01-04 55.58 16.98 25.09 2010-01-05 55.48 17.09 25.09 2010-01-06 55.41 17.20 25.06 2010-01-07 55.37 17.23 25.07 2010-01-08 55.13 17.48 25.06 2010-01-09 54.98 17.65 25.04 2010-01-10 54.94 17.69 25.04 2010-01-11 54.91 17.75 25.01 2010-01-12 54.90 17.76 25.01 2010-01-13 54.91 17.78 24.98 2010-01-14 54.91 17.79 24.97 2010-01-15 54.91 17.79 24.97 2010-01-16 54.86 17.84 24.97 2010-01-17 54.79 17.89 24.99 2010-01-18 54.78 17.91 24.98 2010-01-19 54.73 17.95 24.99 2010-01-20 54.73 17.95 24.99 2010-01-21 54.72 17.96 24.99 2010-01-22 54.60 18.11 24.97 2010-01-23 54.57 18.14 24.97 2010-01-24 54.58 18.15 24.95 2010-01-25 54.26 18.33 25.08 2010-01-26 54.23 18.37 25.07 2010-01-27 54.22 18.38 25.07 2010-01-28 54.18 18.42 25.07 2010-01-29 54.15 18.47 25.05 2010-01-30 54.08 18.55 25.04 2010-01-31 54.06 18.57 25.04 2010-02-01 54.02 18.60 25.05 2010-02-02 54.00 18.63 25.05 2010-02-03 53.95 18.67 25.05 2010-02-04 53.95 18.68 25.05 2010-02-05 53.92 18.72 25.04 2010-02-06 53.89 18.75 25.04 2010-02-07 53.81 18.79 25.08 2010-02-08 53.77 18.83 25.08 2010-02-09 53.74 18.90 25.05 2010-02-10 53.72 18.92 25.05 2010-02-11 53.69 18.95 25.05 2010-02-12 53.64 19.00 25.05 2010-02-13 53.61 19.03 25.05 2010-02-14 53.57 19.07 25.07 2010-02-15 53.55 19.09 25.07 2010-02-16 53.51 19.15 25.05 2010-02-17 53.46 19.23 25.02 2010-02-18 53.45 19.24 25.02 2010-02-19 53.40 19.29 25.02 2010-02-20 53.36 19.33 25.02 2010-02-21 53.34 19.34 25.03 2010-02-22 53.30 19.35 25.05 2010-02-23 53.21 19.44 25.05 2010-02-24 53.17 19.47 25.06 2010-02-25 53.17 19.47 25.06 2010-02-26 53.17 19.47 25.06 2010-02-27 53.09 19.56 25.05 2010-02-28 53.08 19.58 25.05 2010-03-01 53.09 19.58 25.05 2010-03-02 53.08 19.59 25.06 2010-03-03 53.07 19.61 25.05 2010-03-04 53.05 19.64 25.04 2010-03-05 53.05 19.65 25.04 2010-03-06 53.04 19.66 25.04 2010-03-07 53.03 19.68 25.03 2010-03-08 53.02 19.70 25.02 2010-03-09 52.93 19.80 25.01 2010-03-10 52.88 19.86 25.00 2010-03-11 52.83 19.95 24.97 2010-03-12 52.67 20.10 24.98 2010-03-13 52.57 20.16 25.03 2010-03-14 52.57 20.17 25.02 2010-03-15 52.57 20.17 25.02 2010-03-16 52.56 20.18 25.02 2010-03-17 52.48 20.27 25.02 2010-03-18 52.44 20.29 25.04 2010-03-19 52.39 20.34 25.04 2010-03-20 52.30 20.45 25.03 2010-03-21 52.24 20.50 25.04 2010-03-22 52.21 20.54 25.03 2010-03-23 52.17 20.57 25.04 2010-03-24 52.16 20.59 25.03 2010-03-25 52.09 20.63 25.06 2010-03-27 52.08 20.65 25.05 2010-03-28 52.08 20.65 25.05 2010-03-29 52.08 20.65 25.05 2010-03-30 52.08 20.65 25.05 2010-03-31 52.08 20.65 25.05 2010-04-01 52.08 20.65 25.05 2010-04-02 52.08 20.65 25.05 2010-04-03 52.08 20.65 25.05 2010-04-04 52.08 20.65 25.05 2010-04-05 51.92 20.84 25.02 2010-04-06 51.90 20.86 25.02 2010-04-07 51.89 20.88 25.01 2010-04-08 51.86 20.93 24.99 2010-04-09 51.75 21.11 24.94 2010-04-10 51.70 21.16 24.94 2010-04-11 51.65 21.20 24.95 2010-04-12 51.62 21.21 24.96 2010-04-13 51.58 21.25 24.96 2010-04-14 51.57 21.27 24.95 2010-04-15 51.55 21.28 24.96 2010-04-16 51.53 21.32 24.94 2010-04-17 51.55 21.31 24.94 2010-04-18 51.59 21.28 24.93 2010-04-19 51.59 21.29 24.91 2010-04-20 51.56 21.33 24.91 2010-04-21 51.50 21.38 24.91 2010-04-22 51.47 21.42 24.90 2010-04-23 51.44 21.44 24.90 2010-04-24 51.43 21.46 24.89 2010-04-27 51.34 21.59 24.86 2010-04-28 51.32 21.62 24.85 2010-04-29 51.31 21.63 24.85 2010-04-30 51.28 21.67 24.84 2010-05-01 51.28 21.70 24.81 2010-05-02 51.25 21.71 24.83 2010-05-03 51.24 21.72 24.83 2010-05-04 51.22 21.76 24.81 2010-05-05 51.19 21.79 24.81 2010-05-06 51.17 21.82 24.80 2010-05-07 51.11 21.88 24.80 2010-05-08 51.05 21.95 24.80 2010-05-09 51.02 22.00 24.78 2010-05-10 51.01 22.01 24.78 2010-05-11 50.99 22.03 24.78 2010-05-12 50.99 22.05 24.76 2010-05-13 50.95 22.09 24.76 2010-05-14 50.88 22.18 24.75 2010-05-15 50.86 22.19 24.76 2010-05-16 50.86 22.20 24.75 2010-05-17 50.86 22.21 24.74 2010-05-18 50.85 22.23 24.73 2010-05-19 50.82 22.25 24.74 2010-05-20 50.82 22.30 24.68 2010-05-21 50.79 22.33 24.68 2010-05-22 50.78 22.35 24.67 2010-05-23 50.77 22.36 24.67 2010-05-24 50.77 22.36 24.67 2010-05-25 50.65 22.48 24.67 2010-05-26 50.60 22.55 24.65 2010-05-27 50.42 22.78 24.61 2010-05-28 50.38 22.81 24.62 2010-05-29 50.35 22.85 24.61 2010-05-30 50.28 22.93 24.61 2010-05-31 50.15 23.06 24.61 2010-06-01 50.04 23.10 24.69 2010-06-02 49.97 23.17 24.68 2010-06-03 49.93 23.20 24.69 2010-06-04 49.88 23.25 24.69 2010-06-05 49.84 23.29 24.70 2010-06-06 49.80 23.32 24.71 2010-06-07 49.77 23.35 24.71 2010-06-08 49.76 23.37 24.70 2010-06-09 49.69 23.46 24.68 2010-06-10 49.64 23.51 24.68 2010-06-11 49.63 23.52 24.68 2010-06-12 49.62 23.53 24.68 2010-06-13 49.60 23.55 24.68 2010-06-14 49.50 23.66 24.68 2010-06-15 49.45 23.72 24.68 2010-06-16 49.40 23.77 24.68 2010-06-17 49.39 23.79 24.67 2010-06-18 49.38 23.80 24.67 2010-06-19 49.35 23.85 24.65 2010-06-20 49.34 23.86 24.65 2010-06-21 49.34 23.87 24.65 2010-06-22 49.27 23.94 24.65 2010-06-23 49.26 23.97 24.63 2010-06-24 49.26 23.98 24.62 2010-06-25 49.26 23.99 24.62 2010-06-26 49.22 24.03 24.62 2010-06-27 49.20 24.07 24.60 2010-06-28 49.17 24.12 24.58 2010-06-29 49.05 24.26 24.56 2010-06-30 49.04 24.27 24.56 2010-07-01 49.01 24.31 24.55 2010-07-02 48.95 24.36 24.56 2010-07-03 48.94 24.37 24.56 2010-07-04 48.90 24.42 24.55 2010-07-05 48.90 24.42 24.55 2010-07-06 48.88 24.45 24.54 2010-07-07 48.87 24.46 24.54 2010-07-08 48.84 24.52 24.52 2010-07-09 48.82 24.54 24.52 2010-07-10 48.75 24.61 24.52 2010-07-11 48.73 24.63 24.52 2010-07-12 48.71 24.65 24.52 2010-07-13 48.61 24.75 24.52 2010-07-14 48.54 24.82 24.52 2010-07-15 48.49 24.88 24.51 2010-07-16 48.49 24.89 24.50 2010-07-17 48.45 24.98 24.46 2010-07-18 48.44 24.98 24.46 2010-07-19 48.41 25.03 24.45 2010-07-20 48.36 25.06 24.46 2010-07-21 48.34 25.08 24.46 2010-07-22 48.33 25.09 24.46 2010-07-23 48.31 25.11 24.46 2010-07-24 48.31 25.11 24.46 2010-07-25 48.25 25.20 24.43 2010-07-26 48.24 25.20 24.44 2010-07-27 48.22 25.22 24.44 2010-07-28 48.18 25.25 24.45 2010-07-29 48.11 25.32 24.45 2010-07-30 48.09 25.33 24.46 2010-07-31 48.06 25.35 24.47 2010-08-01 48.04 25.38 24.46 2010-08-02 48.03 25.38 24.47 2010-08-03 47.98 25.41 24.50 2010-08-04 47.97 25.42 24.50 2010-08-05 47.91 25.46 24.52 2010-08-06 47.91 25.47 24.51 2010-08-07 47.83 25.55 24.51 2010-08-08 47.82 25.57 24.50 2010-08-09 47.83 25.58 24.48 2010-08-10 47.77 25.64 24.48 2010-08-11 47.77 25.64 24.48 2010-08-12 47.76 25.67 24.47 2010-08-13 47.74 25.67 24.49 2010-08-14 47.74 25.68 24.48 2010-08-15 47.74 25.68 24.48 2010-08-16 47.74 25.68 24.48 2010-08-17 47.76 25.68 24.48 2010-08-18 47.75 25.69 24.48 2010-08-19 47.72 25.70 24.49 2010-08-20 47.70 25.72 24.49 2010-08-21 47.67 25.75 24.49 2010-08-22 47.67 25.75 24.49 2010-08-23 47.66 25.76 24.49 2010-08-24 47.66 25.76 24.49 2010-08-25 47.65 25.77 24.49 2010-08-26 47.65 25.77 24.49 2010-08-27 47.63 25.78 24.50 2010-08-28 47.62 25.81 24.50 2010-08-29 47.62 25.82 24.49 2010-08-30 47.59 25.83 24.50 2010-08-31 47.58 25.84 24.50 2010-09-01 47.59 25.85 24.49 2010-09-02 47.57 25.87 24.49 2010-09-03 47.55 25.88 24.51 2010-09-04 47.54 25.89 24.51 2010-09-05 47.53 25.90 24.52 2010-09-06 47.52 25.90 24.54 2010-09-07 47.50 25.92 24.54 2010-09-08 47.50 25.92 24.54 2010-09-09 47.48 25.94 24.53 2010-09-10 47.46 25.96 24.54 2010-09-11 47.43 25.99 24.56 2010-09-12 47.40 26.01 24.57 2010-09-13 47.40 26.01 24.57 2010-09-14 47.37 26.04 24.58 2010-09-15 47.34 26.07 24.59 2010-09-16 47.33 26.08 24.59 2010-09-17 47.33 26.09 24.58 2010-09-18 47.29 26.10 24.60 2010-09-19 47.30 26.10 24.59 2010-09-20 47.30 26.10 24.59 2010-09-21 47.27 26.12 24.60 2010-09-22 47.26 26.14 24.59 2010-09-23 47.26 26.14 24.60 2010-09-24 47.27 26.14 24.59 2010-09-25 47.26 26.15 24.59 2010-09-26 47.25 26.16 24.59 2010-09-27 47.25 26.16 24.59 2010-09-28 47.25 26.16 24.59 2010-09-29 47.25 26.16 24.59 2010-09-30 47.24 26.15 24.61 2010-10-01 47.25 26.14 24.61 2010-10-02 47.24 26.15 24.61 2010-10-03 47.23 26.15 24.62 2010-10-04 47.23 26.15 24.62 2010-10-05 47.23 26.15 24.62 2010-10-06 47.22 26.16 24.62 2010-10-07 47.21 26.17 24.62 2010-10-08 47.21 26.17 24.62 2010-10-09 47.21 26.17 24.62 2010-10-10 47.21 26.17 24.62 2010-10-11 47.19 26.19 24.62 2010-10-12 47.13 26.30 24.57 2010-10-13 47.12 26.30 24.58 2010-10-14 47.09 26.31 24.60 2010-10-15 47.10 26.31 24.59 2010-10-16 47.10 26.31 24.59 2010-10-17 47.09 26.32 24.59 2010-10-18 47.09 26.32 24.59 2010-10-19 47.08 26.33 24.59 2010-10-20 47.05 26.36 24.59 2010-10-21 47.04 26.37 24.59 2010-10-22 47.03 26.38 24.59 2010-10-23 47.02 26.39 24.59 2010-10-24 47.01 26.40 24.59 2010-10-25 47.01 26.40 24.59 2010-10-26 47.00 26.41 24.59 2010-10-27 46.99 26.42 24.59 2010-10-28 46.99 26.42 24.59 2010-10-29 46.99 26.42 24.59 2010-10-30 47.00 26.43 24.58 2010-10-31 47.00 26.43 24.58 2010-11-01 46.97 26.48 24.56 2010-11-02 46.96 26.48 24.57 2010-11-03 46.94 26.50 24.57 2010-11-04 46.93 26.51 24.57 2010-11-05 46.85 26.65 24.52 2010-11-06 46.82 26.69 24.51 2010-11-07 46.82 26.71 24.49 2010-11-08 46.83 26.71 24.48 2010-11-09 46.82 26.72 24.48 2010-11-10 46.74 26.81 24.48 2010-11-11 46.70 26.86 24.47 2010-11-12 46.68 26.89 24.46 2010-11-13 46.62 26.93 24.49 2010-11-14 46.59 26.96 24.49 2010-11-15 46.59 26.96 24.49 2010-11-16 46.57 26.97 24.50 2010-11-17 46.54 27.00 24.50 2010-11-18 46.54 27.00 24.50 2010-11-19 46.54 27.01 24.49 2010-11-20 46.52 27.04 24.48 2010-11-21 46.50 27.06 24.48 2010-11-22 46.50 27.06 24.48 2010-11-23 46.49 27.07 24.48 2010-11-24 46.49 27.07 24.48 2010-11-25 46.48 27.08 24.48 2010-11-26 46.48 27.08 24.48 2010-11-27 46.47 27.10 24.47 2010-11-28 46.44 27.13 24.47 2010-11-29 46.44 27.13 24.47 2010-11-30 46.44 27.13 24.47 2010-12-01 46.42 27.15 24.47 2010-12-02 46.43 27.14 24.47 2010-12-03 46.43 27.14 24.47 2010-12-04 46.43 27.14 24.47 2010-12-05 46.43 27.14 24.47 2010-12-06 46.42 27.16 24.46 2010-12-07 46.42 27.16 24.46 2010-12-08 46.42 27.16 24.46 2010-12-09 46.43 27.17 24.44 2010-12-10 46.43 27.17 24.44 2010-12-11 46.43 27.17 24.44 2010-12-12 46.43 27.17 24.44 2010-12-13 46.44 27.17 24.43 2010-12-14 46.43 27.18 24.43 2010-12-15 46.43 27.18 24.43 2010-12-16 46.44 27.18 24.42 2010-12-17 46.44 27.18 24.42 2010-12-18 46.44 27.18 24.42 2010-12-19 46.43 27.19 24.42 2010-12-20 46.43 27.19 24.42 2010-12-21 46.43 27.19 24.42 2010-12-22 46.43 27.19 24.42 2010-12-23 46.42 27.20 24.42 2010-12-24 46.42 27.21 24.41 2010-12-25 46.42 27.21 24.41 2010-12-26 46.42 27.21 24.41 2010-12-27 46.41 27.22 24.41 2010-12-28 46.41 27.22 24.41 2010-12-29 46.40 27.23 24.41 2010-12-30 46.39 27.24 24.41 2010-12-31 46.38 27.25 24.41 2011-01-01 46.35 27.29 24.40 2011-01-02 46.33 27.32 24.39 2011-01-03 46.28 27.37 24.39 2011-01-04 46.27 27.38 24.39 2011-01-05 46.27 27.38 24.39 2011-01-06 46.22 27.44 24.38 2011-01-07 46.22 27.45 24.37 2011-01-08 46.20 27.45 24.39 2011-01-09 46.20 27.45 24.39 2011-01-10 46.22 27.47 24.36 2011-01-11 46.17 27.52 24.36 2011-01-12 46.16 27.53 24.36 2011-01-13 46.16 27.53 24.36 2011-01-14 46.16 27.53 24.36 2011-01-15 46.14 27.55 24.36 2011-01-16 46.13 27.56 24.36 2011-01-17 46.12 27.57 24.36 2011-01-18 46.11 27.58 24.36 2011-01-19 46.11 27.58 24.36 2011-01-20 46.10 27.59 24.36 2011-01-21 46.09 27.61 24.35 2011-01-22 46.09 27.61 24.35 2011-01-23 46.09 27.61 24.35 2011-01-24 46.08 27.62 24.35 2011-01-25 46.07 27.63 24.35 2011-01-26 46.04 27.66 24.35 2011-01-27 46.04 27.67 24.34 2011-01-28 46.00 27.72 24.33 2011-01-29 45.99 27.73 24.33 2011-01-30 46.00 27.72 24.33 2011-01-31 46.00 27.73 24.32 2011-02-01 45.99 27.73 24.33 2011-02-02 45.99 27.73 24.33 2011-02-03 45.99 27.73 24.33 2011-02-04 45.98 27.74 24.33 2011-02-05 45.99 27.74 24.32 2011-02-06 45.98 27.75 24.32 2011-02-07 45.94 27.80 24.32 2011-02-08 45.92 27.86 24.28 2011-02-09 45.81 27.95 24.29 2011-02-10 45.73 28.05 24.27 2011-02-11 45.31 28.46 24.28 2011-02-12 45.21 28.61 24.24 2011-02-13 45.15 28.68 24.23 2011-02-14 45.09 28.76 24.21 2011-02-15 44.96 28.92 24.18 2011-02-16 44.71 29.28 24.08 2011-02-17 44.65 29.33 24.09 2011-02-18 44.62 29.37 24.08 2011-02-19 44.60 29.43 24.04 2011-02-20 44.52 29.55 24.01 2011-02-21 44.41 29.63 24.04 2011-02-22 44.29 29.75 24.06 2011-02-23 44.25 29.80 24.05 2011-02-24 44.16 29.95 24.00 2011-02-25 44.08 30.03 23.99 2011-02-26 44.05 30.05 24.00 2011-02-27 44.02 30.09 23.99 2011-02-28 44.00 30.13 23.97 2011-03-01 44.00 30.13 23.97 2011-03-02 43.94 30.22 23.94 2011-03-03 43.94 30.22 23.94 2011-03-04 43.92 30.24 23.94 2011-03-05 43.91 30.26 23.93 2011-03-06 43.88 30.30 23.92 2011-03-07 43.78 30.42 23.90 2011-03-08 43.75 30.45 23.90 2011-03-09 43.73 30.51 23.86 2011-03-10 43.72 30.53 23.85 2011-03-11 43.67 30.61 23.82 2011-03-12 43.43 30.75 23.93 2011-03-13 43.39 30.84 23.89 2011-03-14 43.37 30.86 23.89 2011-03-15 43.36 30.90 23.86 2011-03-16 43.34 30.92 23.85 2011-03-17 43.31 30.96 23.84 2011-03-18 43.24 31.07 23.81 2011-03-19 43.24 31.07 23.81 2011-03-20 43.24 31.07 23.81 2011-03-21 43.24 31.07 23.81 2011-03-22 43.24 31.07 23.81 2011-03-23 43.24 31.07 23.81 2011-03-24 43.24 31.07 23.81 2011-03-25 43.24 31.07 23.81 2011-03-26 43.01 31.38 23.73 2011-03-27 42.98 31.41 23.73 2011-03-28 42.99 31.40 23.73 2011-03-29 42.96 31.43 23.73 2011-03-30 42.89 31.49 23.75 2011-03-31 42.83 31.54 23.76 2011-04-01 42.77 31.63 23.74 2011-04-02 42.70 31.75 23.69 2011-04-03 42.64 31.80 23.67 2011-04-04 42.56 31.90 23.65 2011-04-05 42.55 31.93 23.63 2011-04-06 42.55 31.94 23.62 2011-04-07 42.54 31.96 23.61 2011-04-08 42.53 31.98 23.60 2011-04-09 42.50 32.02 23.59 2011-04-10 42.45 32.10 23.56 2011-04-11 42.30 32.26 23.56 2011-04-12 42.23 32.35 23.54 2011-04-13 42.19 32.55 23.38 2011-04-14 42.17 32.58 23.37 2011-04-15 42.17 32.60 23.35 2011-04-16 42.06 32.75 23.31 2011-04-17 42.02 32.81 23.30 2011-04-18 41.99 32.85 23.29 2011-04-19 41.93 32.92 23.28 2011-04-20 41.82 33.10 23.21 2011-04-21 41.74 33.30 23.10 2011-04-22 41.73 33.37 23.04 2011-04-23 41.72 33.39 23.03 2011-04-24 41.69 33.45 23.00 2011-04-25 41.64 33.49 23.02 2011-04-26 41.60 33.54 23.01 2011-04-27 41.59 33.56 23.00 2011-04-28 41.54 33.66 22.95 2011-04-29 41.52 33.68 22.95 2011-04-30 41.47 33.76 22.92 2011-05-01 41.45 33.78 22.92 2011-05-02 41.43 33.83 22.89 2011-05-03 41.44 33.84 22.87 2011-05-04 41.41 33.89 22.85 2011-05-05 41.38 33.93 22.83 2011-05-06 41.36 33.96 22.82 2011-05-07 41.34 33.98 22.82 2011-05-08 41.33 34.03 22.78 2011-05-09 41.33 34.03 22.78 2011-05-10 41.33 34.03 22.78 2011-05-11 41.29 34.04 22.81 2011-05-12 41.29 34.04 22.81 2011-05-13 41.29 34.04 22.81 2011-05-14 41.25 34.09 22.80 2011-05-21 41.08 34.28 22.78 2011-05-22 40.89 34.45 22.85 2011-05-23 40.89 34.46 22.84 2011-05-24 40.90 34.46 22.83 2011-05-25 40.87 34.51 22.81 2011-05-26 40.83 34.54 22.83 2011-05-27 40.83 34.55 22.82 2011-05-28 40.91 34.60 22.69 2011-05-29 40.88 34.64 22.68 2011-05-30 40.82 34.69 22.69 2011-05-31 40.79 34.74 22.67 2011-06-01 40.69 34.81 22.70 2011-06-02 40.66 34.81 22.73 2011-06-03 40.62 34.87 22.71 2011-06-04 40.61 34.87 22.72 2011-06-05 40.54 34.92 22.74 2011-06-06 40.51 34.97 22.73 2011-06-07 40.51 34.98 22.72 2011-06-08 40.45 34.97 22.78 2011-06-09 40.43 34.98 22.79 2011-06-10 40.40 35.02 22.77 2011-06-11 40.37 35.07 22.75 2011-06-12 40.37 35.10 22.72 2011-06-13 40.28 35.18 22.74 2011-06-14 40.26 35.20 22.74 2011-06-15 40.24 35.23 22.73 2011-06-16 40.17 35.31 22.72 2011-06-17 40.15 35.32 22.73 2011-06-18 40.14 35.34 22.72 2011-06-19 40.11 35.36 22.74 2011-06-20 40.10 35.38 22.73 2011-06-21 40.09 35.40 22.72 2011-06-22 40.09 35.40 22.72 2011-06-23 40.09 35.40 22.72 2011-06-24 40.10 35.40 22.71 2011-06-25 40.07 35.43 22.71 2011-06-26 40.07 35.43 22.71 2011-06-27 40.05 35.47 22.69 2011-06-28 40.04 35.48 22.69 2011-06-29 39.94 35.57 22.70 2011-06-30 39.89 35.65 22.67 2011-07-01 39.82 35.73 22.66 2011-07-02 39.78 35.77 22.66 2011-07-04 39.75 35.82 22.64 2011-07-05 39.72 35.87 22.63 2011-07-06 39.70 35.89 22.63 2011-07-07 39.69 35.89 22.64 2011-07-08 39.67 35.92 22.63 2011-07-09 39.67 35.93 22.62 2011-07-10 39.66 35.94 22.62 2011-07-11 39.60 35.99 22.63 2011-07-12 39.56 36.03 22.63 2011-07-13 39.53 36.09 22.61 2011-07-14 39.53 36.09 22.61 2011-07-15 39.50 36.14 22.59 2011-07-16 39.49 36.15 22.59 2011-07-17 39.49 36.15 22.59 2011-07-18 39.49 36.15 22.59 2011-07-19 39.43 36.23 22.57 2011-07-20 39.42 36.24 22.57 2011-07-21 39.32 36.33 22.58 2011-07-22 39.27 36.38 22.58 2011-07-23 39.26 36.40 22.57 2011-07-24 39.23 36.43 22.57 2011-07-25 39.19 36.51 22.53 2011-07-27 39.08 36.65 22.50 2011-07-28 39.00 36.77 22.46 2011-07-29 38.98 36.82 22.44 2011-07-30 38.90 36.90 22.44 2011-07-31 38.84 36.97 22.43 2011-08-01 38.85 36.98 22.41 2011-08-02 38.84 37.01 22.39 2011-08-03 38.83 37.02 22.39 2011-08-04 38.82 37.04 22.38 2011-08-05 38.79 37.07 22.38 2011-08-06 38.73 37.16 22.36 2011-08-07 38.70 37.17 22.38 2011-08-08 38.67 37.21 22.37 2011-08-09 38.68 37.22 22.36 2011-08-10 38.65 37.23 22.38 2011-08-11 38.65 37.23 22.38 2011-08-12 38.63 37.28 22.35 2011-08-13 38.62 37.29 22.35 2011-08-14 38.53 37.42 22.32 2011-08-15 38.52 37.45 22.30 2011-08-16 38.49 37.48 22.30 2011-08-17 38.46 37.53 22.29 2011-08-18 38.45 37.54 22.29 2011-08-19 38.45 37.54 22.29 2011-10-07 37.10 39.38 21.88 2011-10-08 37.10 39.39 21.87 2011-10-09 37.04 39.46 21.86 2011-10-10 37.01 39.52 21.83 2011-10-11 36.98 39.55 21.83 2011-10-12 36.97 39.57 21.82 2011-10-13 36.92 39.67 21.78 2011-10-14 36.92 39.66 21.79 2011-10-15 36.93 39.66 21.78 2011-10-16 36.92 39.66 21.79 2011-10-17 36.91 39.68 21.78 2011-10-18 36.79 39.80 21.78 2011-10-19 36.76 39.84 21.77 2011-10-20 36.76 39.85 21.76 2011-10-21 36.75 39.86 21.76 2011-10-22 36.75 39.89 21.74 2011-10-23 36.71 39.93 21.74 2011-10-24 36.68 39.95 21.75 2011-10-25 36.65 40.00 21.73 2011-10-26 36.61 40.05 21.72 2012-11-10 29.32 50.46 18.99 2012-11-11 29.32 50.46 18.99 2012-11-12 29.31 50.47 18.99 2012-11-13 29.25 50.56 18.96 2012-11-14 29.23 50.58 18.96 2012-11-15 29.22 50.59 18.96 2012-11-16 29.18 50.66 18.93 2012-11-17 29.17 50.68 18.92 2012-11-18 29.17 50.69 18.91 2012-11-19 29.14 50.73 18.91 2012-11-20 29.14 50.73 18.91 2012-11-21 29.13 50.74 18.91 2012-11-22 29.13 50.74 18.91 2012-11-23 29.10 50.77 18.91 2012-11-24 29.11 50.77 18.90 2012-11-25 29.11 50.77 18.90 2012-11-26 29.11 50.77 18.90 2012-11-27 29.11 50.77 18.90 2012-11-28 29.11 50.78 18.90 2012-11-29 29.11 50.78 18.90 2012-11-30 29.11 50.78 18.90 2012-12-01 29.11 50.78 18.90 2012-12-02 29.10 50.79 18.90 2012-12-03 29.10 50.79 18.90 2012-12-04 29.10 50.79 18.90 2012-12-05 29.10 50.79 18.90 2012-12-06 29.09 50.80 18.90 2012-12-07 29.09 50.80 18.90 2012-12-08 29.09 50.80 18.90 2012-12-09 29.09 50.80 18.90 2012-12-10 29.06 50.85 18.88 2012-12-11 28.96 51.02 18.82 2012-12-12 28.93 51.05 18.82 2012-12-13 29.03 50.95 18.82 2012-12-14 29.23 50.75 18.82 2012-12-15 29.19 50.79 18.82 2012-12-16 28.99 50.99 18.82 2012-12-17 28.88 51.10 18.82 2012-12-18 28.88 51.10 18.82 2012-12-19 28.88 51.10 18.82 2012-12-20 28.87 51.11 18.82 2012-12-21 28.86 51.12 18.82 2012-12-22 28.86 51.12 18.82 2012-12-23 28.86 51.13 18.81 2012-12-24 28.86 51.13 18.81 2012-12-25 28.83 51.16 18.81 2012-12-26 28.82 51.17 18.81 2012-12-27 28.79 51.19 18.82 2012-12-28 28.78 51.20 18.82 2012-12-29 28.77 51.21 18.82 2012-12-31 28.47 51.53 18.83 2013-01-01 28.37 51.63 18.83 2013-01-02 28.36 51.64 18.83 2013-01-03 28.41 51.60 18.82 2013-01-04 28.41 51.60 18.82 2013-01-05 28.40 51.61 18.82 2013-01-06 28.39 51.62 18.82 2013-01-07 28.37 51.64 18.82 2013-01-08 28.36 51.66 18.81 2013-01-09 28.35 51.67 18.81 2013-01-10 28.34 51.67 18.82 2013-01-11 28.28 51.74 18.82 2013-01-12 28.28 51.74 18.82 2013-01-13 28.28 51.74 18.82 2013-01-14 28.27 51.76 18.81 2013-01-15 28.27 51.76 18.81 2013-01-16 28.27 51.78 18.79 2013-01-17 28.26 51.79 18.79 2013-01-18 28.25 51.80 18.79 2013-01-19 28.23 51.82 18.79 2013-01-20 28.22 51.83 18.79 2013-01-21 28.22 51.84 18.78 2013-01-22 28.20 51.84 18.80 2013-01-23 28.19 51.85 18.80 2013-01-24 28.18 51.86 18.80 2013-01-25 28.16 51.88 18.80 2013-01-26 28.16 51.88 18.80 2013-01-27 28.16 51.88 18.80 2013-01-28 28.16 51.88 18.80 2013-01-29 28.15 51.89 18.80 2013-01-30 28.15 51.90 18.79 2013-01-31 28.14 51.91 18.79 2013-02-01 28.12 51.94 18.78 2013-02-02 28.12 51.94 18.78 2013-02-03 28.12 51.94 18.78 2013-02-04 28.12 51.94 18.78 2013-02-05 28.12 51.94 18.78 2013-02-06 28.11 51.95 18.78 2013-02-07 28.10 51.96 18.78 2013-02-08 28.09 51.98 18.77 2013-02-09 28.09 51.98 18.77 2013-02-10 28.08 51.99 18.77 2013-02-11 28.07 51.97 18.80 2013-02-12 28.08 51.96 18.80 2013-02-13 28.08 51.97 18.79 2013-02-14 28.06 51.96 18.82 2013-02-15 28.05 51.98 18.82 2013-02-16 28.04 51.98 18.83 2013-02-17 28.01 52.02 18.82 2013-02-18 28.00 52.04 18.81 2013-02-19 27.98 52.07 18.80 2013-02-20 27.98 52.07 18.80 2013-02-21 27.96 52.09 18.80 2013-02-22 27.95 52.10 18.80 2013-02-23 27.95 52.10 18.80 2013-02-24 27.95 52.10 18.80 2013-02-25 28.00 52.05 18.80 2013-02-26 27.98 52.07 18.80 2013-02-27 27.96 52.09 18.80 2013-02-28 27.95 52.11 18.79 2013-03-01 28.00 52.21 18.64 2013-03-02 27.98 52.22 18.65 2013-03-03 27.98 52.22 18.65 2013-03-04 27.98 52.22 18.64 2013-03-05 27.97 52.23 18.64 2013-03-06 27.96 52.24 18.64 2013-03-07 27.96 52.24 18.64 2013-03-08 27.96 52.25 18.63 2013-03-09 27.94 52.28 18.62 2013-03-10 27.94 52.29 18.61 2013-03-11 27.93 52.31 18.60 2013-03-12 27.92 52.32 18.60 2013-03-13 27.91 52.33 18.60 2013-03-14 27.91 52.33 18.60 2013-03-15 27.90 52.34 18.60 2013-03-16 27.91 52.34 18.59 2013-03-17 27.89 52.36 18.59 2013-03-18 27.89 52.36 18.59 2013-03-19 27.89 52.38 18.58 2013-03-20 27.85 52.43 18.57 2013-03-21 27.83 52.44 18.58 2013-03-22 27.83 52.44 18.58 2013-03-26 27.59 52.44 18.52 2013-03-27 27.81 52.47 18.57 2013-03-28 27.81 52.48 18.56 2013-03-29 27.79 52.51 18.55 2013-03-30 27.78 52.52 18.55 2013-03-31 27.77 52.53 18.55 2013-04-01 27.76 52.54 18.55 2013-04-02 27.75 52.55 18.55 2013-04-03 27.71 52.56 18.58 2013-04-04 27.70 52.57 18.58 2013-04-05 27.67 52.61 18.57 2013-04-06 27.65 52.63 18.57 2013-04-07 27.61 52.69 18.55 2013-04-08 27.56 52.76 18.53 2013-04-09 27.56 52.79 18.51 2013-04-10 27.56 52.80 18.50 2013-04-11 27.54 52.84 18.48 2013-04-12 27.62 52.79 18.45 2013-04-13 27.65 52.77 18.44 2013-04-14 27.59 52.84 18.43 2013-04-15 27.55 52.89 18.42 2013-04-16 27.57 52.88 18.42 2013-04-17 27.57 52.88 18.42 2013-04-18 27.53 52.91 18.43 2013-04-19 27.49 52.96 18.42 2013-04-20 27.40 53.08 18.39 2013-04-21 27.34 53.14 18.39 2013-04-22 27.31 53.18 18.39 2013-04-23 27.30 53.19 18.39 2013-04-24 27.30 53.19 18.39 2013-04-25 27.30 53.19 18.39 2013-04-26 27.26 53.22 18.40 2013-04-27 27.26 53.22 18.40 2013-04-28 27.24 53.24 18.40 2013-04-29 27.24 53.25 18.40 2013-04-30 27.21 53.30 18.40 2013-05-01 27.21 53.31 18.39 2013-05-02 27.21 53.31 18.39 2013-05-03 27.21 53.31 18.39 2013-05-04 27.21 53.31 18.39 2013-05-05 27.20 53.32 18.39 2013-05-06 27.20 53.32 18.39 2013-05-07 27.13 53.40 18.38 2013-05-08 27.09 53.43 18.39 2013-05-09 27.08 53.44 18.39 2013-05-10 27.06 53.47 18.38 2013-05-11 27.03 53.50 18.38 2013-05-12 27.01 53.53 18.37 2013-05-13 27.00 53.54 18.37