package-tutorial 0.10 - en to ru translation catalogue (513 entries)

note: 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
en: \usepackage{debiantutorial}
ru: \usepackage{debiantutorial.ru} \usepackage[russian]{babel}

note: type: title{#2}
en: Debian Packaging Tutorial
ru: Руководство по созданию пакетов Debian

note: type: author{#2}
en: Lucas Nussbaum\\{\small\texttt{packaging-tutorial@packages.debian.org}}
ru: Лукас Нуссбаум\\{\small\texttt{packaging-tutorial@packages.debian.org}}

note: type: frame{#2}
en: About this tutorial
ru: Об этом руководстве

note: type: itemize
en: Goal: \textbf{tell you what you really need to know about Debian packaging}
ru: Цель: \textbf{сообщить вам то, что вам действительно нужно знать о создании пакетов Debian}

note: type: itemize
en: Modify existing packages
ru: Изменение существующих пакетов

note: type: itemize
en: Create your own packages
ru: Создание ваших собственных пакетов

note: type: itemize
en: Interact with the Debian community
ru: Взаимодействие с сообществом Debian

note: type: itemize
en: Become a Debian power-user
ru: Становимся продвинутым пользователем Debian

note: type: itemize
en: Covers the most important points, but is not complete
ru: Освещает большинство важных моментов, но не полно

note: type: itemize
en: You will need to read more documentation
ru: Вам будет необходимо прочитать дополнительную документацию

note: type: itemize
en: Most of the content also applies to Debian derivative distributions
ru: Большая часть изложения применима к производным от Debian дистрибутивам

note: type: itemize
en: That includes Ubuntu
ru: Включая и Ubuntu

note: type: frame{#2}
en: Outline
ru: План

note: type: section{#2}
en: Introduction
ru: Введение

note: type: textbf{#1}
en: GNU/Linux distribution
ru: Дистрибутив GNU/Linux

note: type: itemize
en: 1st major distro developed ``openly in the spirit of GNU''
ru: Первый крупный дистрибутив, разрабатываемый ``открыто в духе GNU''

note: type: itemize
en: \textbf{Non-commercial}, built collaboratively by over 1,000 volunteers
ru: \textbf{Некоммерческий}, создан совместно более чем 1,000 добровольцами

note: type: itemize
en: 3 main features:
ru: 3 основных особенности

note: type: itemize
en: \textbf{Quality} -- culture of technical excellence\\ {\small\sl We release when it's ready}
ru: \textbf{Качество} -- культура технического совершенства\\ {\small\sl Мы выпускаем очередную версию, только когда она готова}

note: type: itemize
en: \textbf{Freedom} -- devs and users bound by the \textsl{Social Contract}\\ Promoting the culture of Free Software since 1993
ru: \textbf{Свобода} -- разработчики и пользователи связаны \textsl{Общественным договором}\\ Продвигаем культуру Свободного ПО с 1993 года

note: type: itemize
en: \textbf{Independence} -- no (single) company babysitting Debian\\ And open decision-making process (\textsl{do-ocracy} + \textsl{democracy})
ru: \textbf{Независимость} -- нет (ни одной) компаний, опекающих Debian\\ Открытый процесс принятия решений (\textsl{управление тех, кто делает} + \textsl{демократия})

note: type: itemize
en: \textbf{Amateur} in the best sense: done for the love of it
ru: \textbf{Любительский} дистрибутив в лучшем смысле этого слова: создаётся ради него самого

note: type: frame{#2}
en: Debian packages
ru: Пакеты Debian

note: type: itemize
en: \textbf{.deb} files (binary packages)
ru: Файлы \textbf{.deb} (двоичные пакеты)

note: type: itemize
en: A very powerful and convenient way to distribute software to users
ru: Очень мощный и удобный способ распространения ПО пользователям

note: type: itemize
en: One of the two most common package formats (with RPM)
ru: Один из двух наиболее распространённых форматов пакетов (наряду с RPM)

note: type: itemize
en: Universal:
ru: Универсален

note: type: itemize
en: 30,000 binary packages in Debian\\ $\rightarrow$ most of the available free software is packaged in Debian!
ru: 30,000 двоичных пакетов в Debian\\ $\rightarrow$ для большей части доступного свободного ПО создан пакет Debian!

note: type: itemize
en: For 12 ports (architectures), including 2 non-Linux (Hurd; KFreeBSD)
ru: 12 переносов (архитектур), включая переносы на отличное от Linux ядро (Hurd; kFreeBSD)

note: type: itemize
en: Also used by 120 Debian derivative distributions
ru: Используется 120 ответвлениями от дистрибутива Debian

note: type: frame{#2}
en: The Deb package format
ru: Формат пакетов deb

note: type: itemize
en: \texttt{.deb} file: an \texttt{ar} archive
ru: Файл \texttt{.deb}: архив \texttt{ar}

note: $ type: itemize
en: \texttt{debian-binary}: version of the deb file format, \texttt{"2.0\textbackslash{}n"}
ru: \texttt{debian-binary}: версия формата файла deb, \texttt{"2.0\textbackslash{}n"}

note: type: itemize
en: \texttt{control.tar.gz}: metadata about the package\\ {\small \texttt{\textbf{control}, md5sums, (pre|post)(rm|inst), triggers, shlibs}, \ldots}
ru: \texttt{control.tar.gz}: метаданные о пакете\\ {\small \texttt{\textbf{control}, md5sums, (pre|post)(rm|inst), triggers, shlibs}, \ldots}

note: type: itemize
en: \texttt{data.tar.gz}: data files of the package
ru: \texttt{data.tar.gz}: файлы данных пакета

note: type: itemize
en: You could create your \texttt{.deb} files manually\\ {\footnotesize \url{http://tldp.org/HOWTO/html\_single/Debian-Binary-Package-Building-HOWTO/}}
ru: Можно создавать файлы \texttt{.deb} вручную\\ {\footnotesize \url{http://tldp.org/HOWTO/html\_single/Debian-Binary-Package-Building-HOWTO/}}

note: type: itemize
en: But most people don't do it that way
ru: Но большинство пользователей этого не делают

note: type: textbf{#1}
en: This tutorial: create Debian packages, the Debian way
ru: Настоящее руководство: создание пакетов Debian способом Debian

note: type: frame{#2}
en: Tools you will need
ru: Инструменты, которые вам потребуются

note: type: itemize
en: A Debian (or Ubuntu) system (with root access)
ru: Доступ к системе Debian (или Ubuntu) с правами суперпользователя

note: type: itemize
en: Some packages:
ru: Некоторые пакеты:

note: type: itemize
en: \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)
ru: \textbf{build-essential}: имеет зависимости от пакетов, которые, как это предполагается, доступны на машине разработчика (не нужно указывать их в поле \texttt{Build-Depends:} управляющего файла вашего пакета)

note: type: itemize
en: includes a dependency on \textbf{dpkg-dev}, which contains basic Debian-specific tools to create packages
ru: включает зависимость от \textbf{dpkg-dev}, который содержит базовые инструменты Debian для создания пакетов

note: type: itemize
en: \textbf{devscripts}: contains many useful scripts for Debian maintainers
ru: \textbf{devscripts}: содержит множество полезных сценариев для сопровождающих Debian

note: type: frame
en: 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.
ru: Множество других инструментов, которые также будут упомянуты в дальнейшем, такие как \textbf{debhelper}, \textbf{cdbs}, \textbf{quilt}, \textbf{pbuilder}, \textbf{sbuild}, \textbf{lintian}, \textbf{svn-buildpackage}, \textbf{git-buildpackage}, \ldots\\ Установите их, если они вам нужны.

note: type: frame{#2}
en: General packaging workflow
ru: Общая структура работы над созданием пакета

note: \draw[arr,->] (bin) -- (-1,-6) node[pos=0.5,left] {upload (\textttc{dput})}; hack hack hack type: tikzpicture
en: \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);
ru: \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);

note: type: subsection{#2}
en: Rebuilding dash
ru: Пересборка dash

note: type: frame{#2}
en: Example: rebuilding dash
ru: Пример: пересборка dash

note: type: enumerate
en: 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}}
ru: Установите пакеты, необходимые для сборки 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}}

note: type: enumerate
en: Create a working directory, and get in it:\\ \texttt{mkdir /tmp/debian-tutorial ; cd /tmp/debian-tutorial}
ru: Создайте рабочий каталог, и перейдите в него:\\ \texttt{mkdir /tmp/debian-tutorial ; cd /tmp/debian-tutorial}

note: type: enumerate
en: 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})}
ru: Загрузите пакет с исходным кодом \texttt{dash}\\ \texttt{apt-get source dash}\\ {\small (Для этого требуются строки \texttt{deb-src} в вашем файле \texttt{/etc/apt/sources.list})}

note: type: enumerate
en: Build the package\\ {\texttt{cd dash-*\\ debuild -us -uc}} ~~~(\texttt{-us -uc} disables signing the package with GPG)
ru: Соберите пакет\\ {\texttt{cd dash-*\\ debuild -us -uc}} ~~~(\texttt{-us -uc} отключают подписывание пакета с помощью GPG)

note: type: enumerate
en: Check that it worked
ru: Проверьте, что всё работает

note: type: itemize
en: There are some new \texttt{.deb} files in the parent directory
ru: В родительском каталоге присутствуют новые файлы \texttt{.deb}

note: type: enumerate
en: Look at the \texttt{debian/} directory
ru: Посмотрите каталог \texttt{debian/}

note: type: itemize
en: That's where the packaging work is done
ru: Здесь и осуществляется работа по созданию пакетов

note: type: section{#2}
en: Creating source packages
ru: Создание пакетов с исходным кодом

note: type: subsection{#2}
en: Source packages basics
ru: Базовые знания о пакетах с исходным кодом

note: type: frame{#2}
en: Source package
ru: Пакет с исходным кодом

note: type: itemize
en: 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}
ru: Один пакет с исходным кодом может создавать несколько двоичных пакетов\\ {\small напр., исходный код \texttt{\bfseries libtar} создаёт двоичные пакеты \texttt{\bfseries libtar0} и \texttt{\bfseries libtar-dev}}

note: type: itemize
en: Two kinds of packages: (if unsure, use non-native)
ru: Два вида пакетов: (если не уверены, используйте non-native)

note: type: itemize
en: Native packages: normally for Debian specific software (\textsl{dpkg}, \textsl{apt})
ru: Пакеты native: обычно это ПО, специфичное для Debian (\textsl{dpkg}, \textsl{apt})

note: type: itemize
en: Non-native packages: software developed outside Debian
ru: Пакеты non-native: ПО, разрабатываемое за пределами Debian

note: type: itemize
en: Main file: \texttt{.dsc} (meta-data)
ru: Основной файл: \texttt{.dsc} (метаданные)

note: type: itemize
en: Other files depending on the version of the source format
ru: Другие файлы, зависящие от версии формата исходного кода

note: type: itemize
en: 1.0 or 3.0 (native): \texttt{package\_version.tar.gz}
ru: 1.0 или 3.0 (native): \texttt{package\_version.tar.gz}

note: type: itemize
en: \texttt{pkg\_ver.orig.tar.gz}: upstream source
ru: \texttt{pkg\_ver.orig.tar.gz}: исходный код основной ветки разработки

note: type: itemize
en: \texttt{pkg\_debver.diff.gz}: patch to add Debian-specific changes
ru: \texttt{pkg\_debver.diff.gz}: заплата для добавления специфичных для Debian изменений

note: type: itemize
en: \texttt{pkg\_debver.debian.tar.gz}: tarball with the Debian changes
ru: \texttt{pkg\_debver.debian.tar.gz}: tarball с изменениями Debian

note: type: frame
en: (See \texttt{dpkg-source(1)} for exact details)
ru: (Детали см. в \texttt{dpkg-source(1)})

note: type: frame{#2}
en: Source package example (wget\_1.12-2.1.dsc)
ru: Пример пакета с исходным кодом (wget\_1.12-2.1.dsc)

note: type: subsection{#2}
en: Retrieving source packages
ru: Получение пакетов с исходным кодом

note: type: frame{#2}
en: Retrieving an existing source package
ru: Получение существующего пакета с исходным кодом

note: type: itemize
en: From the Debian archive:
ru: Из архива Debian:

note: type: itemize
en: \texttt{apt-get source \textsl{package}}
ru: \texttt{apt-get source \textsl{пакет}}

note: type: itemize
en: \texttt{apt-get source \textsl{package=version}}
ru: \texttt{apt-get source \textsl{пакет=версия}}

note: type: itemize
en: \texttt{apt-get source \textsl{package/release}}
ru: \texttt{apt-get source \textsl{пакет/выпуск}}

note: type: itemize
en: (You need \texttt{deb-src} lines in \texttt{sources.list})
ru: (Требуются строки \texttt{deb-src} в \texttt{sources.list})

note: type: itemize
en: From the Internet:
ru: Из Интернет:

note: type: itemize
en: \texttt{dget \textsl{url-to.dsc}}
ru: \texttt{dget \textsl{адрес.dsc}}

note: type: itemize
en: \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)
ru: \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 года)

note: type: itemize
en: From the (declared) version control system:
ru: Из (объявленной) системы контроля версий:

note: type: itemize
en: \texttt{debcheckout \textsl{package}}
ru: \texttt{debcheckout \textsl{пакет}}

note: type: itemize
en: Once downloaded, extract with \texttt{dpkg-source -x \textsl{file.dsc}}
ru: Когда пакет будет загружен, разверните его с помощью \texttt{dpkg-source -x \textsl{файл.dsc}}

note: type: frame{#2}
en: Creating a basic source package
ru: Создание простого пакета с исходным кодом

note: type: itemize
en: Download the upstream source\\ (\textsl{upstream source} = the one from the software's original developers)
ru: Загрузите исходный код основной ветки разработки\\ (\textsl{исходный код основной ветки разработки} = исходный код от исходных разработчиков ПО)

note: type: itemize
en: Rename to \texttt{<\textsl{source\_package}>\_<\textsl{upstream\_version}>.orig.tar.gz}\\ (example: \texttt{simgrid\_3.6.orig.tar.gz})
ru: Переименуйте его в \texttt{<\textsl{пакет\_с\_исходным\_кодом}>\_<\textsl{версия\_основной\_ветки}>.orig.tar.gz}\\ (пример: \texttt{simgrid\_3.6.orig.tar.gz})

note: type: itemize
en: Untar it
ru: Разверните его

note: type: itemize
en: Rename the directory to \texttt{<\textsl{source\_package}>-<\textsl{upstream\_version}>}\\ (example: \texttt{simgrid-3.6})
ru: Переименуйте каталог в \texttt{<\textsl{пакет\_с\_исходным\_кодом}>-<\textsl{версия\_основной\_ветки}>}\\ (пример: \texttt{simgrid-3.6})

note: type: itemize
en: \texttt{cd \texttt{<\textsl{source\_package}>-<\textsl{upstream\_version}>} \&\& dh\_make}\\ (from the \textbf{dh-make} package)
ru: \texttt{cd \texttt{<\textsl{пакет\_с\_исходным\_кодом}>-<\textsl{версия\_основной\_ветки}>} \&\& dh\_make}\\ (из пакета \textbf{dh-make})

note: type: itemize
en: There are some alternatives to \texttt{dh\_make} for specific sets of packages: \textbf{dh-make-perl}, \textbf{dh-make-php}, \ldots
ru: Для \texttt{dh\_make} имеются некоторые альтернативы для конкретных наборов пакетов: \textbf{dh-make-perl}, \textbf{dh-make-php}, \ldots

note: type: itemize
en: \texttt{debian/} directory created, with a lot of files in it
ru: Будет создан каталог \texttt{debian/} с множеством файлов в нём

note: type: frame{#2}
en: Files in debian/
ru: Файлы в debian/

note: type: frame
en: All the packaging work should be made by modifying files in \texttt{debian/}
ru: Вся работа по созданию пакетов должна осуществляться путём изменения файлов в \texttt{debian/}

note: type: itemize
en: Main files:
ru: Основные файлы:

note: type: itemize
en: \textbf{control} -- meta-data about the package (dependencies, etc.)
ru: \textbf{control} -- метаданные о пакете (зависимости и т.д.)

note: type: itemize
en: \textbf{rules} -- specifies how to build the package
ru: \textbf{rules} -- определяет то, как собирать пакет

note: type: itemize
en: \textbf{copyright} -- copyright information for the package
ru: \textbf{copyright} -- информация об авторских правах для данного пакета

note: type: itemize
en: \textbf{changelog} -- history of the Debian package
ru: \textbf{changelog} -- история пакета Debian

note: type: itemize
en: Other files:
ru: Другие файлы:

note: type: itemize
en: dh\_install* targets\\ {\small *.dirs, *.docs, *.manpages, \ldots}
ru: цели dh\_install* \\ {\small *.dirs, *.docs, *.manpages, \ldots}

note: type: itemize
en: maintainer scripts\\ {\small *.postinst, *.prerm, \ldots}
ru: сценарии сопровождающего\\ {\small *.postinst, *.prerm, \ldots}

note: type: itemize
en: patches/ -- if you need to modify the upstream sources
ru: patches/ -- если вам нужно изменить исходный код основной ветки

note: type: itemize
en: Several files use a format based on RFC 822 (mail headers)
ru: Некоторые файлы используют формат на основе RFC 822 (почтовые заголовки)

note: type: itemize
en: Lists the Debian packaging changes
ru: Содержит список изменений пакета Debian

note: type: itemize
en: Gives the current version of the package
ru: Содержит текущую версию пакета

note: type: tikzpicture
en: \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};
ru: \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 Основная версия};

note: % type: itemize
en: Edited manually or with \textttc{dch}
ru: Редактируется вручную или с помощью \textttc{dch}

note: type: itemize
en: Create a changelog entry for a new release: \textttc{dch -i}
ru: Создать запись об изменении для нового выпуска: \textttc{dch -i}

note: type: itemize
en: Special format to automatically close Debian or Ubuntu bugs\\ Debian: \texttt{Closes:~\#595268}; Ubuntu: \texttt{LP:~\#616929}
ru: Специальный формат для автоматического закрытия ошибок Debian или Ubuntu\\ Debian: \texttt{Closes:~\#595268}; Ubuntu: \texttt{LP:~\#616929}

note: type: itemize
en: Installed as \texttt{/usr/share/doc/\textit{package}/changelog.Debian.gz}
ru: Устанавливается как \texttt{/usr/share/doc/\textit{package}/changelog.Debian.gz}

note: type: itemize
en: Package metadata
ru: Метаданные пакета

note: type: itemize
en: For the source package itself
ru: Для самого пакета с исходным кодом

note: type: itemize
en: For each binary package built from this source
ru: Для каждого двоичного пакета, собираемого из исходного кода

note: type: itemize
en: Package name, section, priority, maintainer, uploaders, build-dependencies, dependencies, description, homepage, \ldots
ru: Имя, раздел, приоритет, сопровождающий, загружающие, сборочные зависимости, зависимости, описание, домашняя страница, \ldots

note: type: itemize
en: Documentation: Debian Policy chapter 5\\ \url{https://www.debian.org/doc/debian-policy/ch-controlfields}
ru: Документация: Политика Debian, глава 5\\ \url{https://www.debian.org/doc/debian-policy/ch-controlfields}

note: type: frame{#2}
en: Architecture: all or any
ru: Архитектура: все или какие-то

note: type: frame
en: Two kinds of binary packages:
ru: Два типа двоичных пакетов

note: type: itemize
en: Packages with different contents on each Debian architecture
ru: Пакеты с разным содержимым на каждой архитектуре Debian

note: type: itemize
en: Example: C program
ru: Пример: программа на C

note: type: itemize
en: \texttt{Architecture:\ any} in \texttt{debian/control}
ru: \texttt{Architecture:\ any} в \texttt{debian/control}

note: type: itemize
en: Or, if it only works on a subset of architectures:\\ \texttt{Architecture:\ amd64 i386 ia64 hurd-i386}
ru: Либо, если она работает только на некоторых архитектурах:\\ \texttt{Architecture:\ amd64 i386 ia64 hurd-i386}

note: type: itemize
en: buildd.debian.org: builds all the other architectures for you on upload
ru: buildd.debian.org: собирает для вас все остальные архитектуры при загрузке

note: type: itemize
en: Named \texttt{\textsl{package}\_\textsl{version}\_\textsl{architecture}.deb}
ru: Имеет имя \texttt{\textsl{пакет}\_\textsl{версия}\_\textsl{архитектура}.deb}

note: type: itemize
en: Packages with the same content on all architectures
ru: Пакеты с одним и тем же содержимым на всех архитектурах

note: type: itemize
en: Example: Perl library
ru: Пример: библиотека Perl

note: type: itemize
en: \texttt{Architecture:\ all} in \texttt{debian/control}
ru: \texttt{Architecture:\ all} в \texttt{debian/control}

note: type: itemize
en: Named \texttt{\textsl{package}\_\textsl{version}\_\textbf{all}.deb}
ru: Имеет имя \texttt{\textsl{пакет}\_\textsl{версия}\_\textbf{all}.deb}

note: type: frame
en: A source package can generate a mix of \texttt{Architecture:\ any} and \texttt{Architecture:\ all} binary packages
ru: Пакет с исходным кодом может создавать двоичные пакеты и с \texttt{Architecture:\ какая-то}, и с \texttt{Architecture:\ all}

note: type: itemize
en: Interface used to build Debian packages
ru: Интерфейс, используемый для сборки пакетов Debian

note: type: itemize
en: Documented in Debian Policy, chapter 4.8\\ {\small \url{https://www.debian.org/doc/debian-policy/ch-source\#s-debianrules}}
ru: Документирован в Политике Debian, глава 4.8\\ {\small \url{https://www.debian.org/doc/debian-policy/ch-source\#s-debianrules}}

note: type: itemize
en: Required targets:
ru: Требуемые цели:

note: type: itemize
en: \texttt{build, build-arch, build-indep}: should perform all the configuration and compilation
ru: \texttt{build, build-arch, build-indep}: должны выполнить все настройки и компиляцию

note: type: itemize
en: \texttt{binary, binary-arch, binary-indep}: build the binary packages
ru: \texttt{binary, binary-arch, binary-indep}: сборка двоичных пакетов

note: type: itemize
en: \texttt{dpkg-buildpackage} will call \texttt{binary} to build all the packages, or \texttt{binary-arch} to build only the \texttt{Architecture:~any} packages
ru: \texttt{dpkg-buildpackage} вызовет \texttt{binary} для сборки всех пакетов, либо \texttt{binary-arch} для сборки \texttt{Architecture:~какая-то} пакетов

note: type: itemize
en: \texttt{clean}: clean up the source directory
ru: \texttt{clean}: очищает каталог с исходным кодом

note: type: subsection{#2}
en: Packaging helpers
ru: Утилиты, упрощающие создание пакетов

note: type: frame{#2}
en: Packaging helpers -- debhelper
ru: Утилиты, упрощающие создание пакетов -- debhelper

note: type: itemize
en: You could write shell code in \texttt{debian/rules} directly
ru: Вы можете добавить код оболочки напрямую в \texttt{debian/rules}

note: type: itemize
en: Better practice (used by most packages): use a \textsl{Packaging helper}
ru: Лучше всего (используется большинством пакетов): использовать \textsl{утилиту, упрощающую создание пакетов}

note: type: itemize
en: Most popular one: \textbf{debhelper} (used by 98\% of packages)
ru: Наиболее популярен: \textbf{debhelper} (используется в 98\% пакетов)

note: type: itemize
en: Goals:
ru: Цели:

note: type: itemize
en: Factor the common tasks in standard tools used by all packages
ru: Решить общие задачи стандартными средствами, для всех пакетов

note: type: itemize
en: Fix some packaging bugs once for all packages
ru: Исправить ряд ошибок при создании пакетов, для всех пакетов

note: type: itemize
en: Called from \texttt{debian/rules}
ru: Вызывается из \texttt{debian/rules}

note: type: itemize
en: Configurable using command parameters or files in \texttt{debian/}
ru: Настройка через параметры команды или файлы в \texttt{debian/}

note: type: itemize
en: {\footnotesize \ttfamily \textsl{package}.docs, \textsl{package}.examples, \textsl{package}.install, \textsl{package}.manpages, \ldots}
ru: {\footnotesize \ttfamily \textsl{пакет}.docs, \textsl{пакет}.examples, \textsl{пакет}.install, \textsl{пакет}.manpages, \ldots}

note: type: itemize
en: Third-party helpers for sets of packages: \textbf{python-support}, \textbf{dh\_ocaml}, \ldots
ru: Сторонние утилиты для ряда пакетов: \textbf{python-support}, \textbf{dh\_ocaml}, \ldots

note: type: frame{#2}
en: debian/rules using debhelper (1/2)
ru: debian/rules, использующий debhelper (1/2)

note: type: frame{#2}
en: debian/rules using debhelper (2/2)
ru: debian/rules, использующий debhelper (2/2)

note: type: itemize
en: With debhelper, still a lot of redundancy between packages
ru: С debhelper всё равно остаётся много лишней работы

note: type: itemize
en: Second-level helpers that factor common functionality
ru: Второпорядковые утилиты с большей функциональностью

note: type: itemize
en: E.g. building with \texttt{./configure \&\& make \&\& make install} or CMake
ru: Напр., сборка с \texttt{./configure \&\& make \&\& make install} или CMake

note: type: itemize
en: Introduced in 2005, based on advanced \textsl{GNU make} magic
ru: Представлен в 2005 году, основан на продвинутой магии \textsl{GNU make}

note: type: itemize
en: Documentation: \texttt{/usr/share/doc/cdbs/}
ru: Документация: \texttt{/usr/share/doc/cdbs/}

note: type: itemize
en: Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \ldots
ru: Поддержка Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \ldots

note: type: itemize
en: But some people hate it:
ru: Но некоторым она не нравится:

note: type: itemize
en: Sometimes difficult to customize package builds:\\ "\textsl{twisty maze of makefiles and environment variables}"
ru: Иногда трудно настраивать сборку пакетов:\\ "\textsl{лабиринт make-файлов и переменных окружения}"

note: type: itemize
en: Slower than plain debhelper (many useless calls to \texttt{dh\_*})
ru: Медленнее, чем обычный debhelper (множество бесполезных вызовов \texttt{dh\_*})

note: type: frame{#2}
en: Dh (aka Debhelper 7, or dh7)
ru: Dh (также известный как Debhelper 7, либо dh7)

note: type: itemize
en: Introduced in 2008 as a \textsl{CDBS killer}
ru: Представлен в 2008 году как \textsl{убийца CDBS}

note: type: itemize
en: \textbf{dh} command that calls \texttt{dh\_*}
ru: Команда \textbf{dh}, вызывающая \texttt{dh\_*}

note: type: itemize
en: Simple \textsl{debian/rules}, listing only overrides
ru: Простой файл \textsl{debian/rules}, содержащий только список отклонений

note: type: itemize
en: Easier to customize than CDBS
ru: Проще настраивать, чем CDBS

note: type: itemize
en: Doc: manpages (\texttt{debhelper(7)}, \texttt{dh(1)}) + slides from DebConf9 talk\\ \url{http://kitenet.net/~joey/talks/debhelper/debhelper-slides.pdf}
ru: Документация: справочные страницы (\texttt{debhelper(7)}, \texttt{dh(1)}) + слайды с выступления на DebConf9\\ \url{http://kitenet.net/~joey/talks/debhelper/debhelper-slides.pdf}

note: source for stats: https://anonscm.debian.org/cgit/collab-qa/dhistory.git/ type: frame{#2}
en: Classic debhelper vs CDBS vs dh
ru: Классический debhelper против CDBS и dh

note: type: itemize
en: Mind shares:\\ Classic debhelper: 15\% \hskip 1em CDBS: 15\% \hskip 1em dh: 68\%
ru: Доля использования:\\ Классический debhelper: 15\% \hskip 1em CDBS: 15\% \hskip 1em dh: 68\%

note: type: itemize
en: Which one should I learn?
ru: Что мне изучать?

note: type: itemize
en: Probably a bit of all of them
ru: Вероятно, всё по чуть-чуть

note: type: itemize
en: You need to know debhelper to use dh and CDBS
ru: Вам нужно знать debhelper для использования dh и CDBS

note: type: itemize
en: You might have to modify CDBS packages
ru: Вам может потребоваться изменить пакеты CDBS

note: type: itemize
en: Which one should I use for a new package?
ru: Что использовать для нового пакета?

note: type: itemize
en: \textbf{dh} (only solution with an increasing mind share)
ru: \textbf{dh} (единственное решение с увеличивающейся долей использования)

note: type: section{#2}
en: Building and testing packages
ru: Сборка и тестирование пакетов

note: type: frame{#2}
en: Building packages
ru: Сборка пакетов

note: type: itemize
en: \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)
ru: \textttc{apt-get build-dep мой\_пакет}\\ Устанавливает зависимости для сборки (\textsl{build-dependencies}) (для пакета, уже включённого в Debian)\\ Либо \textttc{mk-build-deps -ir} (для пакета, который пока не загружен)

note: type: itemize
en: \textttc{debuild}: build, test with \texttt{lintian}, sign with GPG
ru: \textttc{debuild}: сборка, тестирование с помощью \texttt{lintian}, подпись GPG

note: type: itemize
en: Also possible to call \textttc{dpkg-buildpackage} directly
ru: Также можно вызвать \textttc{dpkg-buildpackage} напрямую

note: type: itemize
en: Usually with \texttt{dpkg-buildpackage -us -uc}
ru: Обычно с помощью \texttt{dpkg-buildpackage -us -uc}

note: type: itemize
en: It is better to build packages in a clean \& minimal environment
ru: Лучше собирать пакеты в чистом минимальном окружении

note: type: itemize
en: \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})
ru: \textttc{pbuilder} -- утилита, облегчающая сборку пакетов в \textsl{chroot}\\ Хорошая документация: \url{https://wiki.ubuntu.com/PbuilderHowto}\\ (оптимизация: \textttc{cowbuilder} \textttc{ccache} \textttc{distcc})

note: type: itemize
en: \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} )
ru: \textttc{schroot} и \textttc{sbuild}: используются в службах сборки Debian\\ (не так просты как \texttt{pbuilder}, но позволяют делать снимки LVM\\ см.: \url{https://help.ubuntu.com/community/SbuildLVMHowto} )

note: type: itemize
en: Generates \texttt{.deb} files and a \texttt{.changes} file
ru: Создаёт файлы \texttt{.deb} и файл \texttt{.changes}

note: type: itemize
en: \texttt{.changes}: describes what was built; used to upload the package
ru: \texttt{.changes}: описывает, что было собрано; для загрузки пакета

note: type: frame{#2}
en: Installing and testing packages
ru: Установка и тестирование пакетов

note: type: itemize
en: Install the package locally: \textttc{debi} (will use \texttt{.changes} to know what to install)
ru: Установить пакет локально: \textttc{debi} (будет использовать \texttt{.changes} для того, чтобы определить, что устанавливать)

note: type: itemize
en: List the content of the package: \texttt{{\color{rouge}debc} ../mypackage<TAB>.changes}
ru: Список содержимого пакета: \texttt{{\color{rouge}debc} ../мой\_пакет<TAB>.changes}

note: type: itemize
en: 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}\\
ru: Сравнить пакет с предыдущей версией:\\ \texttt{{\color{rouge}debdiff} ../мой\_пакет\_1\_*.changes ../мой\_пакет\_2\_*.changes}\\ или сравнить с исходным кодом:\\ \texttt{{\color{rouge}debdiff} ../мой\_пакет\_1\_*.dsc ../мой\_пакет\_2\_*.dsc}\\

note: type: itemize
en: Check the package with \texttt{lintian} (static analyzer):\\ \texttt{{\color{rouge}lintian} ../mypackage<TAB>.changes}\\ \texttt{lintian -i}: gives more information about the errors \\ \texttt{lintian -EviIL +pedantic}: shows more problems
ru: Проверить пакет с помощью \texttt{lintian} (статический анализатор):\\ \texttt{{\color{rouge}lintian} ../мой\_пакет<TAB>.changes}\\ \texttt{lintian -i}: выдаёт дополнительную информацию об ошибках \\ \texttt{lintian -EviIL +pedantic}: показывает больше проблем

note: type: itemize
en: Upload the package to Debian (\textttc{dput}) (needs configuration)
ru: Загрузить пакет в Debian (\textttc{dput}) (требуется настройка)

note: type: itemize
en: Manage a private Debian archive with \textttc{reprepro} or \textttc{aptly}\\ Documentation: \url{https://wiki.debian.org/HowToSetupADebianRepository}
ru: Управлять частным архивом Debian с помощью \textttc{reprepro} или \\textttc{aptly}\\ Документация: \url{https://wiki.debian.org/HowToSetupADebianRepository}

note: type: frame{#2}
en: Practical session 1: modifying the grep package
ru: Практика 1: изменение пакета grep

note: type: enumerate
en: Go to \url{http://ftp.debian.org/debian/pool/main/g/grep/} and download version 2.12-2 of the package
ru: Перейдите по адресу \url{http://ftp.debian.org/debian/pool/main/g/grep/} и загрузите версию 2.12-2 пакета

note: type: itemize
en: If the source package is not unpacked automatically, unpack it with \texttt{dpkg-source~-x~grep\_*.dsc}
ru: Если пакет с исходным кодом не распаковывается автоматически, распакуйте его с помощью \texttt{dpkg-source~-x~grep\_*.dsc}

note: type: enumerate
en: Look at the files in \texttt{debian/}.
ru: Посмотрите файлы в \texttt{debian/}.

note: type: itemize
en: How many binary packages are generated by this source package?
ru: Сколько двоичных пакетов создаётся этим пакетом?

note: type: itemize
en: Which packaging helper does this package use?
ru: Какая утилита для создания пакетов используется?

note: type: itemize
en: Build the package
ru: Соберите пакет

note: type: enumerate
en: We are now going to modify the package. Add a changelog entry and increase the version number.
ru: Мы собираемся изменить пакет. Добавьте запись в журнал изменений и увеличьте номер версии.

note: type: enumerate
en: Now disable perl-regexp support (it is a \texttt{./configure} option)
ru: Теперь отключите поддержку регулярных выражений Perl (perl-regexp) (это опция \texttt{./configure})

note: type: enumerate
en: Rebuild the package
ru: Соберите пакет заново

note: type: enumerate
en: Compare the original and the new package with debdiff
ru: Сравните оригинальный и новый пакеты с помощью debdiff

note: type: enumerate
en: Install the newly built package
ru: Установите собранный заново пакет

note: type: section{#2}
en: Advanced packaging topics
ru: Продвинутые темы в сборке пакетов

note: type: itemize
en: Copyright and license information for the source and the packaging
ru: Авторское право и лицензионная информация для исходного кода и создания пакета

note: type: itemize
en: Traditionally written as a text file
ru: Традиционно записывается в виде текстового файла

note: type: itemize
en: New machine-readable format: {\small\url{https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/}}
ru: Новый машиночитаемый формат: {\small\url{https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/}}

note: type: frame{#2}
en: Modifying the upstream source
ru: Изменение исходного кода основной ветки разработки

note: type: frame
en: Often needed:
ru: Зачастую требуется:

note: type: itemize
en: Fix bugs or add customizations that are specific to Debian
ru: Исправить ошибки или добавить изменения, специфичные для Debian

note: type: itemize
en: Backport fixes from a newer upstream release
ru: Перенести исправления из более нового выпуска основной ветки

note: type: frame
en: Several methods to do it:
ru: Несколько методов, чтобы сделать это:

note: type: itemize
en: Modifying the files directly
ru: Изменение файлов напрямую

note: type: itemize
en: Simple
ru: Просто

note: type: itemize
en: But no way to track and document the changes
ru: Нет возможность отследить и задокументировать изменения

note: type: itemize
en: Using patch systems
ru: Использование систем заплат

note: type: itemize
en: Eases contributing your changes to upstream
ru: Упрощает внесение ваших изменений в основную ветку

note: type: itemize
en: Helps sharing the fixes with derivatives
ru: Помогает делиться исправлениями с производными дистрибутивами

note: type: itemize
en: Gives more exposure to the changes\\ \url{http://patch-tracker.debian.org/} (down currently)
ru: Больше внимания изменениям\\ \url{http://patch-tracker.debian.org/} (в настоящее время выключен)

note: type: frame{#2}
en: Patch systems
ru: Системы заплат

note: type: itemize
en: Principle: changes are stored as patches in \texttt{debian/patches/}
ru: Принцип: изменения сохраняются в виде заплат в \texttt{debian/patches/}

note: type: itemize
en: Applied and unapplied during build
ru: Применяются или не применяются во время сборки

note: type: itemize
en: Past: several implementations -- \textsl{simple-patchsys} (\textsl{cdbs}), \textsl{dpatch}, \textbf{\textsl{quilt}}
ru: В прошлом: несколько реализаций -- \textsl{simple-patchsys} (\textsl{cdbs}), \textsl{dpatch}, \textbf{\textsl{quilt}}

note: type: itemize
en: Each supports two \texttt{debian/rules} targets:
ru: Каждая поддерживает две цели \texttt{debian/rules}:

note: type: itemize
en: \texttt{debian/rules patch}: apply all patches
ru: \texttt{debian/rules patch}: применяет все заплаты

note: type: itemize
en: \texttt{debian/rules unpatch}: de-apply all patches
ru: \texttt{debian/rules unpatch}: отменяет все заплаты

note: type: itemize
en: More documentation: \url{https://wiki.debian.org/debian/patches}
ru: Дополнительная документация: \url{https://wiki.debian.org/debian/patches}

note: type: textbf{#1}
en: New source package format with built-in patch system: 3.0 (quilt)
ru: Новый формат пакетов с исходным кодом со встроенной системой заплат: 3.0 (quilt)

note: type: itemize
en: Recommended solution
ru: Рекомендуемое решение

note: type: itemize
en: Patch-system-agnostic tool in \texttt{devscripts}: \texttt{edit-patch}
ru: Независимый от системы заплат инструмент в \texttt{devscripts}: \texttt{edit-patch}

note: type: frame{#2}
en: Documentation of patches
ru: Документирование заплат

note: type: itemize
en: Standard headers at the beginning of the patch
ru: Стандартные заголовки в начале заплаты

note: type: itemize
en: Documented in DEP-3 - Patch Tagging Guidelines\\ \url{http://dep.debian.net/deps/dep3/}
ru: Документированы в DEP-3 - Руководство по тегам заплат\\ \url{http://dep.debian.net/deps/dep3/}

note: type: frame{#2}
en: Doing things during installation and removal
ru: Сделать что-то во время установки или удаления

note: type: itemize
en: Decompressing the package is sometimes not enough
ru: Иногда недостаточно просто распаковать пакет

note: type: itemize
en: Create/remove system users, start/stop services, manage \textsl{alternatives}
ru: Создать/удалить системных пользователей, запустить/остановить службы, обработать \textsl{альтернативы}

note: type: itemize
en: Done in \textsl{maintainer scripts}\\ \texttt{preinst, postinst, prerm, postrm}
ru: Осуществляется в \textsl{сценариях сопровождающего}\\ \texttt{preinst, postinst, prerm, postrm}

note: type: itemize
en: Snippets for common actions can be generated by debhelper
ru: Части общих действий могут быть созданы при помощи debhelper

note: type: itemize
en: Documentation:
ru: Документация:

note: type: itemize
en: Debian Policy Manual, chapter 6\\ {\footnotesize \url{https://www.debian.org/doc/debian-policy/ch-maintainerscripts}}
ru: Руководство по политике Debian, глава 6\\ {\footnotesize \url{https://www.debian.org/doc/debian-policy/ch-maintainerscripts}}

note: type: itemize
en: Debian Developer's Reference, chapter 6.4\\ {\scriptsize \url{https://www.debian.org/doc/developers-reference/best-pkging-practices.html}}
ru: Справочник разработчика Debian, глава 6.4\\ {\scriptsize \url{https://www.debian.org/doc/developers-reference/best-pkging-practices.html}}

note: type: itemize
en: Prompting the user
ru: Приглашение пользователя

note: type: itemize
en: Must be done with \textbf{debconf}
ru: Должно осуществляться с помощью \textbf{debconf}

note: type: itemize
en: Documentation: \texttt{debconf-devel(7)} (\texttt{debconf-doc} package)
ru: Документация: \texttt{debconf-devel(7)} (пакет \texttt{debconf-doc})

note: type: frame{#2}
en: Monitoring upstream versions
ru: Отслеживание версий основной ветки

note: type: itemize
en: Specify where to look in \texttt{debian/watch} (see \texttt{uscan(1)})
ru: В файле \texttt{debian/watch} укажите где искать (см. \texttt{uscan(1)})

note: type: itemize
en: \texttt{uscan}: run a manual check
ru: \texttt{uscan}: запустить ручную проверку

note: type: itemize
en: \texttt{uupdate}: try to update your package to the latest upstream version
ru: \texttt{uupdate}: попытаться обновить ваш пакет до самой последней версии основной ветки разработки

note: type: subsection{#2}
en: Packaging with a Version Control System (SVN, Git)
ru: Создание пакетов в системе контроля версий (SVN, Git)

note: type: frame{#2}
en: Packaging with a Version Control System
ru: Создание пакетов в системе контроля версий

note: type: itemize
en: Several tools to help manage branches and tags for your packaging work:\\ \texttt{svn-buildpackage}, \texttt{git-buildpackage}
ru: Инструменты, помогающие управлять ветками и тегам вашей работы по созданию пакетов:\\ \texttt{svn-buildpackage}, \texttt{git-buildpackage}

note: type: itemize
en: Example: \texttt{git-buildpackage}
ru: Пример: \texttt{git-buildpackage}

note: type: itemize
en: \texttt{upstream} branch to track upstream with \texttt{upstream/\textsl{version}} tags
ru: Ветка \texttt{upstream} для отслеживания основной ветки с тегами \texttt{upstream/\textsl{version}}

note: type: itemize
en: \texttt{master} branch tracks the Debian package
ru: Ветка \texttt{master} отслеживает пакет Debian

note: type: itemize
en: \texttt{debian/\textsl{version}} tags for each upload
ru: Теги \texttt{debian/\textsl{version}} для каждой загрузки

note: type: itemize
en: \texttt{pristine-tar} branch to be able to rebuild the upstream tarball
ru: Ветка \texttt{pristine-tar} для сборки tarball из основной ветки

note: type: itemize
en: \texttt{Vcs-*} fields in \texttt{debian/control} to locate the repository
ru: Поля \texttt{Vcs-*} в \texttt{debian/control} для определения репозитория

note: type: itemize
en: VCS-agnostic interface: \texttt{debcheckout}, \texttt{debcommit}, \texttt{debrelease}\\
ru: Интерфейс, независящий от системы контроля версий: \texttt{debcheckout}, \texttt{debcommit}, \texttt{debrelease}\\

note: type: itemize
en: \texttt{debcheckout grep} $\rightarrow$ checks out the source package from Git
ru: \texttt{debcheckout grep} $\rightarrow$ выгружает пакет с исходным кодом из Git

note: type: frame{#2}
en: Backporting packages
ru: Обратный перенос пакетов

note: type: itemize
en: 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}
ru: Цель: использовать более новую версию пакета на старой системе\\ напр., использовать \textsl{mutt} из Debian \textsl{unstable} на Debian \textsl{stable}

note: type: itemize
en: General idea:
ru: Общая идея:

note: type: itemize
en: Take the source package from Debian unstable
ru: Взять пакет с исходным кодом из Debian unstable

note: type: itemize
en: Modify it so that it builds and works fine on Debian stable
ru: Изменить его так, чтобы он собирался и нормально работал в Debian stable

note: type: itemize
en: Sometimes trivial (no changes needed)
ru: Иногда тривиально (изменения не требуются)

note: type: itemize
en: Sometimes difficult
ru: Иногда сложно

note: type: itemize
en: Sometimes impossible (many unavailable dependencies)
ru: Иногда невозможно (много недоступных зависимостей)

note: type: itemize
en: Some backports are provided and supported by the Debian project\\ \url{http://backports.debian.org/}
ru: Некоторые обратные переносы предоставляются и поддерживаются Проектом Debian\\ \url{http://backports.debian.org/}

note: type: section{#2}
en: Maintaining packages in Debian
ru: Сопровождение пакетов в Debian

note: type: frame{#2}
en: Several ways to contribute to Debian
ru: Несколько способов внести вклад в Debian

note: type: itemize
en: \textbf{Worst} way to contribute:
ru: \textbf{Худший} способ участия:

note: type: enumerate
en: Package your own application
ru: Создать пакет для вашего собственного приложения

note: type: enumerate
en: Get it into Debian
ru: Добавить его в Debian

note: type: enumerate
en: Disappear
ru: Исчезнуть

note: type: itemize
en: \textbf{Better} ways to contribute:
ru: \textbf{Лучшие} способы участия:

note: type: itemize
en: Get involved in packaging teams
ru: Подключиться к работе команд по созданию пакетов

note: type: itemize
en: Many teams that focus on set of packages, and need help
ru: Многие команды концентрируются на наборах пакетов, им нужна помощь

note: type: itemize
en: List available at \url{https://wiki.debian.org/Teams}
ru: Список доступен по адресу \url{https://wiki.debian.org/Teams}

note: type: itemize
en: An excellent way to learn from more experienced contributors
ru: Отличный способ научиться у более опытных участников

note: type: itemize
en: Adopt existing unmaintained packages (\textsl{orphaned packages})
ru: Усыновление существующих несопровождаемых пакетов (\textsl{осиротевших пакетов})

note: type: itemize
en: Bring new software to Debian
ru: Привнести в Debian новое ПО

note: type: itemize
en: Only if it's interesting/useful enough, please
ru: Пожалуйста, только если оно достаточно интересно/полезно

note: type: itemize
en: Are there alternatives already packaged in Debian?
ru: Существуют ли какие-либо альтернативы для которых уже созданы пакеты Debian?

note: type: frame{#2}
en: Adopting orphaned packages
ru: Усыновление осиротевших пакетов

note: type: itemize
en: Many unmaintained packages in Debian
ru: В Debian много несопровождаемых пакетов

note: type: itemize
en: Full list + process: \url{https://www.debian.org/devel/wnpp/}
ru: Полный список + процесс: \url{https://www.debian.org/devel/wnpp/}

note: type: itemize
en: Installed on your machine: \texttt{wnpp-alert}\\ Or better: \texttt{how-can-i-help}
ru: Установлены на вашей машине: \texttt{wnpp-alert}\\ Или лучше: \texttt{how-can-i-help}

note: type: itemize
en: Different states:
ru: Различные состояния:

note: type: itemize
en: \textbf{O}rphaned: the package is unmaintained\\ Feel free to adopt it
ru: \textbf{O}rphaned (осиротевший): пакет не сопровождается\\ Усыновите его

note: type: itemize
en: \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
ru: \textbf{RFA}: \textbf{R}equest \textbf{F}or \textbf{A}dopter (Требуется усыновитель)\\ Сопровождающий ищет усыновителя, но пока продолжает работать\\ Усыновите его. Обратитесь к текущему сопровождающему

note: type: itemize
en: \textbf{ITA}: \textbf{I}ntent \textbf{T}o \textbf{A}dopt\\ Someone intends to adopt the package\\ You could propose your help!
ru: \textbf{ITA}: \textbf{I}ntent \textbf{T}o \textbf{A}dopt (Собираюсь усыновить)\\ Кто-то намерен усыновить пакет\\ Помогите ему!

note: type: itemize
en: \textbf{RFH}: \textbf{R}equest \textbf{F}or \textbf{H}elp\\ The maintainer is looking for help
ru: \textbf{RFH}: \textbf{R}equest \textbf{F}or \textbf{H}elp (Запрос о помощи)\\ Сопровождающий ищет помощь

note: type: itemize
en: Some unmaintained packages not detected \arr not orphaned yet
ru: Ряд несопровождаемых пакетов ещё не обнаружен \arr не осиротели

note: type: itemize
en: When in doubt, ask \texttt{debian-qa@lists.debian.org} \\ or \texttt{\#debian-qa} on \texttt{irc.debian.org}
ru: Спрашивайте на \texttt{debian-qa@lists.debian.org} \\ или в \texttt{\#debian-qa} на \texttt{irc.debian.org}

note: type: frame{#2}
en: Adopting a package: example
ru: Усыновление пакета: пример

note: type: itemize
en: Polite to contact the previous maintainer (especially if the package was RFAed, not orphaned)
ru: Считается вежливым, если вы свяжитесь с предыдущим сопровождающим (особенно, если пакет имеет статус RFA и пока не осиротел)

note: type: itemize
en: Very good idea to contact the upstream project
ru: Хорошо бы связаться с проектом основной ветки разработки

note: type: frame{#2}
en: Getting your package in Debian
ru: Добавление в Debian вашего пакета

note: type: itemize
en: You do not need any official status to get your package into Debian
ru: Для добавления вашего пакета в Debian вам не нужно иметь официальный статус

note: type: enumerate
en: Submit an \textbf{ITP} bug (\textbf{I}ntent \textbf{T}o \textbf{P}ackage) using \texttt{reportbug wnpp}
ru: Отправьте \textbf{ITP} отчет (\textbf{I}ntent \textbf{T}o \textbf{P}ackage (Намерен создать пакет)) при помощи \texttt{reportbug wnpp}

note: type: enumerate
en: Prepare a source package
ru: Подготовьте пакет с исходным кодом

note: type: enumerate
en: Find a Debian Developer that will sponsor your package
ru: Найдите разработчика Debian, который будет спонсировать ваш пакет

note: type: itemize
en: Official status (when you are an experienced package maintainer):
ru: Официальный статус (когда вы уже являетесь опытным сопровождающим пакетов):

note: type: itemize
en: \textbf{Debian Maintainer (DM):}\\ Permission to upload your own packages\\ See \url{https://wiki.debian.org/DebianMaintainer}
ru: \textbf{Сопровождающий Debian (DM):}\\ Право на загрузку собственных пакетов\\ См. \url{https://wiki.debian.org/DebianMaintainer}

note: type: itemize
en: \textbf{Debian Developer (DD):}\\ Debian project member; can vote and upload any package
ru: \textbf{Разработчик Debian (DD):}\\ Член Проекта Debian; может голосовать и загружать любой пакет

note: type: frame{#2}
en: Things to check before asking for sponsorship
ru: Что проверить прежде чем просить о спонсорстве

note: type: itemize
en: Debian puts \textbf{a lot of focus on quality}
ru: Debian обращает \textbf{большое внимание на качество}

note: type: itemize
en: Generally, \textbf{sponsors are hard to find and busy}
ru: Обычно, \textbf{спонсоров сложно найти, и они заняты}

note: type: itemize
en: Make sure your package is ready before asking for sponsorship
ru: До того, как просить о спонсорстве, убедитесь, что ваш пакет готов

note: type: itemize
en: Things to check:
ru: Что проверить:

note: type: itemize
en: Avoid missing build-dependencies: make sure that your package build fine in a clean \textsl{sid} \textsl{chroot}
ru: Избегайте отсутствующих зависимостей для сборки: убедитесь, что ваш пакет нормально собирается в чистом \textsl{sid} \textsl{chroot}

note: type: itemize
en: Using \texttt{pbuilder} is recommended
ru: Рекомендуется использовать \texttt{pbuilder}

note: type: itemize
en: Run \texttt{lintian -EviIL +pedantic} on your package
ru: Проверьте ваш пакет с помощью \texttt{lintian -EviIL +pedantic}

note: type: itemize
en: Errors must be fixed, all other problems should be fixed
ru: Ошибки должны быть исправлены, все остальные проблемы тоже следует устранить

note: type: itemize
en: Do extensive testing of your package, of course
ru: Конечно, хорошенько протестируйте ваш пакет

note: type: itemize
en: In doubt, ask for help
ru: Если у вас возникли сомнения, попросите помощи

note: type: frame{#2}
en: Where to find help?
ru: Где искать помощь?

note: type: frame
en: Help you will need:
ru: Помощь, которая вам потребуется:

note: type: itemize
en: Advice and answers to your questions, code reviews
ru: Советы и ответы на вопросы, отзывы о коде

note: type: itemize
en: Sponsorship for your uploads, once your package is ready
ru: Спонсирование ваших загрузок, когда ваш пакет будет готов

note: type: frame
en: You can get help from:
ru: Вы можете получить помощь от:

note: type: textbf{#1}
en: Other members of a packaging team
ru: Других членов команды по созданию пакетов

note: type: itemize
en: List of teams: \url{https://wiki.debian.org/Teams}
ru: Список команд: \url{https://wiki.debian.org/Teams}

note: type: itemize
en: The \textbf{Debian Mentors group} (if your package does not fit in a team)
ru: \textbf{Группы наставников Debian} (если ваш пакет не подходит ни для одной группы)

note: type: itemize
en: Mailing list: \url{debian-mentors@lists.debian.org}\\ {\small (also a good way to learn by accident)}
ru: Список рассылки: \url{debian-mentors@lists.debian.org}\\ {\small (так же хороший способ случайно чему-то научиться)}

note: type: itemize
en: IRC: \texttt{\#debian-mentors} on \texttt{irc.debian.org}
ru: IRC: \texttt{\#debian-mentors} на \texttt{irc.debian.org}

note: type: itemize
en: Documentation: \url{http://mentors.debian.net/intro-maintainers}
ru: Документация: \url{http://mentors.debian.net/intro-maintainers}

note: type: itemize
en: \textbf{Localized mailing lists} (get help in your language)
ru: \textbf{Локализованные списки рассылки} (получите помощь на вашем языке)

note: type: itemize
en: Full list: \url{https://lists.debian.org/devel.html}
ru: Полный список: \url{https://lists.debian.org/devel.html}

note: type: itemize
en: Or users lists: \url{https://lists.debian.org/users.html}
ru: Или пользовательские списки: \url{https://lists.debian.org/users.html}

note: type: frame{#2}
en: More documentation
ru: Дополнительная документация

note: type: itemize
en: Debian Developers' Corner\\ \url{https://www.debian.org/devel/}\\ {\small Links to many resources about Debian development}
ru: Уголок разработчика Debian\\ \url{https://www.debian.org/devel/}\\ {\small Ссылки на множество ресурсов о разработке Debian}

note: type: itemize
en: Debian Developer's Reference\\ \url{https://www.debian.org/doc/developers-reference/}\\ {\small Mostly about Debian procedures, but also some best packaging practices (part 6)}
ru: Справочник разработчика Debian\\ \url{https://www.debian.org/doc/developers-reference/}\\ {\small По большей части о процедурах Debian, но также о некоторых лучших практиках создания пакетов (часть 6)}

note: type: itemize
en: Debian Policy\\ \url{https://www.debian.org/doc/debian-policy/}\\
ru: Политика Debian\\ \url{https://www.debian.org/doc/debian-policy/}\\

note: type: itemize
en: {\small \begin{itemize} \item \small All the requirements that every package must satisfy \item \small Specific policies for Perl, Java, Python, \ldots \end{itemize}}
ru: {\small \begin{itemize} \item \small Все требования, которые должен выполнять всякий пакет \item \small Определяет политики для Perl, Java, Python, \ldots \end{itemize}}

note: type: itemize
en: Ubuntu Packaging Guide\\ \url{https://packaging.ubuntu.com/html/}
ru: Руководство по созданию пакетов Ubuntu\\ \url{https://packaging.ubuntu.com/html/}

note: type: frame{#2}
en: Debian dashboards for maintainers
ru: Панели Debian для сопровождающих

note: type: itemize
en: \textbf{Source package centric}:\\ \url{https://tracker.debian.org/dpkg}
ru: \textbf{Фокус на пакетах с исходным кодом}: \url{https://tracker.debian.org/dpkg}

note: type: itemize
en: \textbf{Maintainer/team centric}: Developer's Packages Overview (DDPO)\\ \url{https://qa.debian.org/developer.php?login=pkg-ruby-extras-maintainers@lists.alioth.debian.org}
ru: \textbf{Фокус на сопровождающем/команде}: Обзор пакетов разработчика (DDPO)\\ \url{https://qa.debian.org/developer.php?login=pkg-ruby-extras-maintainers@lists.alioth.debian.org}

note: type: itemize
en: \textbf{TODO-list oriented}: Debian Maintainer Dashboard (DMD)\\ \url{https://udd.debian.org/dmd/}
ru: \textbf{Фокус на списке задач}: Панель сопровождающего Debian (DMD)\\ \url{https://udd.debian.org/dmd/}

note: type: frame{#2}
en: Using the Debian Bug Tracking System (BTS)
ru: Использование системы отслеживания ошибок (BTS)

note: type: itemize
en: A quite unique way to manage bugs
ru: Уникальный способ управления ошибками

note: type: itemize
en: Web interface to view bugs
ru: Веб-интерфейс для просмотра ошибок

note: type: itemize
en: Email interface to make changes to bugs
ru: Интерфейс электронной почты для изменения ошибок

note: type: itemize
en: Adding information to bugs:
ru: Добавление информации к ошибкам:

note: type: itemize
en: Write to \texttt{123456@bugs.debian.org} (does not include the submitter, you need to add \texttt{123456-submitter@bugs.debian.org})
ru: Напишите на \texttt{123456@bugs.debian.org} (не включает отправителя ошибки, вам нужно добавить \texttt{123456-submitter@bugs.debian.org})

note: type: itemize
en: Changing bug status:
ru: Изменение статуса ошибки:

note: type: itemize
en: Send commands to \texttt{control@bugs.debian.org}
ru: Отправьте команды на \texttt{control@bugs.debian.org}

note: type: itemize
en: Command-line interface: \texttt{bts} command in \texttt{devscripts}
ru: Интерфейс командной строки: команда \texttt{bts} в \texttt{devscripts}

note: type: itemize
en: Documentation: \url{https://www.debian.org/Bugs/server-control}
ru: Документация: \url{https://www.debian.org/Bugs/server-control}

note: type: itemize
en: Reporting bugs: use \texttt{reportbug}
ru: Отправка отчётов об ошибках: используйте \texttt{reportbug}

note: type: itemize
en: Normally used with a local mail server: install \texttt{ssmtp} or \texttt{nullmailer}
ru: Обычно используется с локальным почтовым сервером: install \texttt{ssmtp} или \texttt{nullmailer}

note: type: itemize
en: Or use \texttt{reportbug -\@-template}, then send (manually) to \texttt{submit@bugs.debian.org}
ru: Либо используйте \texttt{reportbug -\@-template}, затем отправьте (вручную) по адресу \texttt{submit@bugs.debian.org}

note: type: frame{#2}
en: Using the BTS: examples
ru: Использование BTS: примеры

note: type: itemize
en: Sending an email to the bug and the submitter:\\ \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\#10}
ru: Отправка сообщения ошибке и приславшему эту ошибку:\\ \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\#10}

note: type: itemize
en: Tagging and changing the severity:\\ \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680227\#10}
ru: Отметка тегом и изменение серьёзности:\\ \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680227\#10}

note: type: itemize
en: Reassigning, changing the severity, retitling \ldots: \\ \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\#93}
ru: Переназначение, изменение серьёзности, изменение заголовка \ldots: \\ \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\#93}

note: type: itemize
en: \texttt{notfound}, \texttt{found}, \texttt{notfixed}, \texttt{fixed} are for \textbf{version-tracking} \\ See \url{https://wiki.debian.org/HowtoUseBTS\#Version\_tracking}
ru: \texttt{notfound}, \texttt{found}, \texttt{notfixed}, \texttt{fixed} для \textbf{version-tracking} \\ См. \url{https://wiki.debian.org/HowtoUseBTS\#Version\_tracking}

note: type: itemize
en: Using usertags: \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;bug=642267}\\ See \url{https://wiki.debian.org/bugs.debian.org/usertags}
ru: Использование пользовательских тегов: \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;bug=642267}\\ См. \url{https://wiki.debian.org/bugs.debian.org/usertags}

note: type: itemize
en: BTS Documentation:
ru: Документация по BTS:

note: type: frame{#2}
en: More interested in Ubuntu?
ru: Больше заинтересованы в Ubuntu?

note: type: itemize
en: Ubuntu mainly manages the divergence with Debian
ru: В случае Ubuntu в основном обрабатываются расхождения с Debian

note: type: itemize
en: No real focus on specific packages\\ Instead, collaboration with Debian teams
ru: Не фокусирует внимание на конкретных пакетах\\ Сотрудничает с командами Debian

note: type: itemize
en: Usually recommend uploading new packages to Debian first\\ \url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}
ru: Обычно рекомендуется загружать новые пакеты сначала в Debian\\ \url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}

note: type: itemize
en: Possibly a better plan:
ru: Вероятно, лучше:

note: type: itemize
en: Get involved in a Debian team and act as a bridge with Ubuntu
ru: Принять участие в команде Debian и действовать в качестве моста с Ubuntu

note: type: itemize
en: Help reduce divergence, triage bugs in Launchpad
ru: Помогать уменьшить расхождения, сортировать ошибки в Launchpad

note: type: itemize
en: Many Debian tools can help:
ru: Вам могут помочь многие инструменты Debian:

note: type: itemize
en: Ubuntu column on the Developer's packages overview
ru: Колонка Ubuntu в обзоре пакетов для разработчика

note: type: itemize
en: Ubuntu box on the Package Tracking System
ru: Бокс Ubuntu в системе отслеживания пакетов

note: type: itemize
en: Receive launchpad bugmail via the PTS
ru: Получайте почту об ошибках от Launchpad через PTS

note: type: frame{#2}
en: Conclusions
ru: Заключение

note: type: itemize
en: You now have a full overview of Debian packaging
ru: Теперь у вас имеется полный обзор процесса создания пакетов Debian

note: type: itemize
en: But you will need to read more documentation
ru: Но вам нужно ознакомиться с дополнительной документацией

note: type: itemize
en: Best practices have evolved over the years
ru: Лучшие практики эволюционировали на протяжении нескольких лет

note: type: itemize
en: If not sure, use the \textbf{dh} packaging helper, and the \textbf{3.0 (quilt)} format
ru: Если вы не уверены, используйте утилиту для создания пакетов \textbf{dh}, а также формат \textbf{3.0 (quilt)}

note: type: centerline{#1}
en: \large Feedback: \textbf{packaging-tutorial@packages.debian.org}
ru: \large Обратная связь: \textbf{packaging-tutorial@packages.debian.org}

note: type: frame{#2}
en: Legal stuff
ru: Правовые вопросы

note: type: frame
en: Copyright \copyright 2011--2019 Lucas Nussbaum -- lucas@debian.org
ru: Copyright \copyright 2011--2019 Лукас Нуссбаум -- lucas@debian.org

note: type: frame{#2}
en: Contribute to this tutorial
ru: Принять участие в развитии этого руководства

note: type: itemize
en: Contribute:
ru: Принять участие:

note: type: itemize
en: {\small Open bugs: \url{bugs.debian.org/src:packaging-tutorial}}
ru: {\small Открытые ошибки: \url{bugs.debian.org/src:packaging-tutorial}}

note: type: itemize
en: Provide feedback:
ru: Обратная связь:

note: type: itemize
en: {\small What should be added to this tutorial?}
ru: {\small Что следует добавить в это руководство?}

note: type: itemize
en: {\small What should be improved?}
ru: {\small Что следует улучшить?}

note: type: section{#2}
en: Additional practical sessions
ru: Дополнительные практические задания

note: type: frame{#2}
en: Practical session 2: packaging GNUjump
ru: Практика 2: создание пакета GNUjump

note: type: enumerate
en: Download GNUjump 1.0.8 from \url{http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}
ru: Загрузите GNUjump 1.0.8 по адресу \url{http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}

note: type: enumerate
en: Create a Debian package for it
ru: Создайте для него пакет Debian

note: type: itemize
en: Install build-dependencies so that you can build the package
ru: Установите зависимости для сборки, чтобы вы смогли собрать пакет

note: type: itemize
en: Fix bugs
ru: Исправьте ошибки

note: type: itemize
en: Get a basic working package
ru: Получите простой работающий пакет

note: type: itemize
en: Finish filling \texttt{debian/control} and other files
ru: Закончите заполнение \texttt{debian/control} и других файлов

note: type: enumerate
en: Enjoy
ru: Наслаждайтесь

note: type: frame{#2}
en: Practical session 2: packaging GNUjump (tips)
ru: Практика 2: создание пакета GNUjump (подсказки)

note: type: itemize
en: To get a basic working package, use \texttt{dh\_make}
ru: Для получения базового работающего пакета используйте команду: \texttt{dh\_make}

note: type: itemize
en: To start with, creating a \textsl{1.0} source package is easier than \textsl{3.0 (quilt)} (change that in \texttt{debian/source/format})
ru: Создать пакет с исходным кодом формата \textsl{1.0} проще, чем формат \textsl{3.0 (quilt)} (измените формат в \texttt{debian/source/format})

note: type: itemize
en: To search for missing build-dependencies, find a missing file, and use \texttt{apt-file} to find the missing package
ru: Для поиска отсутствующих сборочных зависимостей, определите отсутствующий файл, а затем используйте \texttt{apt-file} для того, чтобы найти отсутствующий пакет

note: type: itemize
en: If you encounter that error:
ru: Если вы столкнулись со следующей ошибкой:

note: type: itemize
en: You need to add \texttt{-lm} to the linker command line:\\ Edit \texttt{src/Makefile.am} and replace
ru: вам следует добавить \texttt{-lm} в строку с командой вызова компоновщика:\\ Отредактируйте \texttt{src/Makefile.am} и замените

note: type: itemize
en: by
ru: на

note: type: itemize
en: Then run \texttt{autoreconf -i}
ru: Затем запустите \texttt{autoreconf -i}

note: type: frame{#2}
en: Practical session 3: packaging a Java library
ru: Практика 3: создание пакета библиотеки Java

note: type: enumerate
en: Take a quick look at some documentation about Java packaging:\\
ru: Просмотрите документацию о создании пакетов Java:\\

note: type: enumerate
en: Download IRClib from \url{http://moepii.sourceforge.net/}
ru: Загрузите IRClib по адресу \url{http://moepii.sourceforge.net/}

note: type: enumerate
en: Package it
ru: Создайте пакет

note: type: frame{#2}
en: Practical session 4: packaging a Ruby gem
ru: Практика 4: создание пакета с gem-пакетом Ruby

note: type: enumerate
en: Take a quick look at some documentation about Ruby packaging:\\
ru: Просмотрите документацию о создании пакетов Ruby:\\

note: type: enumerate
en: Create a basic Debian source package from the \texttt{peach} gem:\\ \texttt{gem2deb peach}
ru: Создайте простой Debian пакет с исходным кодом из \texttt{peach} gem:\\ \texttt{gem2deb peach}

note: type: enumerate
en: Improve it so that it becomes a proper Debian package
ru: Улучшите его так, чтобы он стал правильным пакетом Debian

note: type: frame{#2}
en: Practical session 5: packaging a Perl module
ru: Практика 5: создание пакета с модулем Perl

note: type: enumerate
en: Take a quick look at some documentation about Perl packaging:\\
ru: Просмотрите документацию о создании пакетов Perl:\\

note: type: enumerate
en: Create a basic Debian source package from the \texttt{Acme} CPAN distribution:\\ \verb|dh-make-perl --cpan Acme|
ru: Создайте простой Debian пакет с исходным кодом из \texttt{Acme} CPAN:\\ \verb|dh-make-perl --cpan Acme|

note: type: section{#2}
en: Answers to practical sessions
ru: Ответы на практические задания

note: type: center
en: \LARGE Answers to
ru: \LARGE Ответы на

note: type: center
en: [0.5em] practical sessions
ru: [0.5em] практические задания

note: type: frame{#2}
en: Fetching the source
ru: Загрузка исходного кода

note: type: itemize
en: Use dget to download the \texttt{.dsc} file:\\ {\small \texttt{dget http://cdn.debian.net/debian/pool/main/g/grep/grep\_2.12-2.dsc}}
ru: Используйте dget для загрузки файла \texttt{.dsc}:\\ {\small \texttt{dget http://cdn.debian.net/debian/pool/main/g/grep/grep\_2.12-2.dsc}}

note: type: itemize
en: The \texttt{grep} source package is composed of three files:
ru: Пакет с исходным кодом \texttt{grep} содержит три файла:

note: type: itemize
en: This is typical of the "3.0 (quilt)" format.
ru: Это обычный формат "3.0 (quilt)".

note: type: itemize
en: If needed, uncompress the source with\\ \texttt{dpkg-source -x grep\_2.12-2.dsc}
ru: Если это необходимо, распакуйте исходный код при помощи\\ \texttt{dpkg-source -x grep\_2.12-2.dsc}

note: type: frame{#2}
en: Looking around and building the package
ru: Осматриваем и собираем пакет

note: type: itemize
en: According to \texttt{debian/control}, this package only generates one binary package, named \texttt{grep}.
ru: Согласно \texttt{debian/control}, этот пакет создаёт только один двоичный пакет, а именно \texttt{grep}.

note: type: itemize
en: 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}.
ru: Согласно \texttt{debian/rules}, этот пакет представляет собой типичный пакет для \textsl{классического} debhelper, без использования \textsl{CDBS} или \textsl{dh}. Можно видеть различные вызовы команд \texttt{dh\_*} в \texttt{debian/rules}.

note: type: itemize
en: Use \texttt{apt-get build-dep grep} to fetch the build-dependencies
ru: Используйте \texttt{apt-get build-dep grep} для загрузки сборочных зависимостей

note: type: itemize
en: Then \texttt{debuild} or \texttt{dpkg-buildpackage -us -uc} (Takes about 1 min)
ru: Далее, \texttt{debuild} или \texttt{dpkg-buildpackage -us -uc} (Занимает 1 минуту)

note: type: frame{#2}
en: Editing the changelog
ru: Редактирование журнала изменений

note: type: itemize
en: \texttt{debian/changelog} is a text file. You could edit it and add a new entry manually.
ru: \texttt{debian/changelog} является текстовым файлом. Можно отредактировать его и добавить новую запись вручную.

note: type: itemize
en: Or you can use \texttt{dch -i}, which will add an entry and open the editor
ru: Либо можно использовать \texttt{dch -i}, который добавит запись и откроет редактор

note: type: itemize
en: The name and email can be defined using the \texttt{DEBFULLNAME} and \texttt{DEBEMAIL} environment variables
ru: Имя и адрес электронной почты могут быть определены при помощи переменных окружения \texttt{DEBFULLNAME} и \texttt{DEBEMAIL}

note: type: itemize
en: After that, rebuild the package: a new version of the package is built
ru: После этого соберите пакет заново: будет собрана новая версия пакета

note: type: itemize
en: Package versioning is detailed in section 5.6.12 of the Debian policy\\ \url{https://www.debian.org/doc/debian-policy/ch-controlfields}
ru: Присвоение версий пакетам описывается в разделе 5.6.12 Политики Debian\\ \url{https://www.debian.org/doc/debian-policy/ch-controlfields}

note: type: frame{#2}
en: Disabling Perl regexp support and rebuilding
ru: Отключение регулярных выражений Perl

note: type: itemize
en: Check with \texttt{./configure -{}-help}: the option to disable Perl regexp is \texttt{-{}-disable-perl-regexp}
ru: Посмотрите \texttt{./configure -{}-help}: опция для отключения регулярных выражений Perl -- \texttt{-{}-disable-perl-regexp}

note: type: itemize
en: Edit \texttt{debian/rules} and find the \texttt{./configure} line
ru: Откройте для редактирования \texttt{debian/rules} и найдите строку \texttt{./configure}

note: type: itemize
en: Add \texttt{-{}-disable-perl-regexp}
ru: Добавьте \texttt{-{}-disable-perl-regexp}

note: type: itemize
en: Rebuild with \texttt{debuild} or \texttt{dpkg-buildpackage -us -uc}
ru: Соберите заново при помощи \texttt{debuild} или \texttt{dpkg-buildpackage -us -uc}

note: type: frame{#2}
en: Comparing and testing the packages
ru: Сравнение и тестирование пакетов

note: type: itemize
en: Compare the binary packages: \texttt{debdiff ../*changes}
ru: Сравните двоичные пакеты: \texttt{debdiff ../*changes}

note: type: itemize
en: Compare the source packages: \texttt{debdiff ../*dsc}
ru: Сравните пакеты с исходным кодом: \texttt{debdiff ../*dsc}

note: type: itemize
en: Install the newly built package: \texttt{debi}\\ Or \texttt{dpkg -i ../grep\_<TAB>}
ru: Установите заново собранный пакет: \texttt{debi}\\ Или \texttt{dpkg -i ../grep\_<TAB>}

note: type: itemize
en: \texttt{grep -P foo} no longer works!
ru: \texttt{grep -P foo} больше не работает!

note: type: frame
en: Reinstall the previous version of the package:
ru: Переустановите предыдущую версию пакета:

note: type: itemize
en: \texttt{apt-get install -{}-reinstall grep=2.6.3-3} \textit{(= previous version)}
ru: \texttt{apt-get install -{}-reinstall grep=2.6.3-3} \textit{(= предыдущая версия)}

note: type: frame{#2}
en: Step by step\ldots
ru: Шаг за шагом\ldots

note: type: itemize
en: Type of package: single binary (for now)
ru: Тип пакета: один двоичный (сейчас)

note: type: frame{#2}
en: Step by step\ldots (2)
ru: Шаг за шагом\ldots (2)

note: type: itemize
en: Look at \texttt{debian/changelog}, \texttt{debian/rules}, \texttt{debian/control}\\ (auto-filled by \textbf{dh\_make})
ru: Посмотрите \texttt{debian/changelog}, \texttt{debian/rules}, \texttt{debian/control}\\ (заполняются автоматически при помощи \textbf{dh\_make})

note: type: itemize
en: In \texttt{debian/control}:\\ \texttt{Build-Depends: debhelper (>= 7.0.50~), autotools-dev}\\ Lists the \textsl{build-dependencies} = packages needed to build the package
ru: В \texttt{debian/control}:\\ \texttt{Build-Depends: debhelper (>= 7.0.50~), autotools-dev}\\ Приведён список \textsl{сборочных зависимостей} = пакетов, необходимых для сборки пакета

note: type: itemize
en: Try to build the package as-is with \texttt{debuild} (thanks to \textbf{dh} magic)
ru: Попробуйте собрать пакет как есть с помощью \texttt{debuild} (используя магию \textbf{dh})

note: type: itemize
en: And add build-dependencies, until it builds
ru: Добавляйте сборочные зависимости, пока он не будет собираться

note: type: itemize
en: Hint: use \texttt{apt-cache search} and \texttt{apt-file} to find the packages
ru: Подсказка: используйте \texttt{apt-cache search} и \texttt{apt-file}, чтобы найти пакеты

note: type: itemize
en: Example:
ru: Пример:

note: type: itemize
en: $\rightarrow$ Add \textbf{libsdl1.2-dev} to Build-Depends and install it.
ru: $\rightarrow$ Добавьте \textbf{libsdl1.2-dev} в поле Build-Depends и установите этот пакет.

note: type: itemize
en: Better: use \textbf{pbuilder} to build in a clean environment
ru: Лучше: используйте \textbf{pbuilder} для сборки в чистом окружении

note: type: frame{#2}
en: Step by step\ldots (3)
ru: Шаг за шагом\ldots (3)

note: type: itemize
en: Required build-dependencies are \texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev}
ru: Требуются следюущие сборочные зависимости: \texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev}

note: type: itemize
en: Then, you will probably run into another error:
ru: Далее, скорее всего вы столкнётесь с другой ошибкой:

note: type: itemize
en: This problem is caused by bitrot: gnujump has not been adjusted following linker changes.
ru: Эта проблема вызвана bitrot: gnujump не был настроен в соответствии с изменениями компоновщика.

note: type: itemize
en: If you are using source format version \textbf{1.0}, you can directly change upstream sources.
ru: Если вы используете формат исходного кода версии \textbf{1.0}, вы можете напрямую изменять исходный код основной ветки разработки.

note: type: itemize
en: Edit \texttt{src/Makefile.am} and replace
ru: Отредактируйте \texttt{src/Makefile.am} и замените

note: type: frame{#2}
en: Step by step\ldots (4)
ru: Шаг за шагом\ldots (4)

note: type: itemize
en: If you are using source format version \textbf{3.0 (quilt)}, use \texttt{quilt} to prepare a patch. (see \url{https://wiki.debian.org/UsingQuilt})
ru: Если вы используете формат исходного кода версии \textbf{3.0 (quilt)}, то используйте \texttt{quilt} для создания заплаты. (См. \url{https://wiki.debian.org/UsingQuilt})

note: type: itemize
en: Since \texttt{src/Makefile.am} was changed, autoreconf must be called during the build. To do that automatically with \texttt{dh}, change the \texttt{dh} call in \texttt{debian/rules} from: \texttt{dh \$\@ -{}-with autotools-dev}\\ to: \texttt{dh \$\@ -{}-with autotools-dev -{}-with autoreconf}
ru: Поскольку \texttt{src/Makefile.am} был изменён, во время сборки следует вызвать autoreconf. Чтобы сделать это автоматически с помощью \texttt{dh}, измените вызов \texttt{dh} в \texttt{debian/rules} с \texttt{dh \$\@ -{}-with autotools-dev}\\ на \texttt{dh \$\@ -{}-with autotools-dev -{}-with autoreconf}

note: type: frame{#2}
en: Step by step\ldots (5)
ru: Шаг за шагом\ldots (5)

note: type: itemize
en: The package should now build fine.
ru: Теперь сборка пакета должена завершаться корректно.

note: type: itemize
en: Use \texttt{debc} to list the content of the generated package, and \texttt{debi} to install it and test it.
ru: Используйте \texttt{debc} для получения списка содержимого созданного пакета и \texttt{debi} для его установки и тестирования.

note: type: itemize
en: Test the package with \texttt{lintian}
ru: Протестируйте пакет при помощи \texttt{lintian}

note: type: itemize
en: While not a strict requirement, it is recommended that packages uploaded to Debian are \textsl{lintian-clean}
ru: Хотя это не является строгим требованием, рекомендуется, чтобы пакеты, загружаемые в Debian были \textsl{lintian-clean}

note: type: itemize
en: More problems can be listed using \texttt{lintian -EviIL +pedantic}
ru: Дополнительные проблемы могут быть просмотрены при помощи \texttt{lintian -EviIL +pedantic}

note: type: itemize
en: Some hints:
ru: Несколько подсказок:

note: type: itemize
en: Remove the files that you don't need in \texttt{debian/}
ru: Удалите ненужные вам файлы в \texttt{debian/}

note: type: itemize
en: Fill in \texttt{debian/control}
ru: Заполните \texttt{debian/control}

note: type: itemize
en: Install the executable to \texttt{/usr/games} by overriding \texttt{dh\_auto\_configure}
ru: Установите выполняемые файлы в \texttt{/usr/games}, изменив \texttt{dh\_auto\_configure}

note: type: itemize
en: Use \textsl{hardening} compiler flags to increase security.\\ See \url{https://wiki.debian.org/Hardening}
ru: Используйте флаги \textsl{hardening} компилятора для увеличения безопасности.\\ См. \url{https://wiki.debian.org/Hardening}

note: type: frame{#2}
en: Step by step\ldots (6)
ru: Шаг за шагом\ldots (6)

note: type: itemize
en: Compare your package with the one already packaged in Debian:
ru: Сравните ваш пакет с пакетом в Debian:

note: type: itemize
en: It splits the data files to a second package, that is the same across all architectures ($\rightarrow$ saves space in the Debian archive)
ru: Это выделит файлы с данными во второй пакет, который одинаков для всех архитектур ($\rightarrow$ сохраняет место в архиве Debian)

note: type: itemize
en: It installs a .desktop file (for the GNOME/KDE menus) and also integrates into the Debian menu
ru: Это установит файл .desktop (для меню GNOME/KDE), а также интегрирует в меню Debian

note: type: itemize
en: It fixes a few minor problems using patches
ru: Это исправит несколько небольших проблем при использовании заплат

note: type: itemize
en: Create a basic source package: \texttt{jh\_makepkg}
ru: Создайте простой пакет с исходным кодом: \texttt{jh\_makepkg}

note: type: itemize
en: Library
ru: Библиотека

note: type: itemize
en: None
ru: Нет

note: type: itemize
en: Default Free compiler/runtime
ru: Свободный компилятор/время выполнения по умолчанию

note: type: itemize
en: Look at and fix \texttt{debian/*}
ru: Посмотрите и исправьте \texttt{debian/*}

note: type: itemize
en: \texttt{dpkg-buildpackage -us -uc} or \texttt{debuild}
ru: \texttt{dpkg-buildpackage -us -uc} или \texttt{debuild}

note: type: itemize
en: \texttt{lintian}, \texttt{debc}, etc.
ru: \texttt{lintian}, \texttt{debc} и т.д.

note: type: itemize
en: Compare your result with the \texttt{libirclib-java} source package
ru: Сравните ваш результат с пакетом с исходным кодом \texttt{libirclib-java}

note: type: itemize
en: Downloads the gem from rubygems.org
ru: Загрузите gem-пакет с rubygems.org

note: type: itemize
en: Creates a suitable .orig.tar.gz archive, and untar it
ru: Создаёт подходящий архив .orig.tar.gz, и распаковывает его

note: type: itemize
en: Initializes a Debian source package based on the gem's metadata
ru: Инициализирует пакет Debian с исходным кодом на основе метаданных gem-пакета

note: type: itemize
en: Named \texttt{ruby-\textsl{gemname}}
ru: Имеет имя \texttt{ruby-\textsl{имя\_gem}}

note: type: itemize
en: Tries to build the Debian binary package (this might fail)
ru: Пытается собрать двоичных пакет Debian (это может не сработать)

note: type: frame
en: \texttt{dh\_ruby} (included in \textsl{gem2deb}) does the Ruby-specific tasks:
ru: \texttt{dh\_ruby} (включён в \textsl{gem2deb}) выполняет специфичные для Ruby задачи:

note: type: itemize
en: Build C extensions for each Ruby version
ru: Собирает расширения C для каждой версии Ruby

note: type: itemize
en: Copy files to their destination directory
ru: Копирует файлы в их каталоги назначения

note: type: itemize
en: Update shebangs in executable scripts
ru: Обновляет shebang-и в исполняемых сценариях

note: type: itemize
en: Run tests defined in \texttt{debian/ruby-tests.rb}, \texttt{debian/ruby-tests.rake}, or \texttt{debian/ruby-test-files.yaml}, as well as various other checks
ru: Запускает тесты, определённые в \texttt{debian/ruby-tests.rb}, \texttt{debian/ruby-tests.rake} или \texttt{debian/ruby-test-files.yaml}, а также другие проверки

note: type: frame
en: Improve the generated package:
ru: Улучшить созданный пакет:

note: type: itemize
en: Run \texttt{debclean} to clean the source tree. Look at \texttt{debian/}.
ru: Запустите \texttt{debclean} для очистки дерева исходного кода. Посмотрите \texttt{debian/}.

note: type: itemize
en: \texttt{changelog} and \texttt{compat} should be correct
ru: \texttt{changelog} и \texttt{compat} должны быть верны

note: type: itemize
en: Edit \texttt{debian/control}: improve \texttt{Description}
ru: Отредактируйте \texttt{debian/control}: улучшите \texttt{Description}

note: type: itemize
en: Write a proper \texttt{copyright} file based on the upstream files
ru: Напишите правильный файл \texttt{copyright} на основе файлов из основной ветки разработки

note: type: itemize
en: Compare your package with the \texttt{ruby-peach} package in the Debian archive
ru: Сравните ваш пакет с пакетом \texttt{ruby-peach} в архиве Debian

note: type: itemize
en: Downloads the tarball from the CPAN
ru: Загрузите tarball с CPAN

note: type: itemize
en: Creates a suitable .orig.tar.gz archive, and untars it
ru: Создаёт подходящий архив .orig.tar.gz и распаковывает его

note: type: itemize
en: Initializes a Debian source package based on the distribution's metadata
ru: Инициализирует пакет Debian с исходным кодом на основе метаданных дистрибутива

note: type: itemize
en: Named \texttt{lib\textsl{distname}-perl}
ru: Имеет имя \texttt{lib\textsl{distname}-perl}

note: type: itemize
en: \texttt{debian/changelog}, \texttt{debian/compat}, \texttt{debian/libacme-perl.docs}, and \texttt{debian/watch} should be correct
ru: \texttt{debian/changelog}, \texttt{debian/compat}, \texttt{debian/libacme-perl.docs} и \texttt{debian/watch} должны быть правильными

note: type: itemize
en: Edit \texttt{debian/control}: improve \texttt{Description}, and remove boilerplate at the bottom
ru: Отредактируйте \texttt{debian/control}: улучшите \texttt{Description} и удалите шаблон снизу

note: type: itemize
en: Edit \texttt{debian/copyright}: remove boilerplate paragraph at the top, add years of copyright to the \texttt{Files:\hspace{0.3em}*} stanza
ru: Отредактируйте \texttt{debian/copyright}: удалите шаблон сверху, добавьте годы действия авторского права в строку \texttt{Files:\hspace{0.3em}*}
