[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Developer's Reference chap.8
é è—¤ã§ã™ã€‚
Debian デベãƒãƒƒãƒ‘ーズリファレンス第 8 ç« ã®ç¿»è¨³ã§ã™ã€‚
ãƒã‚§ãƒƒã‚¯ãŠé¡˜ã„ã—ã¾ã™ã€‚
| <chapt id="porting">Porting and Being Ported
| <p>
| Debian supports an ever-increasing number of architectures. Even if
| you are not a porter, and you don't use any architecture but one, it
| is part of your duty as a maintainer to be aware of issues of
| portability. Therefore, even if you are not a porter, you should read
| most of this chapter.
<chapt id="porting">移æ¤ä½œæ¥ã¨ç§»æ¤ç‰ˆ
<p>
Debian ãŒã‚µãƒãƒ¼ãƒˆã™ã‚‹ã‚¢ãƒ¼ã‚テクãƒãƒ£ã¯ä»ŠãªãŠå¢—åŠ ã—ã¦ã„ã¾ã™ã€‚
移æ¤ä½œæ¥è€…ã§ãªã„å ´åˆã‚„ã€ç‰¹å®šã®ã‚¢ãƒ¼ã‚テクãƒãƒ£ä»¥å¤–を利用ã—ãªã„å ´åˆã§ã‚‚ã€
開発者ã¨ã—ã¦ãƒãƒ¼ã‚¿ãƒ“リティã®å•é¡Œã‚’æ„è˜ã—ã¦ãŠãã“ã¨ã¯å¿…è¦ã§ã—ょã†ã€‚
ãã®ãŸã‚ã€ç§»æ¤ä½œæ¥è€…ã§ãªã„方もã€ã“ã¡ã‚‰ã®ç« ã¯ã‚らã‹ãŸèªã‚“ã§ãŠãã¹ãã§ã™ã€‚
| <p>
| Porting is the act of building Debian packages for architectures which
| is different from the original architecture of the package
| maintainer's binary package. It is a unique and essential activity.
| In fact, porters do most of the actual compiling of Debian packages.
| For instance, for one <em>i386</em> binary package, there has to be a
| recompile for each architecture, which is around five more builds.
<p>
移æ¤ä½œæ¥ã¨ã¯ã€ãƒ‘ッケージ開発者ã®ãƒã‚¤ãƒŠãƒªãƒ‘ッケージãŒãƒ“ルドã•ã‚ŒãŸ
å…ƒã®ã‚¢ãƒ¼ã‚テクãƒãƒ£ã¨ã¯ç•°ãªã‚‹ã‚¢ãƒ¼ã‚テクãƒãƒ£å‘ã‘ã« Debian
パッケージをビルドã™ã‚‹ã“ã¨ã‚’指ã—ã¾ã™ã€‚
ã“ã¡ã‚‰ã¯ç‹¬è‡ªã®é‡è¦ãªæ´»å‹•ã§ã™ã€‚
事実ã€å¤§åŠã® Debian パッケージを実際ã«ã‚³ãƒ³ãƒ‘イルã—ã¦ã„ã‚‹ã®ã¯ç§»æ¤ä½œæ¥è€…ã§ã™ã€‚
例ãˆã°ã€<em>i386</em> 用ã®ãƒã‚¤ãƒŠãƒªãƒ‘ッケージ一ã¤ã«ã—ã¦ã‚‚ã€
å„アーã‚テクãƒãƒ£ç”¨ã«å†ã‚³ãƒ³ãƒ‘イルã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã—ã€
ãã®ãŸã‚ã«ã¯ãŠã‚ˆã五回以上ビルドを行ãªã‚ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。
| <sect id="kind-to-porters">Being Kind to Porters
| <p>
| Porters have a difficult and unique task, since they are required to
| deal with a large volume of packages. Ideally, every source package
| should build right out of the box; unfortunately, this is often not
| the case. This section contains a checklist of ``gotchas'' often
| committed by Debian maintainers -- common problems which often stymie
| porters, and make their jobs unnecessarily more difficult.
<sect id="kind-to-porters">移æ¤ä½œæ¥è€…ã¸ã®é…æ…®
<p>
移æ¤ä½œæ¥è€…ã¯ã€è†¨å¤§ãªæ•°ã®ãƒ‘ッケージを処ç†ã—ãªã‘ã‚Œã°ãªã‚‰ãªã„ãŸã‚ã«ã€
困難ãªç‹¬è‡ªã®ä½œæ¥ã‚’è¡Œãªã„ã¾ã™ã€‚
ç†æƒ³ã¨ã—ã¦ã¯ã€å…¨ã‚½ãƒ¼ã‚¹ãƒ‘ッケージãŒã•ã¾ã–ã¾ãªã‚¢ãƒ¼ã‚テクãƒãƒ£ã§
é©åˆ‡ã«ãƒ“ルドã•ã‚Œã‚‹ã¹ããªã®ã§ã™ãŒã€æ®‹å¿µãªãŒã‚‰ãã†ã†ã¾ãã¯è¡Œãã¾ã›ã‚“。
ã“ã®ç¯€ã§ã¯ã€Debian 開発者らã«ã‚ˆã£ã¦ã—ã°ã—ã°æŒ‡æ‘˜ã•ã‚Œã‚‹ã€Œæ—¢çŸ¥ã€ã®ç¢ºèªé …ç›®
-- 移æ¤ä½œæ¥è€…を困らã›ãŸã‚Šã€
ãã®ä½œæ¥ã‚’ä¸å¿…è¦ã«å›°é›£ã«ã•ã›ã‚‹å…±é€šã®å•é¡Œã‚’å–り上ã’ã¾ã™ã€‚
| <p>
| The first and most important watchword is to respond quickly to bug or
| issues raised by porters. Please treat porters with courtesy, as if
| they were in fact co-maintainers of your package (which in a way, they
| are).
<p>
ã¾ãšç¬¬ä¸€ã«ä¸Šã’られる最もé‡è¦ãªãƒ¢ãƒƒãƒˆãƒ¼ã¯ã€
移æ¤ä½œæ¥è€…ã«ã‚ˆã£ã¦æŒ‡æ‘˜ã•ã‚ŒãŸãƒã‚°ã‚„å•é¡Œã«ã¯ç´ æ—©ã対応ã™ã‚‹ã¨ã„ã†ã“ã¨ã§ã™ã€‚
移æ¤ä½œæ¥è€…ã«å¯¾ã—ã¦ã¯ã€
ã”自分ã®ãƒ‘ッケージã®å®Ÿéš›ã®å”åŒé–‹ç™ºè€…ã«å¯¾ã™ã‚‹ã®ã¨åŒã˜ã‚ˆã†ã«ã€
ä¸é‡ã«å¯¾å¿œã—ã¦ãã ã•ã„。(ã‚ã‚‹æ„味ã§ã¯å½¼ã‚‰ã¯å”åŒé–‹ç™ºè€…ã§ã™ã€‚)
| <p>
| By far, most of the problems encountered by porters are caused by
| <em>packaging bugs</em> in the source packages. Here is a checklist
| of things you should check or be aware of.
<p>
実際ã€ç§»æ¤ä½œæ¥è€…ãŒå‡ºãã‚ã™å•é¡Œã®å¤§åŠã¯ã€
ソースパッケージã«ãŠã‘ã‚‹<em>パッケージング上ã®ãƒã‚°</em>ãªã®ã§ã™ã€‚
以下ãŒç¢ºèªã—注æ„ã™ã¹ã事柄ã®ç¢ºèªé …ç›®ã§ã™ã€‚
| <enumlist>
| <item>
| Don't set architecture to a value other than ``all'' or ``any'' unless
| you really mean it. In too many cases, maintainers don't follow the
| instructions in the <url
| id="http://www.debian.org/doc/packaging-manuals/packaging.html/"
| name="Debian Packaging Manual">. Setting your architecture to ``i386''
| is usually incorrect.
<enumlist>
<item>
``all'' ã‚„ ``any'' 以外ã®å€¤ã‚’アーã‚テクãƒãƒ£ã¨ã—ã¦è¨å®šã™ã‚‹ã“ã¨ã¯ã€
ãã®ã“ã¨ã‚’本当ã«æ„図ã—ã¦ã„ãªã„é™ã‚Šã€è¡Œãªã‚ãªã„ã§ãã ã•ã„。
大変多ãã®ã‚±ãƒ¼ã‚¹ã§ã€é–‹ç™ºè€…ãŒ
<url id="http://www.debian.org/doc/packaging-manuals/packaging.html/"
name="Debian パッケージングマニュアル">
ã®èª¬æ˜Žã«ã—ãŸãŒã£ã¦ã„ã¾ã›ã‚“。
アーã‚テクãƒãƒ£ã‚’ ``i386'' ã«è¨å®šã™ã‚‹ã“ã¨ã¯ã€ãŸã„ã¦ã„ã®ã¨ã“ã‚é–“é•ã„ã§ã™ã€‚
| <item>
| Make sure your source package is correct. Do <tt>dpkg-source -x
| <var>package</var>.dsc</tt> to make sure your source package unpacks
| properly. Then, in there, try building your package from scratch with
| <tt>dpkg-buildpackage</tt>.
<item>
作æˆã—ãŸã‚½ãƒ¼ã‚¹ãƒ‘ッケージãŒæ£ã—ã„ã‚‚ã®ã§ã‚ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。
<tt>dpkg-source -x <var>package</var>.dsc</tt> を実行ã—ã¦ã€
ã”自分ã®ã‚½ãƒ¼ã‚¹ãƒ‘ッケージãŒé©åˆ‡ã«å±•é–‹ã§ãã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。
ãã‚Œã‹ã‚‰ã€ãã“㧠<tt>dpkg-buildpackage</tt> を用ã„ã€
一ã‹ã‚‰ã”自分ã®ãƒ‘ッケージをビルドã—ã¦ã¿ã¦ãã ã•ã„。
| <item>
| Make sure you don't ship your source package with the
| <file>debian/files</file> or <file>debian/substvars</file> files.
| They should be removed by the `clean' target of
| <file>debian/rules</file>.
<item>
<file>debian/files</file> ファイルや <file>debian/substvars</file>
ファイルを残ã—ãŸã¾ã¾ã€ã‚½ãƒ¼ã‚¹ãƒ‘ッケージをアップãƒãƒ¼ãƒ‰ã—ãªã„ã§ãã ã•ã„。
ã“れらã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€<file>debian/rules</file> ã® `clean'
ターゲットã«ã‚ˆã£ã¦æ¶ˆåŽ»ã•ã‚Œã¦ã„ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。
| <item>
| Make sure you don't rely on locally installed or hacked configurations
| or programs. For instance, you should never be calling programs in
| <file>/usr/local/bin</file> or the like. Try not to rely on programs
| be setup in a special way. Try building your package on another
| machine, even if it's the same architecture.
<item>
ãƒãƒ¼ã‚«ãƒ«ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚ŒãŸã‚Šæ‰‹ã‚’åŠ ãˆã‚‰ã‚ŒãŸ
è¨å®šã‚„プãƒã‚°ãƒ©ãƒ ã«ä¾å˜ã—ã¦ã„ãªã„ã“ã¨ã‚’確ã‹ã‚ã¦ãã ã•ã„。
例ãˆã°ã€<file>/usr/local/bin</file>
ã‚„ãã‚Œã«é¡žã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã‚るプãƒã‚°ãƒ©ãƒ を呼ã³å‡ºã—ã¦ã¯ã„ã‘ã¾ã›ã‚“。
特別ã«è¨å®šã•ã‚ŒãŸãƒ—ãƒã‚°ãƒ©ãƒ ã«ä¾å˜ã—ãªã„よã†ã«ã—ã¦ãã ã•ã„。
ã¾ãŸã€ã”自分ã®ãƒ‘ッケージを
åŒä¸€ã‚¢ãƒ¼ã‚テクãƒãƒ£ã®ä»–ã®ãƒžã‚·ãƒ³ã§ãƒ“ルドã—ã¦ã¿ã¦ãã ã•ã„。
| <item>
| Don't depend on the package your building already being installed (a
| sub-case of the above issue).
<item>
(上記ã®ã“ã¨ã«ã‚‚å«ã¾ã‚Œã‚‹ã“ã¨ã§ã™ãŒã€)
ã”自分ã§ãƒ“ルドã•ã‚ŒãŸãƒ‘ッケージを既ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¦ã„ã‚‹ã‚‚ã®ã¨
仮定ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“。
| <item>
| Don't rely on <prgn>egcc</prgn> being available; don't rely on
| <prgn>gcc</prgn> being a certain version.
<item>
<prgn>egcc</prgn> ãŒåˆ©ç”¨ã§ãã‚‹ã‚‚ã®ã¨ä»®å®šã—ã¦ã¯ã„ã‘ã¾ã›ã‚“。
ã¾ãŸã€ç‰¹å®šã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® <prgn>gcc</prgn> ã«ä¾å˜ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“。
| <item>
| Make sure your debian/rules contains separate ``binary-arch'' and
| ``binary-indep'' targets, as the Debian Packaging Manual requires.
| Make sure that both targets work independently, that is, that you can
| call the target without having called the other before. To test this,
| try to run <tt>dpkg-buildpackage -b</tt>.
| </enumlist>
<item>
Debian パッケージングマニュアルã§è¦æ±‚ã•ã‚Œã¦ã„る通りã«ã€
``binary-arch'' ターゲット㨠``binary-indep'' ターゲットã¯
debian/rules ã«åˆ¥ã€…ã«åŽéŒ²ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。
ã“ã®ä¸¡ã‚¿ãƒ¼ã‚²ãƒƒãƒˆãŒãã‚Œãžã‚Œç‹¬ç«‹ã—ã¦å‹•ä½œã™ã‚‹ã“ã¨ã€
ã¤ã¾ã‚Šã€ã‚るターゲットを呼ã³å‡ºã™éš›ã«
ä»–ã®ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã‚’å‰ã‚‚ã£ã¦å‘¼ã³å‡ºã—ã¦ã„ãªã„ã“ã¨ã‚’を確èªã—ã¦ãã ã•ã„。
ã“ã¡ã‚‰ã‚’テストã™ã‚‹ã«ã¯ã€<tt>dpkg-buildpackage -b</tt>
を実行ã—ã¦ã¿ã¦ãã ã•ã„。
</enumlist>
| <sect id="porter-guidelines">Guidelines for Porter Uploads
| <p>
| If the package builds out of the box for the architecture to be ported
| to, you are in luck and your job is easy. This section applies to
| that case; it describes how to build and upload your binary NMU so
| that it is properly installed into the archive. If you do have to
| patch the package in order to get it to compile for the other
| architecture, you are actually doing a source NMU, so consult <ref
| id="nmu-guidelines"> instead.
<sect id="porter-guidelines">移æ¤ä½œæ¥è€…ã«ã‚ˆã‚‹ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã«é–¢ã™ã‚‹ã‚¬ã‚¤ãƒ‰ãƒ©ã‚¤ãƒ³
<p>
移æ¤å…ˆã®ã‚¢ãƒ¼ã‚テクãƒãƒ£ç”¨ã®ãƒã‚¤ãƒŠãƒªã®ã¿ã‚’é‹ã‚ˆãビルドã§ãã‚‹ãªã‚‰ã°ã€
作æ¥ã‚‚ã¯ã‹ã©ã‚‹ã§ã—ょã†ã€‚
ã“ã®ç¯€ã§æ‰±ã†ã®ã¯ã“ã®ã‚ˆã†ãªã‚±ãƒ¼ã‚¹ã§ã™ã€‚
ã¤ã¾ã‚Šã€é©åˆ‡ã«ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã§ãるよã†ã«ã€
ãƒã‚¤ãƒŠãƒªã‚’ビルド㗠binary NMU をアップãƒãƒ¼ãƒ‰ã™ã‚‹æ–¹æ³•ã‚’説明ã—ã¾ã™ã€‚
ä»–ã®ã‚¢ãƒ¼ã‚テクãƒãƒ£å‘ã‘ã«ã‚³ãƒ³ãƒ‘イルを通ã™ãŸã‚ã«ã€
パッケージã«ãƒ‘ッãƒã‚’当ã¦ãªãã¦ã¯ãªã‚‰ãªã„å ´åˆã¯ã€
source NMU ã‚’è¡Œãªã‚ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。
ã“ã¡ã‚‰ã«é–¢ã—ã¦ã¯ <ref id="nmu-guidelines"> ã‚’ã”å‚ç…§ãã ã•ã„。
| <p>
| In a binary NMU, no real changes are being made to the source. You do
| not need to touch any of the files in the source package. This
| includes <file>debian/changelog</file>.
<p>
binary NMU ã‚’è¡Œãªã†å ´åˆã€ãã®ã‚½ãƒ¼ã‚¹ã«å¯¾ã—ã¦ã¯ä¸€åˆ‡å¤‰æ›´ã‚’è¡Œãªã„ã¾ã›ã‚“。
ソースパッケージä¸ã®ã„ã‹ãªã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã—ã¦ã‚‚手をã¤ã‘ã‚‹å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“。
<file>debian/changelog</file> も然りã§ã™ã€‚
| <p>
| Sometimes you need to recompile a packages against other packages
| which have been updated, such as libraries. You do have to bump the
| version number in this case, so that the upgrade system can function
| properly. Even so, these are considered binary-only NMUs -- there is
| no need in this case for all architectures to recompile. You should
| set the version number as in the case of NMU versioning, but add a
| ``.0.'' before the the NMU version. For instance, a recompile-only
| NMU of the source package ``foo_1.3-1'' would be numbered
| ``foo_1.3-1.0.1''.
<p>
å ´åˆã«ã‚ˆã£ã¦ã¯ã€ãƒ©ã‚¤ãƒ–ラリãªã©ã®æ›´æ–°æ¸ˆã¿ã®ä»–パッケージã«å¯¾ã—ã¦ã€
ã‚るパッケージをå†ã‚³ãƒ³ãƒ‘イルã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã§ã—ょã†ã€‚
ã“ã®å ´åˆã¯ã€ã‚¢ãƒƒãƒ—グレードシステムãŒé©åˆ‡ã«å‹•ä½œã™ã‚‹ã‚ˆã†ã«ã€
ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç•ªå·ã‚’上ã’ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。
ã—ã‹ã—ãªãŒã‚‰ã€ãŸã¨ãˆãã†ã§ã‚‚ã€ã“れら㯠binary ã®ã¿ã® NMU ã¨ã¿ãªã•ã‚Œã¾ã™ã€‚
-- ã“ã®å ´åˆã€å…¨ã‚¢ãƒ¼ã‚テクãƒãƒ£ã§å†ã‚³ãƒ³ãƒ‘イルã™ã‚‹å¿…è¦ã¯ãªã„ã‹ã‚‰ã§ã™ã€‚
NMU ã®å ´åˆã¨åŒæ§˜ã«ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç•ªå·ã‚’è¨å®šã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“ãŒã€
ã“ã®å ´åˆã¯ NMU ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®å‰ã« ``.0.'' を付ã‘åŠ ãˆã¾ã™ã€‚
例ãˆã°ã€``foo_1.3-1'' ã¨ã„ã†ã‚½ãƒ¼ã‚¹ãƒ‘ッケージをå˜ã«å†ã‚³ãƒ³ãƒ‘イルã—㦠NMU
ã™ã‚‹å ´åˆã€ãã®ç•ªå·ã¯ ``foo_1.3-1.0.1'' ã«ãªã‚Šã¾ã™ã€‚
| <p>
| The way to invoke <prgn>dpkg-buildpackage</prgn> is as
| <tt>dpkg-buildpackage -B -m<var>porter-email</var></tt>. Of course,
| set <var>porter-email</var> to your email address. This will do a
| binary-only build of only the architecture-dependant portions of the
| package, using the `binary-arch' target in <file>debian/rules</file>.
<p>
<prgn>dpkg-buildpackage</prgn> ã‚’èµ·å‹•ã™ã‚‹ã«ã¯ã€
<tt>dpkg-buildpackage -B -m<var>porter-email</var></tt>
ã¨ã—ã¦ãã ã•ã„。
ã‚‚ã¡ã‚ã‚“ <var>porter-email</var> ã®ç®‡æ‰€ã«ã¯
ã”自分ã®é›»åメールアドレスを当ã¦ã¯ã‚ã¦ãã ã•ã„。
ã“ã†ã™ã‚Œã°ã€<file>debian/rules</file> ã® `binary-arch'
ターゲットを用ã„ã¦ã€è©²å½“パッケージã®ç‰¹å®šã‚¢ãƒ¼ã‚テクãƒãƒ£ä¾å˜éƒ¨åˆ†ã«é™ã£ãŸ
ãƒã‚¤ãƒŠãƒªãƒ“ルドã®ã¿ãŒè¡Œãªã‚ã‚Œã¾ã™ã€‚
| <sect1 id="source-nmu-when-porter">
| <heading>When to do a source NMU if you are a porter</heading>
| <p>
| Porters doing a source NMU generally follow the guidelines found in
| <ref id="nmu">, just like non-porters. However, it is expected that
| the wait cycle for a porter's source NMU is smaller than for a
| non-porter, since porters have to cope with a large quantity of
| packages.
<sect1 id="source-nmu-when-porter">
<heading>移æ¤ä½œæ¥è€…㌠source NMU ã‚’è¡Œãªã†å ´åˆã«ã¯</heading>
<p>
移æ¤ä½œæ¥è€…㌠source NMU ã‚’è¡Œãªã†å ´åˆã€
éžç§»æ¤ä½œæ¥è€…ã®å ´åˆã¨åŒæ§˜ã«ã€ä¸€èˆ¬çš„ã«ã¯
<ref id="nmu"> ã«ã¦è§¦ã‚ŒãŸã‚¬ã‚¤ãƒ‰ãƒ©ã‚¤ãƒ³ã«å¾“ã„ã¾ã™ã€‚
ã—ã‹ã—ãªãŒã‚‰ã€ç§»æ¤ä½œæ¥è€…ã®å ´åˆã€
相当ãªé‡ã®ãƒ‘ッケージを処ç†ã—ãªã‘ã‚Œã°ãªã‚‰ãªã„ã“ã¨ã‹ã‚‰ã€
source NMU ã‚’ã™ã‚‹éš›ã«ä»–ã®é–‹ç™ºè€…ã®å¯¾å¿œã‚’å¾…ã¤æ™‚é–“ã¯ã€
éžç§»æ¤ä½œæ¥è€…ã®å ´åˆã‚ˆã‚Šã‚‚çŸã„ã“ã¨ãŒæœ›ã¾ã‚Œã¦ã„ã¾ã™ã€‚
| <p>
| Again, the situation varies depending on the distribution they are
| uploading to. Crucial fixes (i.e., changes need to get a source
| package to compile for a released-targeted architecture) can be
| uploaded with <em>no</em> waiting period for the `frozen' distribution.
<p>
ã•ã‚‰ã«ã€ãã®çŠ¶æ³ã¯
アップãƒãƒ¼ãƒ‰å…ˆã®ãƒ‡ã‚£ã‚¹ãƒˆãƒªãƒ“ューションã«ã‚ˆã£ã¦ã‚‚ç•°ãªã£ã¦ãã¾ã™ã€‚
`frozen' ディストリビューションã¸ã®é‡è¦ãªä¿®æ£
(ã™ãªã‚ã¡ã€ãƒªãƒªãƒ¼ã‚¹ãŒäºˆå®šã•ã‚Œã¦ã„るアーã‚テクãƒãƒ£ã§
ソースパッケージã®ã‚³ãƒ³ãƒ‘イルを通ã™ãŸã‚ã«å¿…è¦ã¨ãªã‚‹ä¿®æ£) ã¯ã€
å¾…ã¡æ™‚é–“ã‚’<em>ç½®ã‹ãš</em>ã«ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
| <p>
| However, if you are a porter doing an NMU for `unstable', the above
| guidelines for porting should be followed, with two variations.
| Firstly, the acceptable waiting period -- the time between when the
| bug is submitted to the BTS and when it is OK to do an NMU -- is seven
| days for porters working on the unstable distribution. This period
| can be shortened if the problem is critical and imposes hardship on
| the porting effort, at the discretion of the porter group. (Remember,
| none of this is Policy, just mutually agreed upon guidelines.)
<p>
移æ¤ä½œæ¥è€…㌠`unstable' ディストリビューションã¸ã® NMU ã‚’è¡Œãªã†å ´åˆã‚‚ã€
上記ã®ç§»æ¤ä½œæ¥ã«é–¢ã™ã‚‹ã‚¬ã‚¤ãƒ‰ãƒ©ã‚¤ãƒ³ã«å¾“ã‚ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“ãŒã€
二点ã»ã©ç•°ãªã‚‹ç‚¹ã‚‚ã‚ã‚Šã¾ã™ã€‚
ã¾ãšä¸€ç‚¹ç›®ã¯ã€å分ã¨ã•ã‚Œã‚‹å¾…ã¡æ™‚é–“ -- BTS ã«ãƒã‚°ãŒå ±å‘Šã•ã‚Œã¦ã‹ã‚‰ã€NMU
ãŒèªã‚られるã¾ã§ã®æ™‚é–“ -- ãŒã€`unstable'
ディストリビューションã«é–¢ã™ã‚‹ä½œæ¥ã‚’è¡Œãªã†ç§»æ¤ä½œæ¥è€…ã®å ´åˆã€7
日間ã§ã‚ã‚‹ã¨ã„ã†ã“ã¨ã§ã™ã€‚
ãªãŠã€ã“ã®æœŸé–“ã‚‚ã€
致命的ãªå•é¡Œã‚„移æ¤ä½œæ¥ã®è² æ‹…ã¨ãªã‚‹å•é¡ŒãŒã‚ã‚‹å ´åˆã¯ã€
移æ¤ä½œæ¥ã‚°ãƒ«ãƒ¼ãƒ—ã®è£é‡ã§çŸãã•ã‚Œã‚‹ã“ã¨ã‚‚ã‚ã‚Šãˆã¾ã™ã€‚
(ã“ã‚Œã¯ãƒãƒªã‚·ãƒ¼ã§ã¯ãªãã€
ã‚ãã¾ã§ã‚‚ガイドラインã«æ²¿ã£ã¦ç›¸äº’ã«äº†æ‰¿ã•ã‚Œã¦ã„ã‚‹ã‚‚ã®ã§ã™ã€‚
ã”注æ„ãã ã•ã„。)
| <p>
| Secondly, porters doing source NMUs should make sure that the bug they
| submit to the BTS should be of severity `important' or greater. This
| ensures that a single source package can be used to compile every
| supported Debian architecture by release time. It is very important
| that we have one version of the binary and source package for all
| architecture in order to comply with many licenses.
<p>
二点目ã¯ã€source NMU ã‚’è¡Œãªã†ç§»æ¤ä½œæ¥è€…㌠BTS ã«å ±å‘Šã™ã‚‹éš›ã€
ãã®ãƒã‚°ã®é‡è¦åº¦ã‚’ `important' 以上ã«ã—ãªã‘ã‚Œã°ãªã‚‰ãªã„ã¨ã„ã†ã“ã¨ã§ã™ã€‚
ã“ã†ã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦ã€ãƒªãƒªãƒ¼ã‚¹æ™‚ã« Debian
ã§ã‚µãƒãƒ¼ãƒˆã•ã‚Œã‚‹å…¨ã‚¢ãƒ¼ã‚テクãƒãƒ£ç”¨ã®ãƒã‚¤ãƒŠãƒªãŒã€
確実ã«å˜ä¸€ã®ã‚½ãƒ¼ã‚¹ãƒ‘ッケージã‹ã‚‰æ§‹ç¯‰ã•ã‚Œã‚‹ã“ã¨ãŒç¢ºå®Ÿã«ãªã‚Šã¾ã™ã€‚
ã•ã¾ã–ã¾ãªãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã«æº–æ‹ ã™ã‚‹ãŸã‚ã«ã‚‚ã€
全アーã‚テクãƒãƒ£ã«ã‚ãŸã‚‹ãƒã‚¤ãƒŠãƒªãŠã‚ˆã³ã‚½ãƒ¼ã‚¹ãƒ‘ッケージを
å˜ä¸€ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ç®¡ç†ã™ã‚‹ã“ã¨ã¯ã€æ¥µã‚ã¦é‡è¦ã§ã™ã€‚
| <p>
| Porters should try to avoid patches which simply kludge around bugs in
| the current version of the compile environment, kernel, or libc.
| Sometimes such kludges can't be helped. If you have to kludge around
| compilers bugs and the like, make sure you <tt>#ifdef</tt> your work
| properly; also, document your kludge so that people know to remove it
| once the external problems have been fixed.
<p>
移æ¤ä½œæ¥è€…ã¯ã€ç¾è¡Œãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚³ãƒ³ãƒ‘イル環境やã€ã‚«ãƒ¼ãƒãƒ«ã€libc
ã«ãŠã„ã¦ã®ã¿ãƒã‚°ãŒå›žé¿ã§ãるよã†ãªãƒ‘ッãƒã‚’ã€
é¿ã‘るよã†ã«åŠªã‚ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。
ãŸã ã€ã“ã®ã‚ˆã†ãªå¿œæ€¥å‡¦ç½®ãŒå¿…è¦ã«ãªã‚‹å ´åˆã‚‚ã‚ã‚‹ã§ã—ょã†ã€‚
コンパイラã®ãƒã‚°ã‚„ãã®é¡žã„を回é¿ã—ãªã‘ã‚Œã°ãªã‚‰ãªã„å ´åˆã€
ãã®ãŸã‚ã«è¿½åŠ ã—ãŸã‚³ãƒ¼ãƒ‰ã«ã¯é©åˆ‡ã« <tt>#ifdef</tt> を用ã„ã¦ãã ã•ã„。
ã¾ãŸã€ãã®å¤–çš„ãªå•é¡ŒãŒä¿®æ£ã•ã‚ŒãŸéš›ã«èª°ã‚‚ãŒãã®ç®‡æ‰€ã‚’除去ã§ãるよã†ã«ã€
ã”自分ãŒè¡Œãªã£ãŸå¿œæ€¥å‡¦ç½®ã‚’文書ã«æ®‹ã—ã¦ãŠã„ã¦ãã ã•ã„。
| <p>
| Porters may also have an unofficial location where they can put the
| results of their work during the waiting period. This helps others
| running the port have the benefit of the porter's work, even during
| the waiting period. Of course, such locations have no official
| blessing or status, so buyer, beware.
<p>
ä»–ã®é–‹ç™ºè€…ã®å¯¾å¿œã‚’å¾…ã¤é–“ã«ã€ç§»æ¤ä½œæ¥è€…ã¯
自身ã®ä½œæ¥çµæžœã‚’公開ã™ã‚‹ãŸã‚ã«éžå…¬å¼ãªå ´æ‰€ã‚’構ãˆã‚‹ã“ã¨ã‚‚ã‚ã‚Šã¾ã™ã€‚
ã“ã®ã“ã¨ã¯ã€ä»–ã®é–‹ç™ºè€…ã®å¯¾å¿œã‚’å¾…ã¤é–“ã«ãŠã„ã¦ã‚‚ã€
ãã®ç§»æ¤ä½œæ¥ã®åˆ©ç›Šã‚’ã€åŒã˜ä½œæ¥ã«æºã‚ã‚‹ä»–ã®é–‹ç™ºè€…ãŒ
å—ã‘å–れる利点ãŒã‚ã‚Šã¾ã™ã€‚
ã‚‚ã¡ã‚ã‚“ã€ã“ã®ã‚ˆã†ãªå ´æ‰€ã¯å…¬å¼ã«æŽ¨å¥¨ã•ã‚Œã‚‹ã‚‚ã®ã§ã‚‚
å…¬å¼ãªåœ°ä½ã‚’与ãˆã‚‰ã‚ŒãŸã‚‚ã®ã§ã‚‚ã‚ã‚Šã¾ã›ã‚“ã®ã§ã€
ã“ã¡ã‚‰ã‚’利用ã•ã‚Œã‚‹å ´åˆã¯ã”注æ„ãã ã•ã„。
| <sect>Tools for Porters
| <p>
| There are several tools available for the porting effort. This section
| contains a brief introduction to these tools; see the package
| documentation or references for full information.
<sect>移æ¤ä½œæ¥è€…用ã®ãƒ„ール群
<p>
移æ¤ä½œæ¥ã«æœ‰ç”¨ãªãƒ„ールãŒã„ãã¤ã‹ç”¨æ„ã•ã‚Œã¦ã„ã¾ã™ã€‚
ã“ã®ç¯€ã§ã¯ã“れらツール群ã®ç°¡å˜ãªç´¹ä»‹ã‚’è¡Œãªã„ã¾ã™ã€‚
ãªãŠã€ã“れらã«é–¢ã™ã‚‹å®Œå…¨ãªæƒ…å ±ã«ã¤ã„ã¦ã¯ã€
å„パッケージã®æ–‡æ›¸ã‚„リファレンスをã”覧ãã ã•ã„。
| <sect1 id="quinn-diff">
| <heading><package>quinn-diff</package>
| <p>
| <package>quinn-diff</package> is used to locate the differences from
| one architecture to another. For instance, it could tell you which
| packages need to be ported for architecture <var>Y</var>, based on
| architecture <var>X</var>.
<sect1 id="quinn-diff">
<heading><package>quinn-diff</package>
<p>
<package>quinn-diff</package> ã¯ã€
ç•°ãªã‚‹ã‚¢ãƒ¼ã‚テクãƒãƒ£é–“ã®å·®ç•°ã‚’ locate ã™ã‚‹ãŸã‚ã«ç”¨ã„られã¾ã™ã€‚
例ãˆã°ã€ã‚¢ãƒ¼ã‚テクãƒãƒ£ <var>X</var> ã‹ã‚‰ã‚¢ãƒ¼ã‚テクãƒãƒ£ <var>Y</var> ã¸ã€
ã©ã®ãƒ‘ッケージを移æ¤ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã®ã‹ã‚’æ•™ãˆã¦ãã‚Œã¾ã™ã€‚
| <sect1 id="buildd">
| <heading><package>buildd</package>
| <p>
| The <package>buildd</package> system is used as a distributed,
| client-server build distribution system. It is usually used in
| conjunction with <em>auto-builders</em>, which are ``slave'' hosts
| which simply check out and attempt to auto-build packages which need
| to be ported. There is also an email interface to the system, which
| allows porters to ``check out'' a source package (usually one which
| cannot yet be autobuilt) and work on it.
<sect1 id="buildd">
<heading><package>buildd</package>
<p>
<package>buildd</package> システムã¯ã€åˆ†æ•£é…ç½®ã•ã‚Œã‚‹
クライアント/サーãƒå¼ã®ãƒ“ルドãŠã‚ˆã³ãƒ‡ã‚£ã‚¹ãƒˆãƒªãƒ“ューションシステãƒ
ã¨ã—ã¦ç”¨ã„られã¾ã™ã€‚
ã“ã¡ã‚‰ã¯é€šå¸¸ <em>auto-builders</em> ã¨å…±ã«åˆ©ç”¨ã•ã‚Œã¾ã™ã€‚
ã“ã® <em>auto-builders</em> ã¯ã€å˜ã«ç§»æ¤ã®å¿…è¦ãªãƒ‘ッケージã®ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã¨
自動ビルドを行ãªã†ã€Œã‚¹ãƒ¬ãƒ¼ãƒ–ã€ãƒ›ã‚¹ãƒˆã§ã™ã€‚
ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã«ã¯ã€
移æ¤ä½œæ¥è€…ãŒã‚½ãƒ¼ã‚¹ãƒ‘ッケージを「ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã€ã—ã¦ä½œæ¥ã‚’è¡Œãªã†ãŸã‚ã®
é›»åメールインターフェイスもã‚ã‚Šã¾ã™ã€‚
| <p>
| <package>buildd</package> is not yet available as a package; however,
| most porting efforts are either using it currently or planning to use
| it in the near future. It collects a number of as yet unpackaged
| components which are currently very useful and in use continually,
| such as <prgn>andrea</prgn>, <prgn>sbuild</prgn> and
| <prgn>wanna-build</prgn>.
<p>
<package>buildd</package> ã¯ã¾ã パッケージã¨ã—ã¦ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“ãŒã€
移æ¤ä½œæ¥ã®å¤šãã«ãŠã„ã¦ç¾ã«åˆ©ç”¨ã•ã‚Œã¦ãŠã‚Šã€
ã¾ãŸè¿‘ã„å°†æ¥åˆ©ç”¨ã•ã‚Œã‚‹ã“ã¨ãŒè¨ˆç”»ã•ã‚Œã¦ã„ã¾ã™ã€‚
ã“ã¡ã‚‰ã«ã¯ã€ç¾ã«æ¥µã‚ã¦æœ‰ç”¨ã§é »ç¹ã«åˆ©ç”¨ã•ã‚Œã¦ã„ã‚‹
<prgn>andrea</prgn> ã‚„ã€<prgn>sbuild</prgn>ã€
<prgn>wanna-build</prgn>
ã¨ã„ã£ãŸãƒ‘ッケージ化ã•ã‚Œã¦ã„ãªã„数々ã®ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚
| <p>
| Some of the data produced by <package>buildd</package> which is
| generally useful to porters is available on the web at <url
| id="&url-buildd;">. This data includes nightly updated information
| from <prgn>andrea</prgn> (source dependencies) and
| <package>quinn-diff</package> (packages needing recompilation).
<p>
<package>buildd</package> ã«ã‚ˆã£ã¦ç”Ÿæˆã•ã‚ŒãŸ
移æ¤ä½œæ¥è€…ã«ã¨ã£ã¦ä¸€èˆ¬çš„ã«æœ‰ç›Šãªãƒ‡ãƒ¼ã‚¿ã®ã„ãã¤ã‹ã¯ã€
ウェブ上㮠<url id="&url-buildd;"> ã§åˆ©ç”¨ã§ãã¾ã™ã€‚
ã“ã¡ã‚‰ã®ãƒ‡ãƒ¼ã‚¿ã«ã¯ã€æ¯Žæ™© <prgn>andrea</prgn> (ソースã®ä¾å˜é–¢ä¿‚) ã¨
<package>quinn-diff</package> (å†ã‚³ãƒ³ãƒ‘イルã®å¿…è¦ãªãƒ‘ッケージ)
ã‹ã‚‰æ›´æ–°ã•ã‚Œã‚‹æƒ…å ±ã‚‚åŽéŒ²ã•ã‚Œã¦ã„ã¾ã™ã€‚
| <p>
| We are very excited about this system, since it potentially has so
| many uses. Independent development groups can use the system for
| different sub-flavors of Debian, which may or may not really be of
| general interest (for instance, a flavor of Debian built with gcc
| bounds checking). It will also enable Debian to recompile entire
| distributions quickly.
<p>
ã•ã¾ã–ã¾ãªç”¨é€”ã«å½¹ç«‹ã¤å¯èƒ½æ€§ã‚’秘ã‚ã¦ã„ã‚‹ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã«ã€
ç§ãŸã¡ã¯å¤§ããªæœŸå¾…を寄ã›ã¦ã„ã¾ã™ã€‚
一般的的ãªé–¢å¿ƒã‚’呼ã¶ã‹ã©ã†ã‹ã¯åˆ¥ã§ã™ãŒã€ç‹¬ç«‹ã—ãŸå„開発グループãŒã€
Debian ã®ç•°ãªã‚‹ã‚µãƒ– flavor 用ã®ã‚·ã‚¹ãƒ†ãƒ
(例ãˆã°ã€gcc ãƒã‚¦ãƒ³ã‚ºãƒã‚§ãƒƒã‚¯ä»˜ãã§ãƒ“ルドã•ã‚ŒãŸ Debian ã®ã‚ã‚‹ flavor ãªã©)
を利用ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
ã¾ãŸã€ã“ã¡ã‚‰ã¯ Debian ãŒãƒ‡ã‚£ã‚¹ãƒˆãƒªãƒ“ãƒ¥ãƒ¼ã‚·ãƒ§ãƒ³å…¨ä½“ã‚’ç´ æ—©ãå†ã‚³ãƒ³ãƒ‘イル
ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã«ã™ã‚‹ã®ã§ã™ã€‚
| <sect1 id="dpkg-cross">
| <heading><package>dpkg-cross</package>
| <p>
| <package>dpkg-cross</package> is a tool for installing libraries and
| headers for cross-compiling in a way similar to
| <package>dpkg</package>. Furthermore, the functionality of
| <prgn>dpkg-buildpackage</prgn> and <prgn>dpkg-shlibdeps</prgn> is
| enhanced to support cross-compiling.
<sect1 id="dpkg-cross">
<heading><package>dpkg-cross</package>
<p>
<package>dpkg-cross</package> ã¯ã€
<package>dpkg</package> ã«ä¼¼ãŸæ–¹æ³•ã§ã€
クãƒã‚¹ã‚³ãƒ³ãƒ‘イル用ã®ãƒ©ã‚¤ãƒ–ラリやヘッダをインストールã™ã‚‹ãƒ„ールã§ã™ã€‚
ã•ã‚‰ã«ã€ã‚¯ãƒã‚¹ã‚³ãƒ³ãƒ‘イルをサãƒãƒ¼ãƒˆã™ã‚‹ãŸã‚ã«
<prgn>dpkg-buildpackage</prgn> ã‚„ <prgn>dpkg-shlibdeps</prgn>
ã®æ©Ÿèƒ½æ€§ã‚‚高ã‚られã¦ã„ã¾ã™ã€‚
--
Yoshizumi Endo <y-endo@xxxxxxxxxxxxxxx>