packaging-tutorial 0.19 - en to zh_TW translation catalogue (530 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}
zh_TW: \usepackage{debiantutorial.zh_TW}\hypersetup{unicode}\usepackage[whole]{bxcjkjatype}\setminchofont{DroidSansFallbackFull.ttf}\setgothicfont{DroidSansFallbackFull.ttf}

note: type: title{#2}
en: Debian Packaging Tutorial
zh_TW: Debian 套件打包教學指南

note: type: frame{#2}
en: About this tutorial
zh_TW: 關於此教學指南

note: type: itemize
en: Goal: \textbf{tell you what you really need to know about Debian packaging}
zh_TW: 目標: \textbf{瞭解 Debian 套件打包的相關知識}

note: type: itemize
en: Modify existing packages
zh_TW: 修改既有套件

note: type: itemize
en: Create your own packages
zh_TW: 新增自有套件

note: type: itemize
en: Interact with the Debian community
zh_TW: 和 Debian 社群進行交流

note: type: itemize
en: Become a Debian power-user
zh_TW: 成為 Debian 進階使用者

note: type: itemize
en: Covers the most important points, but is not complete
zh_TW: 這份教學指南針對重要功能進行介紹, 但也許會有疏漏之處

note: type: itemize
en: You will need to read more documentation
zh_TW: 所以你需要閱讀更多文件

note: type: itemize
en: Most of the content also applies to Debian derivative distributions
zh_TW: 文件大部份的內容也適用於 Debian 衍生的 Linux發行版

note: type: itemize
en: That includes Ubuntu
zh_TW: 其中包含 Ubuntu

note: type: frame{#2}
en: Outline
zh_TW: 大綱

note: type: section{#2}
en: Introduction
zh_TW: 介紹

note: type: textbf{#1}
en: GNU/Linux distribution
zh_TW: GNU/Linux 發行版

note: type: itemize
en: 1st major distro developed ``openly in the spirit of GNU''
zh_TW: 第一個以 GNU 開源精神進行開發的主要發行版

note: type: itemize
en: \textbf{Non-commercial}, built collaboratively by over 1,000 volunteers
zh_TW: \textbf{非營利}, 由超過1000個志願者協同開發而成

note: type: itemize
en: 3 main features:
zh_TW: 三個主要特色:

note: type: itemize
en: \textbf{Quality} -- culture of technical excellence\\ {\small\sl We release when it's ready}
zh_TW: \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
zh_TW: \textbf{自由} -- 開發者以及使用者皆遵循 \textsl{社會契約}\\ 並發揚自1993年起開始倡導的自由軟體文化

note: type: itemize
en: \textbf{Independence} -- no (single) company babysitting Debian\\ And open decision-making process (\textsl{do-ocracy} + \textsl{democracy})
zh_TW: \textbf{獨立} -- Debian 不被任何一間公司所擁有\\ 決策過程一切透明化 (\textsl{行動至上} + \textsl{民主})

note: type: itemize
en: \textbf{Amateur} in the best sense: done for the love of it
zh_TW: 對於\textbf{業餘開發者} 來說最大的意義: 因本身喜愛而去完成這些事

note: type: frame{#2}
en: Debian packages
zh_TW: Debian 套件

note: type: itemize
en: \textbf{.deb} files (binary packages)
zh_TW: \textbf{.deb} 檔案 (二進制 套件)

note: type: itemize
en: A very powerful and convenient way to distribute software to users
zh_TW: 以有效且合宜的方法來向使用者發佈軟體

note: type: itemize
en: One of the two most common package formats (with RPM)
zh_TW: 是兩個最常見的套件格式之一 (另一個為 RPM)

note: type: itemize
en: Universal:
zh_TW: 一般來說:

note: type: itemize
en: 30,000 binary packages in Debian\\ $\rightarrow$ most of the available free software is packaged in Debian!
zh_TW: Debian 有 30,000 個二進制套件\\ $\rightarrow$ 絕大部份的自由軟體皆已經打包並放進 Debian!

note: type: itemize
en: For 12 ports (architectures), including 2 non-Linux (Hurd; KFreeBSD)
zh_TW: 支援 12 種 CPU 架構, 其中包含 2 個非 Linux 相關(Hurd; KFreeBSD)

note: type: itemize
en: Also used by 120 Debian derivative distributions
zh_TW: Debian 被其衍生120個發行版所使用

note: type: frame{#2}
en: The Deb package format
zh_TW: Deb 套件格式

note: type: itemize
en: \texttt{.deb} file: an \texttt{ar} archive
zh_TW: \texttt{.deb} 檔案: 是 \texttt{ar} 靜態函式庫格式

note: $ type: itemize
en: \texttt{debian-binary}: version of the deb file format, \texttt{"2.0\textbackslash{}n"}
zh_TW: \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}
zh_TW: \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
zh_TW: \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/}}
zh_TW: 你可以手動製作 \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
zh_TW: 但大部份的人不會使用那種方法

note: type: textbf{#1}
en: This tutorial: create Debian packages, the Debian way
zh_TW: 這份教學指南: 以 Debian 風格來製作 Debian 套件

note: type: frame{#2}
en: Tools you will need
zh_TW: 開發必需之工具

note: type: itemize
en: A Debian (or Ubuntu) system (with root access)
zh_TW: 一台能以 root 權限存取的 Debian (or Ubuntu) 系統

note: type: itemize
en: Some packages:
zh_TW: 一些必需套件:

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)
zh_TW: \textbf{build-essential}: 和 Debian 套件有相依性並假定已安裝在開發者的機器上 (不需在套件中的 control 欄位特別指定 \texttt{Build-Depends:} )

note: type: itemize
en: includes a dependency on \textbf{dpkg-dev}, which contains basic Debian-specific tools to create packages
zh_TW: 相依 \textbf{dpkg-dev} 套件, 其中包含基本 Debian 特定工具, 以便於製作 Debian 套件

note: type: itemize
en: \textbf{devscripts}: contains many useful scripts for Debian maintainers
zh_TW: \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.
zh_TW: 還有一些接著會提到的工具, 比如說 \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
zh_TW: 一般打包套件的流程

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);
zh_TW: \node[node1] (www) at (0, 0) {Web}; \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
zh_TW: 重包 dash 套件

note: type: frame{#2}
en: Example: rebuilding dash
zh_TW: 範例: 重包 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}}
zh_TW: 安裝重包 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}
zh_TW: 創建並進入一個工作目錄:\\ \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})}
zh_TW: 把 \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)
zh_TW: 構建套件\\ {\texttt{cd dash-*\\ debuild -us -uc}} ~~~(\texttt{-us -uc} 代表不使用GPG來簽署套件)

note: type: enumerate
en: Check that it worked
zh_TW: 確認已正常運行

note: type: itemize
en: There are some new \texttt{.deb} files in the parent directory
zh_TW: 會看到一些新產生的 \texttt{.deb} 檔案在上一層資料夾中

note: type: enumerate
en: Look at the \texttt{debian/} directory
zh_TW: 接著看\texttt{debian/} 目錄

note: type: itemize
en: That's where the packaging work is done
zh_TW: 這是實際打包套件的地方

note: type: section{#2}
en: Creating source packages
zh_TW: 製作原始碼套件

note: type: subsection{#2}
en: Source packages basics
zh_TW: 原始碼套件基礎知識

note: type: frame{#2}
en: Source package
zh_TW: 原始碼套件

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}
zh_TW: 一個原始碼套件可產生多個二進制套件\\ {\small 舉例來說 \texttt{\bfseries libtar} 原始碼會產出 \texttt{\bfseries libtar0} 跟 \texttt{\bfseries libtar-dev} 二進制套件}

note: type: itemize
en: Two kinds of packages: (if unsure, use non-native)
zh_TW: 套件分成兩種類型: (若不確定套件種類屬於哪一種, 請使用非原生)

note: type: itemize
en: Native packages: normally for Debian specific software (\textsl{dpkg}, \textsl{apt})
zh_TW: 原生套件: 通常指的是在 Debian 上固有的特定軟體(\textsl{dpkg}, \textsl{apt})

note: type: itemize
en: Non-native packages: software developed outside Debian
zh_TW: 非原生套件: 在 Debian 以外發展的軟體

note: type: itemize
en: Main file: \texttt{.dsc} (meta-data)
zh_TW: 主要檔案: \texttt{.dsc} (描述資料內容)

note: type: itemize
en: Other files depending on the version of the source format
zh_TW: 其他檔案則相依於原始碼格式版本

note: type: itemize
en: 1.0 or 3.0 (native): \texttt{package\_version.tar.gz}
zh_TW: 1.0 or 3.0 (原生): \texttt{package\_version.tar.gz}

note: type: itemize
en: 1.0 (non-native):
zh_TW: 1.0 (非原生):

note: type: itemize
en: \texttt{pkg\_ver.orig.tar.gz}: upstream source
zh_TW: \texttt{pkg\_ver.orig.tar.gz}: 上游原始碼

note: type: itemize
en: \texttt{pkg\_debver.diff.gz}: patch to add Debian-specific changes
zh_TW: \texttt{pkg\_debver.diff.gz}: 針對 Debian 環境而進行客制修改的補丁

note: type: itemize
en: \texttt{pkg\_debver.debian.tar.gz}: tarball with the Debian changes
zh_TW: \texttt{pkg\_debver.debian.tar.gz}: 針對 Debian 環境而進行客制修改的 tarball 檔

note: type: frame
en: (See \texttt{dpkg-source(1)} for exact details)
zh_TW: (可參考\texttt{dpkg-source(1)} 有更詳盡的解說)

note: type: frame{#2}
en: Source package example (wget\_1.12-2.1.dsc)
zh_TW: 原始碼套件範例

note: type: subsection{#2}
en: Retrieving source packages
zh_TW: 取回原始碼套件

note: type: frame{#2}
en: Retrieving an existing source package
zh_TW: 取回一個既有的原始碼套件

note: type: itemize
en: From the Debian archive:
zh_TW: 從 Debian 檔案庫裡面下載:

note: type: itemize
en: (You need \texttt{deb-src} lines in \texttt{sources.list})
zh_TW: (需要加入 \texttt{deb-src} 的設定到 \texttt{sources.list})

note: type: itemize
en: From the Internet:
zh_TW: 透過網路下載:

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)
zh_TW: \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套件)

note: type: itemize
en: From the (declared) version control system:
zh_TW: 透過 Debian 版本控制系統下載:

note: type: itemize
en: Once downloaded, extract with \texttt{dpkg-source -x \textsl{file.dsc}}
zh_TW: 下載後, 使用 \texttt{dpkg-source -x \textsl{file.dsc}}解壓縮即可

note: type: frame{#2}
en: Creating a basic source package
zh_TW: 創建一個基本原始碼套件

note: type: itemize
en: Download the upstream source\\ (\textsl{upstream source} = the one from the software's original developers)
zh_TW: 從上游下載原始碼\\ (\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})
zh_TW: 將檔案改名成 \texttt{<\textsl{source\_package}>\_<\textsl{upstream\_version}>.orig.tar.gz}\\ (範例: \texttt{simgrid\_3.6.orig.tar.gz})

note: type: itemize
en: Untar it
zh_TW: 解開此 tar 檔

note: type: itemize
en: Rename the directory to \texttt{<\textsl{source\_package}>-<\textsl{upstream\_version}>}\\ (example: \texttt{simgrid-3.6})
zh_TW: 將目錄改名為 \texttt{<\textsl{source\_package}>-<\textsl{upstream\_version}>}\\ (範例: \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)
zh_TW: \texttt{cd \texttt{<\textsl{source\_package}>-<\textsl{upstream\_version}>} \&\& 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
zh_TW: 對於特定套件, 有除了 \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
zh_TW: 已新增\texttt{debian/} 目錄, 裡面有許多檔案

note: type: frame{#2}
en: Files in debian/
zh_TW: 在 debian/ 裡的檔案

note: type: frame
en: All the packaging work should be made by modifying files in \texttt{debian/}
zh_TW: 透過修改 \texttt{debian/} 中的檔案來定義所有打包的動作

note: type: itemize
en: Main files:
zh_TW: 主要的檔案:

note: type: itemize
en: \textbf{control} -- meta-data about the package (dependencies, etc.)
zh_TW: \textbf{control} -- 描述套件相關資訊的檔案 (相依性, 等等...)

note: type: itemize
en: \textbf{rules} -- specifies how to build the package
zh_TW: \textbf{rules} -- 定義如何構建此套件

note: type: itemize
en: \textbf{copyright} -- copyright information for the package
zh_TW: \textbf{copyright} -- 關於此套件的版權宣告

note: type: itemize
en: \textbf{changelog} -- history of the Debian package
zh_TW: \textbf{changelog} --有關此 Debian 套件的修改歷程

note: type: itemize
en: Other files:
zh_TW: 其他檔案:

note: type: itemize
en: maintainer scripts\\ {\small *.postinst, *.prerm, \ldots}
zh_TW: 維護者所使用的腳本\\ {\small *.postinst, *.prerm, \ldots}

note: type: itemize
en: patches/ -- if you need to modify the upstream sources
zh_TW: patches/ -- 如果你需要修改上游原始碼

note: type: itemize
en: Several files use a format based on RFC 822 (mail headers)
zh_TW: 許多檔案的格式都是基於 RFC 822 (信的表頭)

note: type: itemize
en: Lists the Debian packaging changes
zh_TW: 列出 Debian 套件的修改歷程

note: type: itemize
en: Gives the current version of the package
zh_TW: 訂定現在的套件版本

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};
zh_TW: \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}
zh_TW: 可以手動編輯或者透過 \textttc{dch}

note: type: itemize
en: Create a changelog entry for a new release: \textttc{dch -i}
zh_TW: 為一個新的發行版創建一條歷程記錄\textttc{dch -i}

note: type: itemize
en: Special format to automatically close Debian or Ubuntu bugs\\ Debian: \texttt{Closes:~\#595268}; Ubuntu: \texttt{LP:~\#616929}
zh_TW: 具備特殊格式並自動將 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}
zh_TW: 安裝在 \texttt{/usr/share/doc/\textit{package}/changelog.Debian.gz}

note: type: itemize
en: Package metadata
zh_TW: 描述套件相關資訊的檔案

note: type: itemize
en: For the source package itself
zh_TW: 對於原始碼套件本身

note: type: itemize
en: For each binary package built from this source
zh_TW: 對於每個從原始碼套件建置而成的二進制套件

note: type: itemize
en: Package name, section, priority, maintainer, uploaders, build-dependencies, dependencies, description, homepage, \ldots
zh_TW: 套件名稱, 種類, 優先度, 維護者, 上傳者, 建置相依性, 相依性, 相關描述, 網頁

note: type: itemize
en: Documentation: Debian Policy chapter 5\\ \url{https://www.debian.org/doc/debian-policy/ch-controlfields}
zh_TW: 相關文件: Debian Policy 第 5 章\\ \url{https://www.debian.org/doc/debian-policy/ch-controlfields}

note: type: frame
en: Two kinds of binary packages:
zh_TW: 有兩種二進制套件:

note: type: itemize
en: Packages with different contents on each Debian architecture
zh_TW: 套件內容會隨著不同的 Debian 平台架構而有所差異

note: type: itemize
en: Example: C program
zh_TW: 範例: C 程式

note: type: itemize
en: \texttt{Architecture:\ any} in \texttt{debian/control}
zh_TW: \texttt{debian/control} 中描述 \texttt{Architecture:\ any}

note: type: itemize
en: Or, if it only works on a subset of architectures:\\ \texttt{Architecture:\ amd64 i386 ia64 hurd-i386}
zh_TW: 或者只運行在某些特定的平台架構中:\\ \texttt{Architecture:\ amd64 i386 ia64 hurd-i386}

note: type: itemize
en: buildd.debian.org: builds all the other architectures for you on upload
zh_TW: buildd.debian.org: 上傳後會自動構建其他架構的套件

note: type: itemize
en: Named \texttt{\textsl{package}\_\textsl{version}\_\textsl{architecture}.deb}
zh_TW: 命名為\texttt{\textsl{package}\_\textsl{version}\_\textsl{architecture}.deb}

note: type: itemize
en: Packages with the same content on all architectures
zh_TW: 套件內容在不同的 Debian 平台架構上皆相同

note: type: itemize
en: Example: Perl library
zh_TW: 範例: Perl 函式庫

note: type: itemize
en: \texttt{Architecture:\ all} in \texttt{debian/control}
zh_TW: \texttt{debian/control} 中描述 \texttt{Architecture:\ all}

note: type: itemize
en: Named \texttt{\textsl{package}\_\textsl{version}\_\textbf{all}.deb}
zh_TW: 命名為\texttt{\textsl{package}\_\textsl{version}\_\textbf{all}.deb}

note: type: frame
en: A source package can generate a mix of \texttt{Architecture:\ any} and \texttt{Architecture:\ all} binary packages
zh_TW: 一個原始碼套件可以產生多個平台架構 \texttt{Architecture:\ any} 以及 \texttt{Architecture:\ all} 二進制套件

note: type: itemize
en: Interface used to build Debian packages
zh_TW: 構建 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}}
zh_TW: 詳細文件在 Debian Policy, 章節 4.8中\\ {\small \url{https://www.debian.org/doc/debian-policy/ch-source\#s-debianrules}}

note: type: itemize
en: Required targets:
zh_TW: 必要的 targets:

note: type: itemize
en: \texttt{build, build-arch, build-indep}: should perform all the configuration and compilation
zh_TW: \texttt{build, build-arch, build-indep}: 必須執行所有設定並進行編譯

note: type: itemize
en: \texttt{binary, binary-arch, binary-indep}: build the binary packages
zh_TW: \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
zh_TW: \texttt{dpkg-buildpackage} 會呼叫 \texttt{binary} 構建所有套件, 或者呼叫 \texttt{binary-arch} 構建特定 \texttt{Architecture:~any} 套件

note: type: itemize
en: \texttt{clean}: clean up the source directory
zh_TW: \texttt{clean}: 清理原始碼目錄

note: type: subsection{#2}
en: Packaging helpers
zh_TW: 協助打包的幫手

note: type: frame{#2}
en: Packaging helpers -- debhelper
zh_TW: 協助打包的幫手 -- debhelper

note: type: itemize
en: You could write shell code in \texttt{debian/rules} directly
zh_TW: 可以直接在 \texttt{debian/rules} 中撰寫 shell code

note: type: itemize
en: Better practice (used by most packages): use a \textsl{Packaging helper}
zh_TW: 然而更好的作法 (被大部份套件所採用): 使用 \textsl{打包幫手}

note: type: itemize
en: Most popular one: \textbf{debhelper} (used by 98\% of packages)
zh_TW: 最常見的方法: \textbf{debhelper} (大約被 98\% 的套件所採用)

note: type: itemize
en: Goals:
zh_TW: 目標:

note: type: itemize
en: Factor the common tasks in standard tools used by all packages
zh_TW: 將常使用的任務拆解, 並轉化為標準工具, 最後適用於所有套件上

note: type: itemize
en: Fix some packaging bugs once for all packages
zh_TW: 當修正打包錯誤時, 可以適用於所有的套件

note: type: itemize
en: Called from \texttt{debian/rules}
zh_TW: 由 \texttt{debian/rules} 所呼叫

note: type: itemize
en: Configurable using command parameters or files in \texttt{debian/}
zh_TW: 透過 \texttt{debian/}中的指令參數或檔案來進行配置的動作

note: type: itemize
en: Third-party helpers for sets of packages: \textbf{python-support}, \textbf{dh\_ocaml}, \ldots
zh_TW: 有第三方小幫手可以協助打包套件: \textbf{python-support}, \textbf{dh\_ocaml}, \ldots

note: type: itemize
en: \texttt{debian/compat}: Debhelper compatibility version
zh_TW: \texttt{debian/compat}: Debhelper 相容性版本

note: type: itemize
en: Defines precise behaviour of dh\_*
zh_TW: 定義 dh\_* 明確行為

note: type: itemize
en: New syntax: \texttt{Build-Depends: debhelper-compat (= 13)}
zh_TW: 新語法: \texttt{Build-Depends: debhelper-compat (= 13)}

note: type: frame{#2}
en: debian/rules using debhelper (1/2)
zh_TW: debian/rules 使用 debhelper (1/2)

note: type: itemize
en: With debhelper, still a lot of redundancy between packages
zh_TW: 即使在套件裡使用 debhelper, 還是會有冗餘的事情要處理

note: type: itemize
en: Second-level helpers that factor common functionality
zh_TW: 第二層的小幫手能夠拆解共同的功能

note: type: itemize
en: E.g. building with \texttt{./configure \&\& make \&\& make install} or CMake
zh_TW: 舉例: 使用 \texttt{./configure \&\& make \&\& make install} 或者 CMake 進行建構

note: type: itemize
en: Introduced in 2005, based on advanced \textsl{GNU make} magic
zh_TW: 源自 2005, 基於 advanced \textsl{GNU make} magic

note: type: itemize
en: Documentation: \texttt{/usr/share/doc/cdbs/}
zh_TW: 文件: \texttt{/usr/share/doc/cdbs/}

note: type: itemize
en: Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \ldots
zh_TW: 可支援 Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \ldots

note: type: itemize
en: But some people hate it:
zh_TW: 但有些使用者不喜歡使用:

note: type: itemize
en: Sometimes difficult to customize package builds:\\ "\textsl{twisty maze of makefiles and environment variables}"
zh_TW: 有時難以產生客製化套件:\\ "\textsl{makefile以及環境參數相當複雜}"

note: type: itemize
en: Slower than plain debhelper (many useless calls to \texttt{dh\_*})
zh_TW: 比明文的 debhelper還慢 (會有許多不必要 \texttt{dh\_*}相關的呼叫)

note: type: frame{#2}
en: Dh (aka Debhelper 7, or dh7)
zh_TW: Dh (又名 Debhelper 7, 或者 dh7)

note: type: itemize
en: Introduced in 2008 as a \textsl{CDBS killer}
zh_TW: 源自2008年, 預期 \textsl{取代CDBS }

note: type: itemize
en: \textbf{dh} command that calls \texttt{dh\_*}
zh_TW: \textbf{dh} 指令呼叫 \texttt{dh\_*}

note: type: itemize
en: Simple \textsl{debian/rules}, listing only overrides
zh_TW: 簡易化 \textsl{debian/rules}, 只列出需覆蓋的地方

note: type: itemize
en: Easier to customize than CDBS
zh_TW: 比 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}
zh_TW: 文件: manpages (\texttt{debhelper(7)}, \texttt{dh(1)}) + DebConf9 的簡報投影片\\ \url{http://kitenet.net/~joey/talks/debhelper/debhelper-slides.pdf}

note: type: itemize
en: Mind shares:\\ Classic debhelper: 15\% \hskip 1em CDBS: 15\% \hskip 1em dh: 68\%
zh_TW: 心佔率:\\ Classic debhelper: 15\% \hskip 1em CDBS: 15\% \hskip 1em dh: 68\%

note: type: itemize
en: Which one should I learn?
zh_TW: 究竟該採用哪一種方法呢?

note: type: itemize
en: Probably a bit of all of them
zh_TW: 或許每一種都需要瞭解

note: type: itemize
en: You need to know debhelper to use dh and CDBS
zh_TW: 必須瞭解 debhelper 以使用 dh 以及 CDBS

note: type: itemize
en: You might have to modify CDBS packages
zh_TW: 你也許需要修改 CDBS 套件

note: type: itemize
en: Which one should I use for a new package?
zh_TW: 對於新套件, 該使用哪一種方法呢?

note: type: itemize
en: \textbf{dh} (only solution with an increasing mind share)
zh_TW: \textbf{dh} (只有它的心佔率是呈現上升)

note: type: itemize
en: See \url{https://trends.debian.net/\#build-systems}
zh_TW: 參考 \url{https://trends.debian.net/\#build-systems}

note: type: section{#2}
en: Building and testing packages
zh_TW: 構建並測試套件

note: type: frame{#2}
en: Building packages
zh_TW: 構建套件

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)
zh_TW: \textttc{apt-get build-dep mypackage}\\ 安裝 \textsl{build-dependencies} (適用於套件已在 Debian 中)\\ 或者 \textttc{mk-build-deps -ir} (適用於套件尚未上傳到 Debian 中)

note: type: itemize
en: \textttc{debuild}: build, test with \texttt{lintian}, sign with GPG
zh_TW: \textttc{debuild}: 透過 \texttt{lintian} 進行構建, 測試, 並使用 GPG 進行簽署

note: type: itemize
en: Also possible to call \textttc{dpkg-buildpackage} directly
zh_TW: 又或者可以直接呼叫 \textttc{dpkg-buildpackage}

note: type: itemize
en: Usually with \texttt{dpkg-buildpackage -us -uc}
zh_TW: 通常使用 \texttt{dpkg-buildpackage -us -uc}

note: type: itemize
en: It is better to build packages in a clean \& minimal environment
zh_TW: 在小型且乾淨環境中構建套件較為適合

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})
zh_TW: \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} )
zh_TW: \textttc{schroot} 和 \textttc{sbuild}: 被 Debian build daemons 所使用\\ (不若 \texttt{pbuilder} 簡單, 但能使用 LVM 快照功能\\ 參照: \url{https://help.ubuntu.com/community/SbuildLVMHowto} )

note: type: itemize
en: Generates \texttt{.deb} files and a \texttt{.changes} file
zh_TW: 產生 \texttt{.deb} 檔案以及 \texttt{.changes} 檔案

note: type: itemize
en: \texttt{.changes}: describes what was built; used to upload the package
zh_TW: \texttt{.changes}: 描述構建哪些東西; 用來上傳套件

note: type: frame{#2}
en: Installing and testing packages
zh_TW: 安裝以及測試套件

note: type: itemize
en: Install the package locally: \textttc{debi} (will use \texttt{.changes} to know what to install)
zh_TW: 本地安裝套件: \textttc{debi} (使用\texttt{.changes} 來得知需安裝哪些)

note: type: itemize
en: List the content of the package: \texttt{{\color{rouge}debc} ../mypackage<TAB>.changes}
zh_TW: 列出套件的內容: \texttt{{\color{rouge}debc} ../mypackage<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}\\
zh_TW: 和前一版的套件比較:\\ \texttt{{\color{rouge}debdiff} ../mypackage\_1\_*.changes ../mypackage\_2\_*.changes}\\ 或比較原始碼差異:\\ \texttt{{\color{rouge}debdiff} ../mypackage\_1\_*.dsc ../mypackage\_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
zh_TW: 透過 \texttt{lintian} (靜態分析工具): 來確認套件\\ \texttt{{\color{rouge}lintian} ../mypackage<TAB>.changes}\\ \texttt{lintian -i}: 提示更多錯誤訊息 \\ \texttt{lintian -EviIL +pedantic}: 顯示更多問題

note: type: itemize
en: Upload the package to Debian (\textttc{dput}) (needs configuration)
zh_TW: 上傳套件到 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}
zh_TW: 可透過 \textttc{reprepro}的指令管理私有Debian 檔案庫\\ 文件: \url{https://mirrorer.alioth.debian.org/}

note: type: frame{#2}
en: Practical session 1: modifying the grep package
zh_TW: 實際演練 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
zh_TW: 前往 \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}
zh_TW: 如果原始碼套件沒有自動解開, 請使用下列指令 \texttt{dpkg-source~-x~grep\_*.dsc}

note: type: enumerate
en: Look at the files in \texttt{debian/}.
zh_TW: 注意 \texttt{debian/}中的檔案.

note: type: itemize
en: How many binary packages are generated by this source package?
zh_TW: 原始碼套件產生多少二進制套件?

note: type: itemize
en: Which packaging helper does this package use?
zh_TW: 這個套件使用哪一種打包小幫手?

note: type: itemize
en: Build the package
zh_TW: 構建套件

note: type: enumerate
en: We are now going to modify the package. Add a changelog entry and increase the version number.
zh_TW: 先修改套件. 並在changelog中添加一個條目並且遞增版本號碼.

note: type: enumerate
en: Now disable perl-regexp support (it is a \texttt{./configure} option)
zh_TW: 接著將 perl-regexp 功能移除 (位於 \texttt{./configure} 中的選項)

note: type: enumerate
en: Rebuild the package
zh_TW: 重新構建套件

note: type: enumerate
en: Compare the original and the new package with debdiff
zh_TW: 使用 debdiff 來比較原始和新套件中差異

note: type: enumerate
en: Install the newly built package
zh_TW: 安裝新構建的套件

note: type: section{#2}
en: Advanced packaging topics
zh_TW: 進階打包主題

note: type: itemize
en: Copyright and license information for the source and the packaging
zh_TW: 原始碼以及打包的著作權和授權條款資訊

note: type: itemize
en: Traditionally written as a text file
zh_TW: 一般都是以 text 檔案格式編寫

note: type: itemize
en: New machine-readable format: {\small\url{https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/}}
zh_TW: 新的機器可讀格式 {\small\url{https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/}}

note: type: frame{#2}
en: Modifying the upstream source
zh_TW: 修改上游的原始碼

note: type: frame
en: Often needed:
zh_TW: 通常發生於:

note: type: itemize
en: Fix bugs or add customizations that are specific to Debian
zh_TW: 需要修正缺陷或者新增 Debian 客製化修改

note: type: itemize
en: Backport fixes from a newer upstream release
zh_TW: 從新的上游發行版中移值補丁回來

note: type: frame
en: Several methods to do it:
zh_TW: 列出可實行的方法:

note: type: itemize
en: Modifying the files directly
zh_TW: 直接修改檔案

note: type: itemize
en: Simple
zh_TW: 簡單

note: type: itemize
en: But no way to track and document the changes
zh_TW: 但是沒有修改歷程等相關文件可供追蹤

note: type: itemize
en: Using patch systems
zh_TW: 使用補丁系統

note: type: itemize
en: Eases contributing your changes to upstream
zh_TW: 讓修改更容易的回到上游

note: type: itemize
en: Helps sharing the fixes with derivatives
zh_TW: 能夠分享給相關衍生性版本

note: type: itemize
en: Gives more exposure to the changes\\ \url{http://patch-tracker.debian.org/} (down currently)
zh_TW: 讓修改更具有揭露性\\ \url{http://patch-tracker.debian.org/} (目前無法使用)

note: type: frame{#2}
en: Patch systems
zh_TW: 補丁系統

note: type: itemize
en: Principle: changes are stored as patches in \texttt{debian/patches/}
zh_TW: 原則: 修改需以補丁的型式存放在 \texttt{debian/patches/}

note: type: itemize
en: Applied and unapplied during build
zh_TW: 在構建時可選擇是否引入補丁

note: type: itemize
en: Past: several implementations -- \textsl{simple-patchsys} (\textsl{cdbs}), \textsl{dpatch}, \textbf{\textsl{quilt}}
zh_TW: 以往有數種實作方法 -- \textsl{simple-patchsys} (\textsl{cdbs}), \textsl{dpatch}, \textbf{\textsl{quilt}}

note: type: itemize
en: Each supports two \texttt{debian/rules} targets:
zh_TW: 每一個皆支援兩個 \texttt{debian/rules} targets:

note: type: itemize
en: \texttt{debian/rules patch}: apply all patches
zh_TW: \texttt{debian/rules patch}: 引入所有補丁

note: type: itemize
en: \texttt{debian/rules unpatch}: de-apply all patches
zh_TW: \texttt{debian/rules unpatch}: 卸載所有補丁

note: type: itemize
en: More documentation: \url{https://wiki.debian.org/debian/patches}
zh_TW: 更多文件可參照: \url{https://wiki.debian.org/debian/patches}

note: type: textbf{#1}
en: New source package format with built-in patch system: 3.0 (quilt)
zh_TW: 新的原始碼套件格式和內建補丁系統: 3.0 (quilt)

note: type: itemize
en: Recommended solution
zh_TW: 建議的解決方案

note: type: itemize
en: You need to learn \textsl{quilt}\\ \url{https://perl-team.pages.debian.net/howto/quilt.html}
zh_TW: 你需要學習 \textsl{quilt}\\ \url{https://perl-team.pages.debian.net/howto/quilt.html}

note: type: itemize
en: Patch-system-agnostic tool in \texttt{devscripts}: \texttt{edit-patch}
zh_TW: 補丁系統相容工具 \texttt{devscripts}: \texttt{edit-patch}

note: type: frame{#2}
en: Documentation of patches
zh_TW: 補丁的相關文件

note: type: itemize
en: Standard headers at the beginning of the patch
zh_TW: 補丁一開頭即為標準檔頭

note: type: itemize
en: Documented in DEP-3 - Patch Tagging Guidelines\\ \url{http://dep.debian.net/deps/dep3/}
zh_TW: DEP-3 文件 - Patch Tagging Guidelines\\ \url{http://dep.debian.net/deps/dep3/}

note: type: frame{#2}
en: Doing things during installation and removal
zh_TW: 安裝以及卸載的相關動作

note: type: itemize
en: Decompressing the package is sometimes not enough
zh_TW: 只解壓縮套件, 有時會略感不足

note: type: itemize
en: Create/remove system users, start/stop services, manage \textsl{alternatives}
zh_TW: 新增/ 刪除系統使用者, 啟動/停止服務, 控制 \textsl{alternatives}

note: type: itemize
en: Done in \textsl{maintainer scripts}\\ \texttt{preinst, postinst, prerm, postrm}
zh_TW: 在  \textsl{maintainer scripts}完成\\ \texttt{preinst, postinst, prerm, postrm}

note: type: itemize
en: Snippets for common actions can be generated by debhelper
zh_TW: 有些共同的動作可以被 debhelper 所生成

note: type: itemize
en: Documentation:
zh_TW: 文件:

note: type: itemize
en: Debian Policy Manual, chapter 6\\ {\footnotesize \url{https://www.debian.org/doc/debian-policy/ch-maintainerscripts}}
zh_TW: 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}}
zh_TW: Debian 開發者參考, 第6.4章\\ {\scriptsize \url{https://www.debian.org/doc/developers-reference/best-pkging-practices.html}}

note: type: itemize
en: Prompting the user
zh_TW: 提示使用者

note: type: itemize
en: Must be done with \textbf{debconf}
zh_TW: 務必使用 \textbf{debconf}

note: type: itemize
en: Documentation: \texttt{debconf-devel(7)} (\texttt{debconf-doc} package)
zh_TW: 文件: \texttt{debconf-devel(7)} (\texttt{debconf-doc} 套件)

note: type: frame{#2}
en: Monitoring upstream versions
zh_TW: 監看上游版本

note: type: itemize
en: Specify where to look in \texttt{debian/watch} (see \texttt{uscan(1)})
zh_TW: 在 \texttt{debian/watch} 中指定要監看的位址 (參考 \texttt{uscan(1)})

note: type: itemize
en: There are automated trackers of new upstream versions, that notify the maintainer on various dashboards including \url{https://tracker.debian.org/} and \url{https://udd.debian.org/dmd/}
zh_TW: 有一些可自動追蹤上游版本的系統, 會透過 dashboards 的方式來通知維護者. 例: \url{https://tracker.debian.org/} 以及 \url{https://udd.debian.org/dmd/}

note: type: itemize
en: \texttt{uscan}: run a manual check
zh_TW: \texttt{uscan}: 執行手動確認

note: type: itemize
en: \texttt{uupdate}: try to update your package to the latest upstream version
zh_TW: \texttt{uupdate}: 讓你的套件更新到最新的上游版本

note: type: subsection{#2}
en: Packaging with a Version Control System (SVN, Git)
zh_TW: 使用版本控制系統來進行打包 (SVN, Git)

note: type: frame{#2}
en: Packaging with a Version Control System
zh_TW: 使用版本控制系統來進行打包

note: type: itemize
en: Several tools to help manage branches and tags for your packaging work:\\ \texttt{svn-buildpackage}, \texttt{git-buildpackage}
zh_TW: 有數種工具可以來協助管理 branches and tags 以進行打包的動作:\\ \texttt{svn-buildpackage}, \texttt{git-buildpackage}

note: type: itemize
en: Example: \texttt{git-buildpackage}
zh_TW: 範例: \texttt{git-buildpackage}

note: type: itemize
en: \texttt{upstream} branch to track upstream with \texttt{upstream/\textsl{version}} tags
zh_TW: \texttt{upstream} 分支使用 \texttt{upstream/\textsl{version}} 標籤來追蹤上游

note: type: itemize
en: \texttt{master} branch tracks the Debian package
zh_TW: \texttt{master} 分支追蹤 Debian 套件

note: type: itemize
en: \texttt{debian/\textsl{version}} tags for each upload
zh_TW: \texttt{debian/\textsl{version}} 會對每個上傳進行標籤

note: type: itemize
en: \texttt{pristine-tar} branch to be able to rebuild the upstream tarball
zh_TW: \texttt{pristine-tar} 分支能夠重新構建上游壓縮檔

note: type: itemize
en: Doc: \url{http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html}
zh_TW: 文件: \url{http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html}

note: type: itemize
en: \texttt{Vcs-*} fields in \texttt{debian/control} to locate the repository
zh_TW: \texttt{Vcs-*} 在 \texttt{debian/control} 的欄位能夠定位目錄

note: type: itemize
en: VCS-agnostic interface: \texttt{debcheckout}, \texttt{debcommit}, \texttt{debrelease}\\
zh_TW: VCS 相容介面: \texttt{debcheckout}, \texttt{debcommit}, \texttt{debrelease}\\

note: type: itemize
en: \texttt{debcheckout grep} $\rightarrow$ checks out the source package from Git
zh_TW: \texttt{debcheckout grep} $\rightarrow$ 從Git checks out 原始碼套件出來

note: type: frame{#2}
en: Backporting packages
zh_TW: 向前移值套件

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}
zh_TW: 目標: 在舊有系統上使用較新的套件版本\\ 例: 使用 \textsl{mutt} from Debian \textsl{unstable} on Debian \textsl{stable}

note: type: itemize
en: General idea:
zh_TW: 一般來說:

note: type: itemize
en: Take the source package from Debian unstable
zh_TW: 從 Debian unstable 抓原始碼套件

note: type: itemize
en: Modify it so that it builds and works fine on Debian stable
zh_TW: 透過修改讓套件可以構建且正常運行在 Debian stable 上

note: type: itemize
en: Sometimes trivial (no changes needed)
zh_TW: 有時簡單 (不需任何修改)

note: type: itemize
en: Sometimes difficult
zh_TW: 有時困難

note: type: itemize
en: Sometimes impossible (many unavailable dependencies)
zh_TW: 有時不可行 (有太多無法解決的相依性問題)

note: type: itemize
en: Some backports are provided and supported by the Debian project\\ \url{http://backports.debian.org/}
zh_TW: Debian project 提供部份向前相容的套件\\ \url{http://backports.debian.org/}

note: type: section{#2}
en: Maintaining packages in Debian
zh_TW: 維護 Debian 套件

note: type: frame{#2}
en: Debian archive and suites
zh_TW: Debian 檔案庫和 suites

note: type: flushright
en: \tiny Based on graph by Antoine Beaupr\'e. \url{https://salsa.debian.org/debian/package-cycle}~~~~~~~~~~~~
zh_TW: \tiny 基於 Antoine Beaupr\'e 的圖片 \url{https://salsa.debian.org/debian/package-cycle}~~~~~~~~~~~~

note: type: frame{#2}
en: Suites for development
zh_TW: 開發用的 Suites

note: type: itemize
en: New versions of packages are uploaded to \textbf{unstable} (\textbf{sid})
zh_TW: 每個套件之新版本會被上傳至 \textbf{unstable} (\textbf{sid})

note: type: itemize
en: Packages migrate from \textbf{unstable} to \textbf{testing} based on several criterias (e.g. has been in unstable for 10 days, and no regressions)
zh_TW: 套件會基於幾項準則從 \textbf{unstable} 移至 \textbf{testing} (例如，在unstable 已經有 10 天而且沒有發生 regressions)

note: type: itemize
en: New packages can also be uploaded to:
zh_TW: 新套件也可被上傳至:

note: type: itemize
en: \textbf{experimental} (for more \textsl{experimental} packages, such as when the new version is not ready to replace the one currently in unstable)
zh_TW: \textbf{experimental} (給 \textsl{experimental} 套件所使用, 像是當新版本還沒準備要取代在 unstable 的版本時)

note: type: itemize
en: \textbf{testing-proposed-updates}, to update the version in \textbf{testing} without going through \textbf{unstable} (this is rarely used)
zh_TW: \textbf{testing-proposed-updates}, 更新 \textbf{testing} 的版本而不透過 \textbf{unstable} (這很少被使用)

note: type: frame{#2}
en: Freezing and releasing
zh_TW: 凍結和發行

note: type: itemize
en: At some point during the release cycle, the release team decides to \textsl{freeze} testing: automatic migrations from \textbf{unstable} to \textbf{testing} are stopped, and replaced by manual review
zh_TW: 在發行週期的某些時刻, 發行團隊會決定進行 \textsl{freeze} 測試: 停止從 "\textbf{unstable} 到 \textbf{testing} 的自動移轉, 並且改用人工審核

note: type: itemize
en: When the release team considers \textbf{testing} to be ready for release:
zh_TW: 當發行團隊認為 \textbf{testing} 已經準備發行時:

note: type: itemize
en: The \textbf{testing} suite becomes the new \textbf{stable} suite
zh_TW: \textbf{testing} suite 會變成新的 \textbf{stable} suite

note: type: itemize
en: Similarly, the old \textbf{stable} becomes \textbf{oldstable}
zh_TW: 同樣地, 舊的 \textbf{stable} 會變成 \textbf{oldstable}

note: type: itemize
en: Unsupported releases are moved to \texttt{archive.debian.org}
zh_TW: 不支援的發行則會被移到 \texttt{archive.debian.org}

note: type: itemize
en: See \url{https://release.debian.org/}
zh_TW: 參考 \url{https://release.debian.org/}

note: type: itemize
en: Several suites are used to provide stable release packages:
zh_TW: 許多 suites 是用來提供穩定發行的套件:

note: type: itemize
en: \textbf{stable}: the main suite
zh_TW: \textbf{stable}: 主要的 suite

note: type: itemize
en: \textbf{security} updates suite provided on \texttt{security.debian.org}, used by the security team. Updates are announced on the \texttt{debian-security-announce} mailing list
zh_TW: \textbf{security} 更新為 \texttt{security.debian.org} 所提供的 suite, 並被安全團隊所使用, 更新消息會公佈在 \texttt{debian-security-announce} mailing list

note: type: itemize
en: \textbf{stable-updates}: updates that are not security related, but that should urgently be installed (without waiting for the next point release): antivirus databases, timezone-related packages, etc. Announced on the \texttt{debian-stable-announce} mailing list
zh_TW: \textbf{stable-updates}: 跟安全無關, 但是需要被緊急安裝的更新(不需等待下次的小版本更新): 如防毒的資料庫, 時區相關套件等等, 會公佈在 \texttt{debian-stable-announce} mailing list

note: type: itemize
en: \textbf{backports}: new upstream versions, based on the version in \textbf{testing}
zh_TW: \textbf{backports}: 新的上游版本, 會基於在 \textbf{testing} 的版本

note: type: itemize
en: The \textbf{stable} suite is updated every few months by \textsl{stable point releases} (that include only bug fixes)
zh_TW: \textbf{stable} suite 每幾個月會有 \textsl{穩定小版本更新} (只有包含 bug 修復)

note: type: itemize
en: Packages targetting the next stable point release are uploaded to \textbf{stable-proposed-updates} and reviewed by the release team
zh_TW: 目標是下次穩定小版本更新的套件會被上傳到 \textbf{stable-proposed-updates} 並被發行團隊審核

note: type: itemize
en: The \textbf{oldstable} release has the same set of suites
zh_TW: \textbf{oldstable} 的發行也擁有相同的 suites 組合

note: type: frame{#2}
en: Several ways to contribute to Debian
zh_TW: 一些為 Debian 貢獻的方法

note: type: itemize
en: \textbf{Worst} way to contribute:
zh_TW: \textbf{不建議} 提供貢獻的方法:

note: type: enumerate
en: Package your own application
zh_TW: 打包自有應用程式

note: type: enumerate
en: Get it into Debian
zh_TW: 放進 Debian

note: type: enumerate
en: Disappear
zh_TW: 消失

note: type: itemize
en: \textbf{Better} ways to contribute:
zh_TW: \textbf{較建議} 提供貢獻的方法:

note: type: itemize
en: Get involved in packaging teams
zh_TW: 實際參與打包群組

note: type: itemize
en: Many teams that focus on set of packages, and need help
zh_TW: 許多群組專注於特定套件, 且皆需要協助

note: type: itemize
en: List available at \url{https://wiki.debian.org/Teams}
zh_TW: 列出可用群組 \url{https://wiki.debian.org/Teams}

note: type: itemize
en: An excellent way to learn from more experienced contributors
zh_TW: 從更有經驗的貢獻者身上學習

note: type: itemize
en: Adopt existing unmaintained packages (\textsl{orphaned packages})
zh_TW: 認養現有但無人維護之套件 (\textsl{orphaned packages})

note: type: itemize
en: Bring new software to Debian
zh_TW: 將新的軟體帶進 Debian

note: type: itemize
en: Only if it's interesting/useful enough, please
zh_TW: 必須是有用或者有趣的

note: type: itemize
en: Are there alternatives already packaged in Debian?
zh_TW: Debian 原有套件是否就可以滿足需求?

note: type: frame{#2}
en: Adopting orphaned packages
zh_TW: 認養無人維護的套件

note: type: itemize
en: Many unmaintained packages in Debian
zh_TW: Debian 有許多尚待維護的套件

note: type: itemize
en: Full list + process: \url{https://www.debian.org/devel/wnpp/}
zh_TW: 完整清單以及流程: \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}
zh_TW: 將 \texttt{wnpp-alert} 安裝到機器上,並可更進一步的安裝 \texttt{how-can-i-help}

note: type: itemize
en: Different states:
zh_TW: 不同的狀態:

note: type: itemize
en: \textbf{O}rphaned: the package is unmaintained\\ Feel free to adopt it
zh_TW: \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
zh_TW: \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!
zh_TW: \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
zh_TW: \textbf{RFH}: \textbf{R}equest \textbf{F}or \textbf{H}elp\\ 維護者尋求協助中

note: type: itemize
en: Some unmaintained packages not detected \arr not orphaned yet
zh_TW: 有些無人維護的套件沒有被偵測到\arr 不是被遺棄的套件

note: type: itemize
en: When in doubt, ask \texttt{debian-qa@lists.debian.org} \\ or \texttt{\#debian-qa} on \texttt{irc.debian.org}
zh_TW: 若有任何疑問, 請到 \texttt{debian-qa@lists.debian.org} 提出 \\ 或者前往 \texttt{irc.debian.org}裡的頻道 \texttt{\#debian-qa}詢問

note: type: frame{#2}
en: Adopting a package: example
zh_TW: 認領套件: 範例

note: type: itemize
en: Polite to contact the previous maintainer (especially if the package was RFAed, not orphaned)
zh_TW: 有禮貌的連絡上一任維護者 (尤其套件狀態為 RFA 而不是 orphaned)

note: type: itemize
en: Very good idea to contact the upstream project
zh_TW: 適時的和上游專案有所連繫

note: type: frame{#2}
en: Getting your package in Debian
zh_TW: 將你的套件放入 Debian

note: type: itemize
en: You do not need any official status to get your package into Debian
zh_TW: 不需要具備任何官方身份就可以將你的套件放進 Debian

note: type: enumerate
en: Submit an \textbf{ITP} bug (\textbf{I}ntent \textbf{T}o \textbf{P}ackage) using \texttt{reportbug wnpp}
zh_TW: 使用 \texttt{reportbug wnpp} 送出 \textbf{ITP} bug (\textbf{I}ntent \textbf{T}o \textbf{P}ackage)

note: type: enumerate
en: Prepare a source package
zh_TW: 準備好原始碼套件

note: type: enumerate
en: Find a Debian Developer that will sponsor your package
zh_TW: 找一位 Debian Developer 來協助確認你的套件

note: type: itemize
en: Official status (when you are an experienced package maintainer):
zh_TW: 官方身份 (當你具備許多打包維護的經驗):

note: type: itemize
en: \textbf{Debian Maintainer (DM):}\\ Permission to upload your own packages\\ See \url{https://wiki.debian.org/DebianMaintainer}
zh_TW: \textbf{Debian Maintainer (DM):}\\ 允許上傳你自己的套件\\ 參照 \url{https://wiki.debian.org/DebianMaintainer}

note: type: itemize
en: \textbf{Debian Developer (DD):}\\ Debian project member; can vote and upload any package
zh_TW: \textbf{Debian Developer (DD):}\\ Debian project member; 能夠投票且上傳任何套件

note: type: frame{#2}
en: Things to check before asking for sponsorship
zh_TW: 發出協助需求前需確認事項

note: type: itemize
en: Debian puts \textbf{a lot of focus on quality}
zh_TW: Debian \textbf{非常重視品質}

note: type: itemize
en: Generally, \textbf{sponsors are hard to find and busy}
zh_TW: 一般而言, \textbf{協助人員很忙又很難找}

note: type: itemize
en: Make sure your package is ready before asking for sponsorship
zh_TW: 請再三確認你的套件已經很完整, 再提出協助確認需求

note: type: itemize
en: Things to check:
zh_TW: 需要確認之事項:

note: type: itemize
en: Avoid missing build-dependencies: make sure that your package build fine in a clean \textsl{sid} \textsl{chroot}
zh_TW: 避免忘了加入構建相依性: 確認你的套件可以在乾淨的 \textsl{sid} \textsl{chroot} 中正常構建

note: type: itemize
en: Using \texttt{pbuilder} is recommended
zh_TW: 建議使用\texttt{pbuilder}

note: type: itemize
en: Run \texttt{lintian -EviIL +pedantic} on your package
zh_TW: 在你的套件上執行 \texttt{lintian -EviIL +pedantic}

note: type: itemize
en: Errors must be fixed, all other problems should be fixed
zh_TW: 若出現Errors 則必須被修復, 其他問題也需一併修復

note: type: itemize
en: Do extensive testing of your package, of course
zh_TW: 請在你的套件上進行大規模的測試驗證

note: type: itemize
en: In doubt, ask for help
zh_TW: 若有疑問, 請提出問題以尋求協助

note: type: frame{#2}
en: Where to find help?
zh_TW: 去哪邊尋求協助?

note: type: frame
en: Help you will need:
zh_TW: 可針對下列事項進行協助:

note: type: itemize
en: Advice and answers to your questions, code reviews
zh_TW: 對於提出的問題, 給予建議或答案, 以及程式碼審查

note: type: itemize
en: Sponsorship for your uploads, once your package is ready
zh_TW: 協助確認並且上傳你已經準備好的套件

note: type: frame
en: You can get help from:
zh_TW: 你可以從下列得到協助:

note: type: textbf{#1}
en: Other members of a packaging team
zh_TW: 其他打包部門的成員

note: type: itemize
en: List of teams: \url{https://wiki.debian.org/Teams}
zh_TW: 部門列表: \url{https://wiki.debian.org/Teams}

note: type: itemize
en: The \textbf{Debian Mentors group} (if your package does not fit in a team)
zh_TW: The \textbf{Debian Mentors group} (如果你的套件找不到相對應的部門)

note: type: itemize
en: Mailing list: \url{debian-mentors@lists.debian.org}\\ {\small (also a good way to learn by accident)}
zh_TW: Mailing list: \url{debian-mentors@lists.debian.org}\\ {\small (有時可以學到不錯的東西)}

note: type: itemize
en: Documentation: \url{http://mentors.debian.net/intro-maintainers}
zh_TW: 文件: \url{http://mentors.debian.net/intro-maintainers}

note: type: itemize
en: \textbf{Localized mailing lists} (get help in your language)
zh_TW: \textbf{當地 mailing lists} (根據你的語言來尋求協助)

note: type: itemize
en: Full list: \url{https://lists.debian.org/devel.html}
zh_TW: 完整清單: \url{https://lists.debian.org/devel.html}

note: type: itemize
en: Or users lists: \url{https://lists.debian.org/users.html}
zh_TW: 或者使用者清單: \url{https://lists.debian.org/users.html}

note: type: frame{#2}
en: More documentation
zh_TW: 更多文件

note: type: itemize
en: Debian Developers' Corner\\ \url{https://www.debian.org/devel/}\\ {\small Links to many resources about Debian development}
zh_TW: Debian Developers' Corner\\ \url{https://www.debian.org/devel/}\\ {\small 有許多開發 Debian 相關的資源連結}

note: type: itemize
en: Guide for Debian Maintainers\\ \url{https://www.debian.org/doc/manuals/debmake-doc/}
zh_TW: Debian 維護者指南\\ \url{https://www.debian.org/doc/manuals/debmake-doc/}

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)}
zh_TW: Debian Developer's Reference\\ \url{https://www.debian.org/doc/developers-reference/}\\ {\small 比較多關於 Debian 的常規, 但也含有一些很棒的實際範例 (part 6)}

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}}
zh_TW: {\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/}
zh_TW: Ubuntu 打包指南\\ \url{https://packaging.ubuntu.com/html/}

note: type: frame{#2}
en: Debian dashboards for maintainers
zh_TW: Debian 給維護者的dashboards

note: type: itemize
en: \textbf{Source package centric}:\\ \url{https://tracker.debian.org/dpkg}
zh_TW: \textbf{原始碼套件中心}: 套件追蹤系統 Package Tracking System (PTS)\\ \url{https://packages.qa.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}
zh_TW: \textbf{維護者/ 小組中心}: 開發者套件概述 Developer's Packages Overview (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/}
zh_TW: \textbf{待作清單列表}: Debian Maintainer Dashboard (DMD)\\ \url{https://udd.debian.org/dmd.cgi}

note: type: frame{#2}
en: Using the Debian Bug Tracking System (BTS)
zh_TW: 使用 Debian Bug 追蹤系統 (BTS)

note: type: itemize
en: A quite unique way to manage bugs
zh_TW: 使用特有的方法來管控缺陷

note: type: itemize
en: Web interface to view bugs
zh_TW: 使用 Web 的介面來查看缺陷

note: type: itemize
en: Email interface to make changes to bugs
zh_TW: 使用 Email 的介面來處理缺陷

note: type: itemize
en: Adding information to bugs:
zh_TW: 加入缺陷的資訊:

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})
zh_TW: 寫電子郵件到 \texttt{123456@bugs.debian.org} (若要包含submitter, 你需要加入 \texttt{123456-submitter@bugs.debian.org})

note: type: itemize
en: Changing bug status:
zh_TW: 更改缺陷狀態:

note: type: itemize
en: Send commands to \texttt{control@bugs.debian.org}
zh_TW: 送出指令到 \texttt{control@bugs.debian.org}

note: type: itemize
en: Command-line interface: \texttt{bts} command in \texttt{devscripts}
zh_TW: 指令列的介面: 在 \texttt{devscripts}中的指令 \texttt{bts}

note: type: itemize
en: Documentation: \url{https://www.debian.org/Bugs/server-control}
zh_TW: 文件: \url{https://www.debian.org/Bugs/server-control}

note: type: itemize
en: Reporting bugs: use \texttt{reportbug}
zh_TW: 回報缺陷: 使用 \texttt{reportbug}

note: type: itemize
en: Normally used with a local mail server: install \texttt{ssmtp} or \texttt{nullmailer}
zh_TW: 通常使用本地郵件服務器: 可透過 \texttt{ssmtp} 或者 \texttt{nullmailer} 安裝

note: type: itemize
en: Or use \texttt{reportbug -\@-template}, then send (manually) to \texttt{submit@bugs.debian.org}
zh_TW: 或者使用 \texttt{reportbug -\@-template}, 然後手動送出至 \texttt{submit@bugs.debian.org}

note: type: frame{#2}
en: Using the BTS: examples
zh_TW: 使用 Debian Bug 追蹤系統 (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}
zh_TW: 針對缺陷送出電子郵件給 submitter:\\ \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}
zh_TW: 標記並且修改嚴重程度:\\ \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}
zh_TW: 重新指定, 修改嚴重程度, 修改主旨 \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}
zh_TW: \texttt{notfound}, \texttt{found}, \texttt{notfixed}, \texttt{fixed} 是給 \textbf{版本追蹤}來使用\\ 參照 \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}
zh_TW: 使用使用者標籤: \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:
zh_TW: Debian Bug 追蹤系統 (BTS) 文件:

note: type: itemize
en: Ubuntu mainly manages the divergence with Debian
zh_TW: Ubuntu 主要管控和 Debian 的差異

note: type: itemize
en: No real focus on specific packages\\ Instead, collaboration with Debian teams
zh_TW: 不針對於特定套件,\\ 而是和 Debian team 協同合作

note: type: itemize
en: Usually recommend uploading new packages to Debian first\\ \url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}
zh_TW: 一般來說會建議新套件要先上傳到 Debian\\ \url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}

note: type: itemize
en: Possibly a better plan:
zh_TW: 但有更好的方法:

note: type: itemize
en: Get involved in a Debian team and act as a bridge with Ubuntu
zh_TW: 參與 Debian team並且和 Ubuntu 建立溝通橋樑

note: type: itemize
en: Help reduce divergence, triage bugs in Launchpad
zh_TW: 協助減少差異並在Launchpad進行缺陷診斷

note: type: itemize
en: Many Debian tools can help:
zh_TW: 許多 Debian 工具能提供協助:

note: type: itemize
en: Ubuntu column on the Developer's packages overview
zh_TW: Developer 的套件大綱中有 ubuntu 欄位

note: type: itemize
en: Ubuntu box on the Package Tracking System
zh_TW: Ubuntu box on the 套件追蹤系統

note: type: itemize
en: Receive launchpad bugmail via the PTS
zh_TW: 透過 PTS 收 launchpad bugmail

note: type: frame{#2}
en: Conclusions
zh_TW: 結論

note: type: itemize
en: You now have a full overview of Debian packaging
zh_TW: 現在你對 Debian 打包已經有一個完整的概觀

note: type: itemize
en: But you will need to read more documentation
zh_TW: 但你需要閱讀更多的文件

note: type: itemize
en: Best practices have evolved over the years
zh_TW: 典範實務是經年累月而成的

note: type: itemize
en: If not sure, use the \textbf{dh} packaging helper, and the \textbf{3.0 (quilt)} format
zh_TW: 如果不太確定, 使用 \textbf{dh} 套件小幫手, 以及 \textbf{3.0 (quilt)} 格式

note: type: centerline{#1}
en: \large Feedback: \textbf{packaging-tutorial@packages.debian.org}
zh_TW: \large 回饋: \textbf{packaging-tutorial@packages.debian.org}

note: type: frame{#2}
en: Legal stuff
zh_TW: 法律相關

note: type: frame{#2}
en: Contribute to this tutorial
zh_TW: 對此教學指南做出貢獻

note: type: itemize
en: Contribute:
zh_TW: 貢獻:

note: type: itemize
en: {\small Open bugs: \url{bugs.debian.org/src:packaging-tutorial}}
zh_TW: {\small 回報缺陷: \url{bugs.debian.org/src:packaging-tutorial}}

note: type: itemize
en: Provide feedback:
zh_TW: 提供回饋:

note: type: itemize
en: {\small What should be added to this tutorial?}
zh_TW: {\small 有哪些必須加入此教學指南?}

note: type: itemize
en: {\small What should be improved?}
zh_TW: {\small 有哪些部份可以再優化?}

note: type: section{#2}
en: Additional practical sessions
zh_TW: 深入淺出實際演練

note: type: frame{#2}
en: Practical session 2: packaging GNUjump
zh_TW: 實際演練 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}
zh_TW: 從 \url{http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz} 下載 GNUjump 1.0.8

note: type: enumerate
en: Create a Debian package for it
zh_TW: 建立一個 Debian 套件

note: type: itemize
en: Install build-dependencies so that you can build the package
zh_TW: 安裝 build-dependencies 以進行構建套件之先行必要動作

note: type: itemize
en: Fix bugs
zh_TW: 修正問題

note: type: itemize
en: Get a basic working package
zh_TW: 產生一個基本可運作的套件

note: type: itemize
en: Finish filling \texttt{debian/control} and other files
zh_TW: 完成填入 \texttt{debian/control} 以及其他檔案

note: type: enumerate
en: Enjoy
zh_TW: 享受吧

note: type: frame{#2}
en: Practical session 2: packaging GNUjump (tips)
zh_TW: 實際演練 2: 打包 GNUjump (小訣竅)

note: type: itemize
en: To get a basic working package, use \texttt{dh\_make}
zh_TW: 創建一個基本的套件: \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})
zh_TW: 一開始先創建一個  \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
zh_TW: 先搜尋構建所需要的相依檔案,找到檔案後,使用\texttt{apt-file}來找到套件

note: type: itemize
en: If you encounter that error:
zh_TW: 如果你遇到錯誤:

note: type: itemize
en: You need to add \texttt{-lm} to the linker command line:\\ Edit \texttt{src/Makefile.am} and replace
zh_TW: 代表你需要加入\texttt{-lm} 到linker指令列:\\ 編輯 \texttt{src/Makefile.am}並且替換

note: type: itemize
en: by
zh_TW: 成下列

note: type: itemize
en: Then run \texttt{autoreconf -i}
zh_TW: 接著執行 \texttt{autoreconf -i}

note: type: frame{#2}
en: Practical session 3: packaging a Java library
zh_TW: 實際演練 3: 打包 Java library

note: type: enumerate
en: Take a quick look at some documentation about Java packaging:\\
zh_TW: 先看一下如何打包 Java 相關文件:\\

note: type: enumerate
en: Download IRClib from \url{http://moepii.sourceforge.net/}
zh_TW: 從 \url{http://moepii.sourceforge.net/} 下載 IRClib

note: type: enumerate
en: Package it
zh_TW: 開始打包

note: type: frame{#2}
en: Practical session 4: packaging a Ruby gem
zh_TW: 實際演練 4: 打包  Ruby gem

note: type: enumerate
en: Take a quick look at some documentation about Ruby packaging:\\
zh_TW: 先看一下如何打包 Ruby 相關文件:\\

note: type: itemize
en: \texttt{gem2deb(1)}, \texttt{dh\_ruby(1)} (in the \texttt{gem2deb} package)
zh_TW: \texttt{gem2deb(1)}, \texttt{dh\_ruby(1)} (\texttt{gem2deb} 套件)

note: type: enumerate
en: Create a basic Debian source package from the \texttt{peach} gem:\\ \texttt{gem2deb peach}
zh_TW: 從 \texttt{peach} gem:\\ \texttt{gem2deb peach} 建立基本的 Debian 原始碼套件

note: type: enumerate
en: Improve it so that it becomes a proper Debian package
zh_TW: 適時的優化, 讓它成為一個合適的 Debian 套件

note: type: frame{#2}
en: Practical session 5: packaging a Perl module
zh_TW: 實際演練 5: 打包  Perl 模組

note: type: enumerate
en: Take a quick look at some documentation about Perl packaging:\\
zh_TW: 先看一下如何打包 Perl 相關文件:\\

note: type: enumerate
en: Create a basic Debian source package from the \texttt{Acme} CPAN distribution:\\ \verb|dh-make-perl --cpan Acme|
zh_TW: 從 \texttt{Acme} CPAN 發行版:\\ \verb|dh-make-perl --cpan Acme| 建立基本的 Debian 原始碼套件

note: type: section{#2}
en: Answers to practical sessions
zh_TW: 深入淺出實際演練

note: type: center
en: \LARGE Answers to
zh_TW: \LARGE 深入淺出

note: type: center
en: [0.5em] practical sessions
zh_TW: [0.5em] 實際演練

note: type: frame{#2}
en: Fetching the source
zh_TW: 把原始碼抓下來

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}}
zh_TW: 使用 dget 下載 \texttt{.dsc} 檔案:\\ {\small \texttt{dget https://cdn.debian.net/debian/pool/main/g/grep/grep\_2.12-2.dsc}}

note: type: itemize
en: If you have \texttt{deb-src} for a Debian release that has \texttt{grep} version 2.12-2 (find out on \url{https://tracker.debian.org/grep}), you can use: \texttt{apt-get source grep=2.12-2}\\ or \texttt{apt-get source grep/release} (e.g. \texttt{grep/stable})\\ or, if you feel lucky: \texttt{apt-get source grep}
zh_TW: 如果你在Debian發行版上有\texttt{deb-src}有\texttt{grep}版本2.12-2(可查看\url{https://tracker.debian.org/grep}),你可以使用\texttt{apt-get source grep=2.12-2}\\或者\texttt{apt-get source grep/release} (例 \texttt{grep/stable}\\又或者你可直接使用\texttt{apt-get source grep}

note: type: itemize
en: The \texttt{grep} source package is composed of three files:
zh_TW: \texttt{grep} 原始碼套件主要有 3 個檔案所組成:

note: type: itemize
en: \texttt{grep\_2.12.orig.tar.bz2}
zh_TW: \texttt{grep\_2.12-2.orig.tar.bz2}

note: type: itemize
en: This is typical of the "3.0 (quilt)" format.
zh_TW: 這些代表 "3.0 (quilt)"格式.

note: type: itemize
en: If needed, uncompress the source with\\ \texttt{dpkg-source -x grep\_2.12-2.dsc}
zh_TW: 若有需求, 解壓縮這些原始碼\\ \texttt{dpkg-source -x grep\_2.12-2.dsc}

note: type: frame{#2}
en: Looking around and building the package
zh_TW: 瞧瞧並且構建套件包

note: type: enumerate
en: Look at the files in \texttt{debian/}
zh_TW: 注意 \texttt{debian/}中的檔案

note: type: itemize
en: According to \texttt{debian/control}, this package only generates one binary package, named \texttt{grep}.
zh_TW: 根據 \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}.
zh_TW: 根據\texttt{debian/rules}內容所述, 此套件是採用 \textsl{classic} debhelper 來進行打包, 而不是使用 \textsl{CDBS} 或者 \textsl{dh}. 可以看到它在 \texttt{debian/rules}呼叫許多\texttt{dh\_*} 指令.

note: type: itemize
en: Use \texttt{apt-get build-dep grep} to fetch the build-dependencies
zh_TW: 使用 \texttt{apt-get build-dep grep} 來取得構建相依性

note: type: itemize
en: Then \texttt{debuild} or \texttt{dpkg-buildpackage -us -uc} (Takes about 1 min)
zh_TW: 然後使用 \texttt{debuild} 或者 \texttt{dpkg-buildpackage -us -uc} (大約需要一分鐘)

note: type: frame{#2}
en: Editing the changelog
zh_TW: 編輯修改歷程

note: type: itemize
en: \texttt{debian/changelog} is a text file. You could edit it and add a new entry manually.
zh_TW: \texttt{debian/changelog} 是一個文字檔. 你可以手動編輯或者創建一條歷程記錄.

note: type: itemize
en: Or you can use \texttt{dch -i}, which will add an entry and open the editor
zh_TW: 或者你可以使用\texttt{dch -i}, 使用編輯器創建一條歷程記錄

note: type: itemize
en: The name and email can be defined using the \texttt{DEBFULLNAME} and \texttt{DEBEMAIL} environment variables
zh_TW: 名字以及電子郵件的相關設定可透過\texttt{DEBFULLNAME} and \texttt{DEBEMAIL}環境變數來進行配置

note: type: itemize
en: After that, rebuild the package: a new version of the package is built
zh_TW: 接著重新構建套件: 產生一個新版本套件

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}
zh_TW: 套件版本規則被定義在Debian policy 章節 5.6.12\\ \url{https://www.debian.org/doc/debian-policy/ch-controlfields}

note: type: frame{#2}
en: Disabling Perl regexp support and rebuilding
zh_TW: 移除 Perl 中的正規表示法支援然後重新構建

note: type: itemize
en: Check with \texttt{./configure -{}-help}: the option to disable Perl regexp is \texttt{-{}-disable-perl-regexp}
zh_TW: 確認 \texttt{./configure -{}-help}: 移除 Perl 正規表示法的選項為\texttt{-{}-disable-perl-regexp}

note: type: itemize
en: Edit \texttt{debian/rules} and find the \texttt{./configure} line
zh_TW: 編輯\texttt{debian/rules} 然後找到\texttt{./configure}這一行

note: type: itemize
en: Add \texttt{-{}-disable-perl-regexp}
zh_TW: 添加 \texttt{-{}-disable-perl-regexp}

note: type: itemize
en: Rebuild with \texttt{debuild} or \texttt{dpkg-buildpackage -us -uc}
zh_TW: 使用\texttt{debuild} 或者 \texttt{dpkg-buildpackage -us -uc}重新構建

note: type: frame{#2}
en: Comparing and testing the packages
zh_TW: 比對以及測試套件

note: type: itemize
en: Compare the binary packages: \texttt{debdiff ../*changes}
zh_TW: 比對二進制套件: \texttt{debdiff ../*changes}

note: type: itemize
en: Compare the source packages: \texttt{debdiff ../*dsc}
zh_TW: 比對原始碼套件: \texttt{debdiff ../*dsc}

note: type: itemize
en: Install the newly built package: \texttt{debi}\\ Or \texttt{dpkg -i ../grep\_<TAB>}
zh_TW: 安裝新構建成的套件: \texttt{debi}\\ Or \texttt{dpkg -i ../grep\_<TAB>}

note: type: itemize
en: \texttt{grep -P foo} no longer works!
zh_TW: \texttt{grep -P foo} 已失效!

note: type: frame
en: Reinstall the previous version of the package:
zh_TW: 重新安裝前一版的套件:

note: type: frame{#2}
en: Step by step\ldots
zh_TW: 循序漸進\ldots

note: type: itemize
en: Type of package: single binary (for now)
zh_TW: 套件種類: 單一二進制 (for now)

note: type: frame{#2}
en: Step by step\ldots (2)
zh_TW: 循序漸進\ldots (2)

note: type: itemize
en: Look at \texttt{debian/changelog}, \texttt{debian/rules}, \texttt{debian/control}\\ (auto-filled by \textbf{dh\_make})
zh_TW: 注意 \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
zh_TW: 在\texttt{debian/control}:\\ \texttt{Build-Depends: debhelper (>= 7.0.50~), autotools-dev}\\ 列出\textsl{build-dependencies} = packages 來滿足構建套件的需求

note: type: itemize
en: Try to build the package as-is with \texttt{debuild} (thanks to \textbf{dh} magic)
zh_TW: 可透過\texttt{debuild} (感謝 \textbf{dh})來構建套件

note: type: itemize
en: Hint: use \texttt{apt-cache search} and \texttt{apt-file} to find the packages
zh_TW: 提示: 使用 \texttt{apt-cache search} 以及 \texttt{apt-file}來尋找套件

note: type: itemize
en: Example:
zh_TW: 範例:

note: type: itemize
en: $\rightarrow$ Add \textbf{libsdl1.2-dev} to Build-Depends and install it.
zh_TW: $\rightarrow$ 將 \textbf{libsdl1.2-dev} 加入 Build-Depends並且安裝.

note: type: itemize
en: Better: use \textbf{pbuilder} to build in a clean environment
zh_TW: 建議方法: 使用 \textbf{pbuilder} 來構建一個乾淨的環境

note: type: frame{#2}
en: Step by step\ldots (3)
zh_TW: 循序漸進\ldots (3)

note: type: itemize
en: Required build-dependencies are \texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev}
zh_TW: 構建所需安裝的套件有\texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev}

note: type: itemize
en: Then, you will probably run into another error:
zh_TW: 接著, 你可能會遇到其他錯誤:

note: type: itemize
en: This problem is caused by bitrot: gnujump has not been adjusted following linker changes.
zh_TW: 這個問題主要是因為bitrot: gnujump需要照下列linker修改來調整.

note: type: itemize
en: If you are using source format version \textbf{1.0}, you can directly change upstream sources.
zh_TW: 如果你使用原始碼格式版本為\textbf{1.0},你可以直接修改上游原始碼.

note: type: itemize
en: Edit \texttt{src/Makefile.am} and replace
zh_TW: 編輯\texttt{src/Makefile.am}並替換

note: type: frame{#2}
en: Step by step\ldots (4)
zh_TW: 循序漸進\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})
zh_TW: 如果你使用原始碼格式的版本為 \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}
zh_TW: 由於 \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)
zh_TW: 循序漸進\ldots (5)

note: type: itemize
en: The package should now build fine.
zh_TW: 此套件理應完成正常構建.

note: type: itemize
en: Use \texttt{debc} to list the content of the generated package, and \texttt{debi} to install it and test it.
zh_TW: 使用 \texttt{debc} 來列出套件的內容,並且使用 \texttt{debi}來進行安裝以及測試.

note: type: itemize
en: Test the package with \texttt{lintian}
zh_TW: 使用 \texttt{lintian}來測試套件

note: type: itemize
en: While not a strict requirement, it is recommended that packages uploaded to Debian are \textsl{lintian-clean}
zh_TW: 雖不是強制性的要求, 但推薦使用 \textsl{lintian-clean}來上傳套件到Debian

note: type: itemize
en: More problems can be listed using \texttt{lintian -EviIL +pedantic}
zh_TW: 可透過 \texttt{lintian -EviIL +pedantic}列出更多問題

note: type: itemize
en: Some hints:
zh_TW: 小提示:

note: type: itemize
en: Remove the files that you don't need in \texttt{debian/}
zh_TW: 移除在\texttt{debian/}中不必要的檔案

note: type: itemize
en: Fill in \texttt{debian/control}
zh_TW: 填好 \texttt{debian/control}

note: type: itemize
en: Install the executable to \texttt{/usr/games} by overriding \texttt{dh\_auto\_configure}
zh_TW: 透過覆蓋 \texttt{dh\_auto\_configure} 安裝執行檔到 \texttt{/usr/games}

note: type: itemize
en: Use \textsl{hardening} compiler flags to increase security.\\ See \url{https://wiki.debian.org/Hardening}
zh_TW: 使用 \textsl{hardening} 編譯 flags 來增加安全性.\\ 參照 \url{https://wiki.debian.org/Hardening}

note: type: frame{#2}
en: Step by step\ldots (6)
zh_TW: 循序漸進\ldots (6)

note: type: itemize
en: Compare your package with the one already packaged in Debian:
zh_TW: 將你的套件和 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)
zh_TW: 它將檔案分開放到第二個套件中, 讓所有平台架構都可以一起共用($\rightarrow$ 可讓 Debian 檔案庫節省不必要的空間)

note: type: itemize
en: It installs a .desktop file (for the GNOME/KDE menus) and also integrates into the Debian menu
zh_TW: 它安裝 .desktop 檔案(給 GNOME/KDE 選單) 並且整合到Debian 選單中

note: type: itemize
en: It fixes a few minor problems using patches
zh_TW: 透過補丁來修補一些次要的問題

note: type: itemize
en: Create a basic source package: \texttt{jh\_makepkg}
zh_TW: 創建一個基本的原始碼套件: \texttt{jh\_makepkg}

note: type: itemize
en: Library
zh_TW: 函式庫

note: type: itemize
en: None
zh_TW: 無

note: type: itemize
en: Look at and fix \texttt{debian/*}
zh_TW: 修正 \texttt{debian/*}

note: type: itemize
en: \texttt{lintian}, \texttt{debc}, etc.
zh_TW: \texttt{lintian}, \texttt{debc}, 等等.

note: type: itemize
en: Compare your result with the \texttt{libirclib-java} source package
zh_TW: 將你的套件和\texttt{libirclib-java}原始碼套件進行差異比對

note: type: itemize
en: Downloads the gem from rubygems.org
zh_TW: 從 rubygems.org 下載 gem 回來

note: type: itemize
en: Creates a suitable .orig.tar.gz archive, and untar it
zh_TW: 建立一個正確的 .orig.tar.gz 檔案,並且解壓縮

note: type: itemize
en: Initializes a Debian source package based on the gem's metadata
zh_TW: 根據描述 gem 套件相關資訊的檔案來初始化 Debian 原始碼套件

note: type: itemize
en: Named \texttt{ruby-\textsl{gemname}}
zh_TW: 命名為 \texttt{ruby-\textsl{gemname}}

note: type: itemize
en: Tries to build the Debian binary package (this might fail)
zh_TW: 嘗試構建 Debian 二進制套件 (也許會失敗)

note: type: frame
en: \texttt{dh\_ruby} (included in \textsl{gem2deb}) does the Ruby-specific tasks:
zh_TW: \texttt{dh\_ruby} ( 在\textsl{gem2deb}裡) 執行 Ruby 特定相關任務:

note: type: itemize
en: Build C extensions for each Ruby version
zh_TW: 替每個 Ruby 版本皆構建 C 擴充功能

note: type: itemize
en: Copy files to their destination directory
zh_TW: 將檔案複製到每個目的端目錄

note: type: itemize
en: Update shebangs in executable scripts
zh_TW: 更新每一個執行腳本中的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
zh_TW: 執行定義在 \texttt{debian/ruby-tests.rb}, \texttt{debian/ruby-tests.rake}中的測試, 或者其他種類的驗證 \texttt{debian/ruby-test-files.yaml}

note: type: frame
en: Improve the generated package:
zh_TW: 優化產生的套件:

note: type: itemize
en: Run \texttt{debclean} to clean the source tree. Look at \texttt{debian/}.
zh_TW: 執行 \texttt{debclean} 來清除原始碼樹工具. 請看 \texttt{debian/}.

note: type: itemize
en: \texttt{changelog} and \texttt{compat} should be correct
zh_TW: \texttt{changelog} 以及 \texttt{compat}需要被修正

note: type: itemize
en: Edit \texttt{debian/control}: improve \texttt{Description}
zh_TW: 編輯 \texttt{debian/control}: 優化 \texttt{Description}

note: type: itemize
en: Write a proper \texttt{copyright} file based on the upstream files
zh_TW: 根據上游檔案來寫對應的 \texttt{copyright}

note: type: itemize
en: Compare your package with the \texttt{ruby-peach} package in the Debian archive
zh_TW: 將你的套件和 Debian 檔案庫中的  \texttt{ruby-peach}  套件比對

note: type: itemize
en: Downloads the tarball from the CPAN
zh_TW: 從 CPAN 下載壓縮檔案

note: type: itemize
en: Creates a suitable .orig.tar.gz archive, and untars it
zh_TW: 創建適合的 .orig.tar.gz 檔案, 並且解壓縮

note: type: itemize
en: Initializes a Debian source package based on the distribution's metadata
zh_TW: 根據描述發行版相關資訊的檔案初始化 Debian 原始碼套件

note: type: itemize
en: Named \texttt{lib\textsl{distname}-perl}
zh_TW: 取名為\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
zh_TW: \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
zh_TW: 編輯 \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
zh_TW: 編輯\texttt{debian/copyright}: 將置頂的樣版移除, 加入著作權的年份到 \texttt{Files:\hspace{0.3em}*} 的章節中
