/usr/share/doc/maint-guide-ja/html/update.ja.html is in maint-guide-ja 1.2.35.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>第8章 パッケージの更新</title>
<link rel="stylesheet" type="text/css" href="maint-guide.css"/>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="home" href="index.ja.html" title="Debian 新メンテナーガイド"/>
<link rel="up" href="index.ja.html" title="Debian 新メンテナーガイド"/>
<link rel="prev" href="checkit.ja.html" title="第7章 パッケージのエラーの検証"/>
<link rel="next" href="upload.ja.html" title="第9章 パッケージをアップロードする"/>
</head>
<body>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">第8章 パッケージの更新</th>
</tr>
<tr>
<td align="left"><a accesskey="p" href="checkit.ja.html"><img src="images/prev.png" alt="戻る"/></a> </td>
<th width="60%" align="center"> </th>
<td align="right"> <a accesskey="n" href="upload.ja.html"><img src="images/next.png" alt="次へ"/></a></td>
</tr>
</table>
<hr/>
</div>
<div class="chapter">
<div class="titlepage">
<div>
<div>
<h1 class="title"><a id="update"/>第8章 パッケージの更新</h1>
</div>
</div>
</div>
<div class="toc">
<p>
<strong>目次</strong>
</p>
<dl class="toc">
<dt>
<span class="section">
<a href="update.ja.html#newrevision">8.1. Debian リビジョンの更新</a>
</span>
</dt>
<dt>
<span class="section">
<a href="update.ja.html#inspectnewupstream">8.2. 新規のアップストリームリリースの検査</a>
</span>
</dt>
<dt>
<span class="section">
<a href="update.ja.html#newupstream">8.3. アップストリームソフトウェアの新版更新</a>
</span>
</dt>
<dt>
<span class="section">
<a href="update.ja.html#packagestyle">8.4. パッケージ化スタイルの更新</a>
</span>
</dt>
<dt>
<span class="section">
<a href="update.ja.html#utf8">8.5. UTF-8 変換</a>
</span>
</dt>
<dt>
<span class="section">
<a href="update.ja.html#reminders">8.6. パッケージをアップグレードする際の注意点</a>
</span>
</dt>
</dl>
</div>
<p>
パッケージをリリースしたなら、すぐにそれを更新する必要があります。
</p>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="newrevision"/>8.1. Debian リビジョンの更新</h2>
</div>
</div>
</div>
<p>
例えば仮に、<code class="literal">#654321</code> という番号のバグレポートがあなたのパッケージ
に対してファイルされ、解決可能な問題が記述されていたとしましょう。 パッケージの新しい Debian リビジョンを作成するには、以下を実行する
必要があります:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
もしこれが新規のパッチとして記録される場合には、以下のようにします:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<code class="literal">dquilt new <em class="replaceable"><code>bugname.patch</code></em></code>
としてパッチ名を設定します。
</p>
</li>
<li class="listitem">
<p>
<code class="literal">dquilt add <em class="replaceable"><code>buggy-file</code></em></code>
として変更されるファイルを宣言します。
</p>
</li>
<li class="listitem">
<p>
アップストリームバグに関してパッケージソース中の問題を修正します。
</p>
</li>
<li class="listitem">
<p>
<code class="literal">dquilt refresh</code> として
<code class="filename"><em class="replaceable"><code>bugname.patch</code></em></code> に記録します。
</p>
</li>
<li class="listitem">
<p>
<code class="literal">dquilt header -e</code> としてその内容記述を追加します。
</p>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p>
もし既存のパッチをアップデートする場合には、以下のようにします:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<code class="literal">dquilt pop <em class="replaceable"><code>foo.patch</code></em></code> として既存の
<code class="filename"><em class="replaceable"><code>foo.patch</code></em></code> を呼び出します。
</p>
</li>
<li class="listitem">
<p>
古い <code class="filename"><em class="replaceable"><code>foo.patch</code></em></code> 中の問題を修正します。
</p>
</li>
<li class="listitem">
<p>
<code class="literal">dquilt refresh</code> として
<code class="filename"><em class="replaceable"><code>foo.patch</code></em></code> を更新します。
</p>
</li>
<li class="listitem">
<p>
<code class="literal">dquilt header -e</code> としてその内容記述を更新します。
</p>
</li>
<li class="listitem">
<p>
<code class="literal">while dquilt push; do dquilt refresh; done</code> として
<span class="emphasis"><em>fuzz</em></span> を削除しながら全てのパッチを適用します。
</p>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p>
次に Debian <code class="filename">changelog</code> ファイルの先頭に新しいリビジョンを
追加します。例えば<code class="literal">dch -i</code>を実行するか、またはバージョンを 明示したい場合なら<code class="literal">dch -v
<em class="replaceable"><code>version</code></em>-<em class="replaceable"><code>revision</code></em></code>
を実行してあなたの好きなエディタで説明を記入すると楽にできます。<a href="#ftn.idp44246816" class="footnote" id="idp44246816"><sup class="footnote">[78]</sup></a>
</p>
</li>
<li class="listitem">
<p>
changelog の説明行に、このリビジョンで解決されたバグと、その解決方法についての簡単な説明を記載し、<code class="literal">Closes:
#54321</code> と続けておきます。これによってあなたのパッケージが Debian
アーカイブ中に受け入れられた時、アーカイブ管理ソフトウェアによって該当するバグレポートが<span class="emphasis"><em>魔法のように自動的に</em></span>閉じられます。
</p>
</li>
<li class="listitem">
<p>
上記であなたがしたことを繰り返し、必要に応じて Debian <code class="filename">changelog</code> ファイルを
<code class="literal">dch</code> で更新しながら、更なるバグ修正を行います。
</p>
</li>
<li class="listitem">
<p>
<a class="xref" href="build.ja.html#completebuild" title="6.1. 完全な(再)ビルド">「完全な(再)ビルド」</a> と <a class="xref" href="checkit.ja.html" title="第7章 パッケージのエラーの検証">7章<em>パッケージのエラーの検証</em></a>
で行ったことを繰り返して下さい。
</p>
</li>
<li class="listitem">
<p>
一旦満足した時点で、<code class="filename">changelog</code> 中のディストリビューション値を
<code class="literal">UNRELEASED</code> からターゲットディストリビューション値
<code class="literal">unstable</code> (もしくは場合に依っては <code class="literal">experimental</code>)
へと変更すべきです。<a href="#ftn.idp44257216" class="footnote" id="idp44257216"><sup class="footnote">[79]</sup></a>
</p>
</li>
<li class="listitem">
<p>
<a class="xref" href="upload.ja.html" title="第9章 パッケージをアップロードする">9章<em>パッケージをアップロードする</em></a> と同様にパッケージをアップロードします。 今までと違うのは、今回の場合オリジナルソースアーカイブには
変更が無く、同じものが既に Debian アーカイブ中に存在しているため、
アップロードするファイルにはオリジナルのソースアーカイブが含まれないという点だけです。
</p>
</li>
</ul>
</div>
<p>
例えばオフィシャルのアーカイブへ
<code class="literal"><em class="replaceable"><code>1.0.1</code></em>-<em class="replaceable"><code>1</code></em></code>
のようなノーマルのバージョンをアップロードする前にパッケージングを色々試すべくローカルパッケージを作る時には要注意です。スムースなアップグレードのためには、<code class="literal"><em class="replaceable"><code>1.0.1</code></em>-<em class="replaceable"><code>1~rc1</code></em></code>
のような文字列のバージョンの項目を<code class="filename">changelog</code>
に作るのがいい考えです。オフィシャルパッケージのためには、そのようなローカル変更の複数項目を単一の項目にまとめて
<code class="filename">changelog</code> をすっきりさせてもいいです。バージョン文字列の順序に関しては <a class="xref" href="first.ja.html#namever" title="2.6. パッケージ名とバージョン">「パッケージ名とバージョン」</a> を参照下さい。
</p>
<p>
</p>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="inspectnewupstream"/>8.2. 新規のアップストリームリリースの検査</h2>
</div>
</div>
</div>
<p>
Debian アーカイブ用の新しいアップストリームリリースパッケージの準備をする際は、まず、新アップストリームリリースをチェックしなければなりません。
</p>
<p>
アップストリームの <code class="filename">changelog</code> や
<code class="filename">NEWS</code>、その他の新しいバージョンでリリースされたドキュメントを読むことから始めてください
</p>
<p>
以下のようにすれば何かおかしな事が無いかに注意を払いつつ新旧のアップストリームソース間の変更検査ができます:
</p>
<pre class="screen">
$ diff -urN <em class="replaceable"><code>foo</code></em>-<em class="replaceable"><code>oldversion</code></em> <em class="replaceable"><code>foo</code></em>-<em class="replaceable"><code>newversion</code></em>
</pre>
<p>
<code class="filename">missing</code> や <code class="filename">aclocal.m4</code> や
<code class="filename">config.guess</code> や <code class="filename">config.h.in</code> や
<code class="filename">config.sub</code> や <code class="filename">configure</code> や
<code class="filename">depcomp</code> や <code class="filename">install-sh</code> や
<code class="filename">ltmain.sh</code> や <code class="filename">Makefile.in</code> 等の
Autotools によって自動生成されるファイルへの変更は無視していい場合があります。ソースを検査するための
<span class="command"><strong>diff</strong></span> を実行する前に消去してもいいです。
</p>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="newupstream"/>8.3. アップストリームソフトウェアの新版更新</h2>
</div>
</div>
</div>
<p>
もし <code class="systemitem"><em class="replaceable"><code>foo</code></em></code>
パッケージが新規の <code class="literal">3.0 (native)</code> や <code class="literal">3.0 (quilt)</code>
フォーマットで適正にパッケージされていれば、新規のアップストリームバージョンをパッケージスリのは基本的に旧
<code class="filename">debian</code> ディレクトリーを新規ソースへと移動するのみです。これは新規に展開されたソース中で
<code class="literal">tar xvzf
/<em class="replaceable"><code>path</code></em>/<em class="replaceable"><code>to</code></em>/<em class="replaceable"><code>foo</code></em>_<em class="replaceable"><code>oldversion</code></em>.debian.tar.gz</code>
を実行すれば出来ます。<a href="#ftn.idp44284448" class="footnote" id="idp44284448"><sup class="footnote">[80]</sup></a>
もちろん当然するべき細々としたことをする必要はあります:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
アップストリームソースのコピーを
<code class="filename">foo_<em class="replaceable"><code>newversion</code></em>.orig.tar.gz</code>
ファイルとして作成します。
</p>
</li>
<li class="listitem">
<p>
Debian の <code class="filename">changelog</code> ファイルを <code class="literal">dch -v
<em class="replaceable"><code>newversion</code></em>-<em class="replaceable"><code>1</code></em></code>
を使って更新します。
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<code class="literal">New upstream release</code> という項目を追加します。
</p>
</li>
<li class="listitem">
<p>
報告のあったバグを修正する<span class="emphasis"><em>新規アップストリームリリース中の</em></span>変更点に関して簡潔に記載しバグを
<code class="literal">Closes: #<em class="replaceable"><code>バグ番号</code></em></code> と追記してクローズします。
</p>
</li>
<li class="listitem">
<p>
報告のあったバグを修正する、メンテナーによる<span class="emphasis"><em>新規アップストリームリリースへの</em></span>の変更点に関して簡潔に記載しバグを
<code class="literal">Closes: #<em class="replaceable"><code>バグ番号</code></em></code> と追記しクローズします。
</p>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p>
<code class="literal">while dquilt push; do dquilt refresh; done</code> として
<span class="emphasis"><em>fuzz</em></span> を削除しながら全てのパッチを適用します。
</p>
</li>
</ul>
</div>
<p>
もしパッチやマージがクリーンに適用できない場合は、状況を精査します (<code class="filename">.rej</code>
ファイル中にヒントがあります)。
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
もしソースにあなたが適用していたパッチがアップストリームソースに統合された場合は、
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<code class="literal">dquilt delete</code> として削除します。
</p>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p>
もしソースにあなたが適用していたパッチが新規アップストリームソースとぶつかる場合は、
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<code class="literal">dquilt push -f</code> として
<code class="filename"><em class="replaceable"><code>baz</code></em>.rej</code>
としてリジェクトを強制しながら古いパッチを適用します。
</p>
</li>
<li class="listitem">
<p>
<code class="filename"><em class="replaceable"><code>baz</code></em>.rej</code>
の本来目指した効果を実現するように、<code class="filename"><em class="replaceable"><code>baz</code></em></code>
ファイルを手動で編集します。
</p>
</li>
<li class="listitem">
<p>
<code class="literal">dquilt refresh</code> としてパッチを更新します。
</p>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p>
<code class="literal">while dquilt push; do dquilt refresh; done</code> まで戻り継続します。
</p>
</li>
</ul>
</div>
<p>
このプロセスは <span class="citerefentry"><span class="refentrytitle">uupdate</span>(1)</span> コマンドを以下のように使うことで自動化できます:
</p>
<pre class="screen">
$ apt-get source <em class="replaceable"><code>foo</code></em>
...
dpkg-source: info: extracting <em class="replaceable"><code>foo</code></em> in <em class="replaceable"><code>foo</code></em>-<em class="replaceable"><code>oldversion</code></em>
dpkg-source: info: unpacking <em class="replaceable"><code>foo</code></em>_<em class="replaceable"><code>oldversion</code></em>.orig.tar.gz
dpkg-source: info: applying <em class="replaceable"><code>foo</code></em>_<em class="replaceable"><code>oldversion</code></em>-1.debian.tar.gz
$ ls -F
<em class="replaceable"><code>foo</code></em>-<em class="replaceable"><code>oldversion</code></em>/
<em class="replaceable"><code>foo</code></em>_<em class="replaceable"><code>oldversion</code></em>-1.debian.tar.gz
<em class="replaceable"><code>foo</code></em>_<em class="replaceable"><code>oldversion</code></em>-1.dsc
<em class="replaceable"><code>foo</code></em>_<em class="replaceable"><code>oldversion</code></em>.orig.tar.gz
$ wget http://example.org/<em class="replaceable"><code>foo</code></em>/<em class="replaceable"><code>foo</code></em>-<em class="replaceable"><code>newversion</code></em>.tar.gz
$ cd <em class="replaceable"><code>foo</code></em>-<em class="replaceable"><code>oldversion</code></em>
$ uupdate -v <em class="replaceable"><code>newversion</code></em> ../<em class="replaceable"><code>foo</code></em>-<em class="replaceable"><code>newversion</code></em>.tar.gz
$ cd ../<em class="replaceable"><code>foo</code></em>-<em class="replaceable"><code>newversion</code></em>
$ while dquilt push; do dquilt refresh; done
$ dch
... document changes made
</pre>
<p>
<code class="filename">debian/watch</code> ファイルを<a class="xref" href="dother.ja.html#watch" title="5.22. watch">「<code class="filename">watch</code>」</a>
に記載されたように設定していれば、 <span class="command"><strong>wget</strong></span>
コマンドをスキップすることが出来ます。<code class="filename"><em class="replaceable"><code>foo</code></em>-<em class="replaceable"><code>oldversion</code></em></code>
ディレクトリー中で <span class="command"><strong>uupdate</strong></span> コマンドを実行する代わりに、単に <span class="citerefentry"><span class="refentrytitle">uscan</span>(1)</span>
コマンドを実行します。こうすると<span class="emphasis"><em>魔法のように</em></span>更新されたソースを見つけ、それをダウンロードし、<span class="command"><strong>uupdate</strong></span>
コマンドを実行します。<a href="#ftn.idp44333008" class="footnote" id="idp44333008"><sup class="footnote">[81]</sup></a>
</p>
<p>
今まで <a class="xref" href="build.ja.html#completebuild" title="6.1. 完全な(再)ビルド">「完全な(再)ビルド」</a> 、 <a class="xref" href="checkit.ja.html" title="第7章 パッケージのエラーの検証">7章<em>パッケージのエラーの検証</em></a> 、<a class="xref" href="upload.ja.html" title="第9章 パッケージをアップロードする">9章<em>パッケージをアップロードする</em></a> の中で実行してきたことを繰り返し、更新したソースをリリースできます。
</p>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="packagestyle"/>8.4. パッケージ化スタイルの更新</h2>
</div>
</div>
</div>
<p>
パッケージスタイルの更新はパッケージ更新のために必須活動ではありません。しかし、こうすることで最新の <code class="systemitem">debhelper</code> システムと <code class="literal">3.0</code>
ソースフォーマットの全能力を活用できます。<a href="#ftn.idp44341040" class="footnote" id="idp44341040"><sup class="footnote">[82]</sup></a>
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
もし何らかの理由で消去されたテンプレートファイルを追加する必要がある場合には、同一の Debian ソースツリーの中で
<code class="literal">--addmissing</code> オプションとともに <span class="command"><strong>dh_make</strong></span>
をもう一度実行してもいいです。そして、それらを適正に編集しましょう。
</p>
</li>
<li class="listitem">
<p>
<code class="filename">debian/rules</code> ファイルに関して <code class="systemitem">debhelper</code> v7+ <span class="command"><strong>dh</strong></span>
シンタックスへとパッケージが更新されていない場合は <span class="command"><strong>dh</strong></span>
を使うように更新しましょう。<code class="filename">debian/control</code> ファイルもそれに合わせて変更しましょう。
</p>
</li>
<li class="listitem">
<p>
コモン Debian ビルドシステム (<code class="systemitem">cdbs</code>) による
<code class="filename">Makefile</code> 包含メカニズムで生成された <code class="filename">rules</code> ファイルを
<span class="command"><strong>dh</strong></span> シンタックスに更新しようとする場合には、以下を参照し <code class="literal">DEB_*</code>
設定変数を理解して下さい。
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p><code class="filename">/usr/share/doc/cdbs/cdbs-doc.pdf.gz</code> のローカルコピー</p>
</li>
<li class="listitem">
<p>
<a class="ulink" href="http://meetings-archive.debian.net/pub/debian-meetings/2009/fosdem/slides/The_Common_Debian_Build_System_CDBS/">The Common Debian Build System (CDBS), FOSDEM
2009</a>
</p>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p>
<code class="filename"><em class="replaceable"><code>foo</code></em>.diff.gz</code> ファイル無しの
<code class="literal">1.0</code> ソースパッケージの場合、<code class="literal">3.0 (native)</code> と言う内容の
<code class="filename">debian/source/format</code> を作成することで新規の <code class="literal">3.0
(native)</code> ソースフォーマットに更新できます。残りの <code class="filename">debian/*</code>
ファイルは単にコピーするだけです。
</p>
</li>
<li class="listitem">
<p>
<code class="filename"><em class="replaceable"><code>foo</code></em>.diff.gz</code> ファイルありの
<code class="literal">1.0</code> ソースパッケージの場合、<code class="literal">3.0 (quilt)</code> と言う内容の
<code class="filename">debian/source/format</code> を作成することで新規の <code class="literal">3.0
(quilt)</code> ソースフォーマットに更新できます。残りの <code class="filename">debian/*</code>
ファイルは単にコピーするだけです。必要な場合、<code class="literal">filterdiff -z -x '*/debian/*'
<em class="replaceable"><code>foo</code></em>.diff.gz > big.diff</code> コマンドにより生成される
<code class="filename">big.diff</code> ファイルをあなたの <span class="command"><strong>quilt</strong></span>
システムにインポートします。<a href="#ftn.idp44365584" class="footnote" id="idp44365584"><sup class="footnote">[83]</sup></a>
</p>
</li>
<li class="listitem">
<p>
<code class="literal">-p0</code> や <code class="literal">-p1</code> や <code class="literal">-p2</code> を使う
<code class="systemitem">dpatch</code> や <code class="systemitem">dbs</code> や <code class="systemitem">cdbs</code> のような他のパッチシステムを用いてパッケージされ得ている場合には、<a class="ulink" href="http://bugs.debian.org/581186">http://bugs.debian.org/581186</a>にある <code class="filename">deb3</code> を用いて <code class="systemitem">quilt</code> コマンドに変換します。
</p>
</li>
<li class="listitem">
<p>
もし <code class="literal">--with quilt</code> オプション付きの <span class="command"><strong>dh</strong></span>
コマンドとか、<span class="command"><strong>dh_quilt_patch</strong></span> と
<span class="command"><strong>dh_quilt_unpatch</strong></span> コマンドを用いてパッケージされている場合には、これらを削除し新規の
<code class="literal">3.0 (quilt)</code> ソースフォーマットを使うようにします。
</p>
</li>
</ul>
</div>
<p>
<a class="ulink" href="http://dep.debian.net/">DEP - Debian エンハンスメント提案</a> を確認し、ACCEPTED (採用)
となった提案を取り入れるべきです。
</p>
<p>
<a class="xref" href="update.ja.html#newupstream" title="8.3. アップストリームソフトウェアの新版更新">「アップストリームソフトウェアの新版更新」</a> に記載された他の作業も行う必要があります。
</p>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="utf8"/>8.5. UTF-8 変換</h2>
</div>
</div>
</div>
<p>
アップストリームの文書が旧来のエンコーディング法にてエンコードされている場合には、それらを <a class="ulink" href="http://en.wikipedia.org/wiki/UTF-8">UTF-8</a> に変換するのはいいことです。
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<span class="citerefentry"><span class="refentrytitle">iconv</span>(1)</span> を使いプレインテキストのエンコーディングを変換します。
</p>
<pre class="screen">
iconv -f latin1 -t utf8 <em class="replaceable"><code>foo_in.txt</code></em> > <em class="replaceable"><code>foo_out.txt</code></em>
</pre>
</li>
<li class="listitem">
<p>
<span class="citerefentry"><span class="refentrytitle">w3m</span>(1)</span> を使用して HTML ファイルを UTF-8 のプレインテキストファイルに変換します。これを行う際には、必ず UTF-8
ロケールで実行して下さい。
</p>
<pre class="screen">
LC_ALL=en_US.UTF-8 w3m -o display_charset=UTF-8 \
-cols 70 -dump -no-graph -T text/html \
< <em class="replaceable"><code>foo_in.html</code></em> > <em class="replaceable"><code>foo_out.txt</code></em>
</pre>
</li>
</ul>
</div>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="reminders"/>8.6. パッケージをアップグレードする際の注意点</h2>
</div>
</div>
</div>
<p>
パッケージをアップグレードする際の注意点は以下です:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<code class="filename">changelog</code> の旧項目を保全します (自明ですが、<code class="literal">dch -i</code>
とするべき時に <code class="literal">dch</code> とした過去事例があります。)
</p>
</li>
<li class="listitem">
<p>
現存の Debian
による変更は再評価する必要があります。(何らかの形で)アップストリームが組み込んだことは捨て、アップストリームが組み込まなかったことは残しましょう。
</p>
</li>
<li class="listitem">
<p>
ビルドシステムに変更が加えられた場合には (アップストリームの変更を精査した際に分かっているはずですよね)、 必要に応じて
<code class="filename">debian/rules</code> と <code class="filename">debian/control</code>
のビルド依存関係を更新します。
</p>
</li>
<li class="listitem">
<p>
現存もオープンのバグへのパッチを誰かが提供していないかを、<a class="ulink" href="http://www.debian.org/Bugs/">Debian Bug Tracking System
(BTS)</a> で確認します。
</p>
</li>
<li class="listitem">
<p>
正しいディストリビューションへアップロードすること、 <code class="literal">Closes</code>
フィールドに適切なバグのクローズがリストされていること、<code class="literal">Maintainer</code> と
<code class="literal">Changed-By</code> フィールドがマッチしていること、ファイルが GPG
署名されていること等を確実にするように、<code class="filename">.changes</code> ファイルの内容を確認します。
</p>
</li>
</ul>
</div>
</div>
<div class="footnotes">
<br/>
<hr/>
<div id="ftn.idp44246816" class="footnote">
<p><a href="#idp44246816" class="para"><sup class="para">[78] </sup></a>日付を要求されるフォーマットで入力するには、<code class="literal">LANG=C date -R</code>を使います。
</p>
</div>
<div id="ftn.idp44257216" class="footnote">
<p><a href="#idp44257216" class="para"><sup class="para">[79] </sup></a>もし <code class="literal">dch -r</code> コマンドを使ってこの最終変更をする場合には、エディターにより
<code class="filename">changelog</code> ファイルを明示的に保存して下さい。</p>
</div>
<div id="ftn.idp44284448" class="footnote">
<p><a href="#idp44284448" class="para"><sup class="para">[80] </sup></a> もしパッケージ <code class="systemitem"><em class="replaceable"><code>foo</code></em></code> が旧
<code class="literal">1.0</code> フォーマットでパッケージされている場合は、新規に展開されたソース中で <code class="literal">zcat
/<em class="replaceable"><code>path</code></em>/<em class="replaceable"><code>to</code></em>/<em class="replaceable"><code>foo</code></em>_<em class="replaceable"><code>oldversion</code></em>.diff.gz|patch
-p1</code> を実行すれば出来ます。 </p>
</div>
<div id="ftn.idp44333008" class="footnote">
<p><a href="#idp44333008" class="para"><sup class="para">[81] </sup></a> もし <span class="command"><strong>uscan</strong></span> コマンドが更新されたソースはダウンロードするが
<span class="command"><strong>uupdate</strong></span> コマンドを実行しない場合には、URLの最後に <code class="literal">debian
uupdate</code> となるように <code class="filename">debian/watch</code> ファイルを修正するべきです。 </p>
</div>
<div id="ftn.idp44341040" class="footnote">
<p><a href="#idp44341040" class="para"><sup class="para">[82] </sup></a> もしあなたのスポンサーや他のメンテナーが既存のパッケージスタイル更新に異存がある場合には、更新することもまたその議論することは意味がありません。他にするべきより重要なことがあります。 </p>
</div>
<div id="ftn.idp44365584" class="footnote">
<p><a href="#idp44365584" class="para"><sup class="para">[83] </sup></a>
<span class="command"><strong>splitdiff</strong></span> コマンドを用いると <code class="filename">big.diff</code>
は多くの小さな増分パッチに分割できます。 </p>
</div>
</div>
</div>
<div class="navfooter">
<hr/>
<table width="100%" summary="Navigation footer">
<tr>
<td align="left"><a accesskey="p" href="checkit.ja.html"><img src="images/prev.png" alt="戻る"/></a> </td>
<td align="center"> </td>
<td align="right"> <a accesskey="n" href="upload.ja.html"><img src="images/next.png" alt="次へ"/></a></td>
</tr>
<tr>
<td align="left" valign="top">第7章 パッケージのエラーの検証 </td>
<td align="center">
<a accesskey="h" href="index.ja.html">
<img src="images/home.png" alt="ホーム"/>
</a>
</td>
<td align="right" valign="top"> 第9章 パッケージをアップロードする</td>
</tr>
</table>
</div>
</body>
</html>
|