Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

[インデックス 12130] ファイルの概要

このコミットは、Go言語のWindows向けディストリビューションパッケージにおける、アイコンの修正、ファイル拡張子の変更、およびインストーラー設定ファイルの微調整を目的としています。具体的には、Gopherアイコンの修正とファイルサイズの削減、ライセンスファイルとREADMEファイルの拡張子を適切なものに変更、そしてWiX Toolsetで記述されたインストーラー設定ファイル(.wxs)のフォーマットと参照パスの更新が含まれます。

コミット

commit fe5b4a2f9be7f87b1b44cd172b4403e95c5bf00d
Author: Joe Poirier <jdpoirier@gmail.com>
Date:   Tue Feb 21 22:15:03 2012 -0600

    misc/dist/windows: fix broken icon, other misc
    
    fix, and shrink, the gopher icon, txt extensions
    for license and readme files, minor format changes
    in the wxs file
    
    R=golang-dev, rsc
    CC=golang-dev
    https://golang.org/cl/5683054

GitHub上でのコミットページへのリンク

https://github.com/golang/go/commit/fe5b4a2f9be7f87b1b44cd172b4403e95c5bf00d

元コミット内容

misc/dist/windows: fix broken icon, other misc

fix, and shrink, the gopher icon, txt extensions
for license and readme files, minor format changes
in the wxs file

変更の背景

このコミットの背景には、Go言語のWindows向けディストリビューションパッケージの品質向上とユーザビリティの改善があります。具体的には以下の問題に対処しています。

  1. Gopherアイコンの不具合と最適化: Windowsインストーラーで使用されるGopherアイコンが正しく表示されない、またはファイルサイズが大きいといった問題があった可能性があります。これを修正し、ファイルサイズを削減することで、インストーラーの効率化と視覚的な整合性を図っています。
  2. ファイル拡張子の標準化: LICENSEREADMEといったファイルが、Windows環境で適切に認識されるように、標準的な拡張子(.rtf.txt)を付与する必要がありました。これにより、ユーザーがこれらのファイルをダブルクリックした際に、適切なアプリケーションで開かれることを保証します。
  3. インストーラー設定の調整: WiX Toolsetで作成されたインストーラー設定ファイル(.wxs)において、参照パスの修正やフォーマットの微調整が必要でした。これは、上記のファイル名変更に対応するため、またはインストーラーの動作をより堅牢にするための変更と考えられます。

これらの変更は、Go言語をWindows環境にインストールする際のユーザーエクスペリエンスを向上させ、インストーラーの信頼性を高めることを目的としています。

前提知識の解説

このコミットを理解するためには、以下の技術的知識が役立ちます。

  • Go (Golang): Googleによって開発されたオープンソースのプログラミング言語です。シンプルさ、効率性、並行処理のサポートが特徴で、システムプログラミングからWebアプリケーション開発まで幅広く利用されています。
  • Windows Installer (MSI): Microsoftが提供するWindowsアプリケーションのインストール、メンテナンス、削除を行うためのフレームワークです。.msiファイルは、Windows Installerサービスによって実行されるデータベースファイルであり、アプリケーションのインストールに必要なすべての情報(ファイル、レジストリキー、ショートカットなど)を含んでいます。
  • WiX Toolset (Windows Installer XML Toolset): Windows Installerパッケージ(MSI)をXMLソースコードから構築するためのオープンソースツールセットです。開発者はXMLファイル(.wxs)を記述することで、インストーラーの動作、ファイル配置、レジストリ設定などを詳細に制御できます。これにより、インストーラーのバージョン管理や自動生成が容易になります。
  • RTF (Rich Text Format): Microsoftが開発したドキュメントファイル形式です。テキストの書式設定(フォント、サイズ、色、太字、斜体など)や画像の埋め込みをサポートしており、異なるアプリケーションやオペレーティングシステム間でドキュメントを交換する際に利用されます。Windows環境では、WordPadなどのアプリケーションでデフォルトで開かれることが多いです。
  • ICO (Windows Icon Format): Windowsオペレーティングシステムで使用されるアイコンファイル形式です。複数の画像サイズと色深度の画像を1つのファイル内に格納でき、アプリケーションの実行ファイルやショートカット、フォルダーなどに表示されるアイコンとして利用されます。
  • テキストファイル (.txt): 最も基本的なプレーンテキストファイル形式です。書式設定情報を含まず、文字データのみを格納します。Windows環境ではメモ帳などのテキストエディタで開かれます。

技術的詳細

このコミットは、Go言語のWindows向けディストリビューションパッケージの構成要素に複数の変更を加えています。

  1. ファイル名の変更と拡張子の付与:
    • misc/dist/windows/LICENSEmisc/dist/windows/LICENSE.rtf に変更されました。これは、ライセンスファイルにRTF形式の書式設定が適用されていることを明示し、Windows環境で適切に表示されるようにするためです。
    • misc/dist/windows/READMEmisc/dist/windows/README.txt に変更されました。これは、READMEファイルがプレーンテキストであることを明確にし、一般的なテキストエディタで開かれることを意図しています。
  2. Gopherアイコンの更新:
    • misc/dist/windows/images/gopher.ico ファイルが更新されました。コミットメッセージによると、「fix, and shrink」とあるため、アイコンの表示上の不具合が修正され、ファイルサイズが42929バイトから22486バイトへと約半分に削減されています。これは、インストーラーのサイズを最適化し、ロード時間を短縮する効果があります。
  3. WiXインストーラー設定ファイル (installer.wxs) の変更:
    • このファイルは、Go言語のWindowsインストーラーの挙動を定義するXMLファイルです。
    • フォーマットの微調整: Property要素のインデントや改行が調整されています。これは機能的な変更ではなく、コードの可読性向上を目的としたものです。
    • ライセンスファイル参照の更新: 最も重要な変更点の一つは、WixVariable Id="WixUILicenseRtf"ValueLICENSE から LICENSE.rtf に変更されたことです。これにより、WiXベースのインストーラーがライセンス表示画面で正しいファイル(LICENSE.rtf)を参照し、ユーザーにライセンス条項を適切に提示できるようになります。

これらの変更は、Go言語のWindowsインストーラーがより堅牢で、標準的なWindowsの慣習に沿ったものになるように設計されています。特に、ファイル拡張子の変更とWiX設定の更新は、インストーラーが依存するファイルパスの整合性を保つ上で不可欠です。

コアとなるコードの変更箇所

このコミットにおけるコアとなるコードの変更箇所は、主に以下のファイルと行に集約されます。

  1. ファイル名の変更:
    • misc/dist/windows/LICENSE から misc/dist/windows/LICENSE.rtf へのリネーム
    • misc/dist/windows/README から misc/dist/windows/README.txt へのリネーム
  2. misc/dist/windows/README.txt の内容変更:
    --- a/misc/dist/windows/README
    +++ b/misc/dist/windows/README.txt
    @@ -11,19 +11,17 @@ Dependencies
     Packaging
     =========
     The dependencies must be callable from dist.bat, therefore,
    -they\'ll need to be in/added to the system\'s search PATH.
    +they\'ll need to be in/added to the system\'s search PATH. 
     
     The packaging needs to be done from within a tracked Go folder. 
     Packages are built by cloning the same version of the source tree
     that the Go tools were built from.
     
    -To create an i386 distribution package on a 64 bit system, set
    -GOARCH=386 prior to calling dist.bat.
    -
     Run dist.bat from a command prompt or click on the batch file.
     
     TODO
    -----
    +----
    +- Write a Go program for dist.bat functionality
     - Documentation server shortcut checkbox option
     
     Misc
    
    • GOARCH=386に関する記述が削除され、TODOリストのフォーマットが変更されています。
  3. misc/dist/windows/images/gopher.ico のバイナリ変更:
    • ファイルサイズが42929バイトから22486バイトに減少しています。
  4. misc/dist/windows/installer.wxs の変更:
    --- a/misc/dist/windows/installer.wxs
    +++ b/misc/dist/windows/installer.wxs
    @@ -36,11 +36,11 @@
         Languages="1033" />
         <!--    Platform="x86 or x64" -->
     
    -<Property Id="ARPCOMMENTS" Value="The Go programming language is a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language." />
    -<Property Id="ARPCONTACT" Value="golang-nuts@googlegroups.com" />
    -<Property Id="ARPHELPLINK" Value="golang.org/doc/community.html" />
    -<Property Id="ARPREADME" Value="golang.org" />
    -<Property Id="ARPURLINFOABOUT" Value="golang.org" />
    +<Property Id="ARPCOMMENTS" Value="The Go programming language is a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language." />
    +<Property Id="ARPCONTACT" Value="golang-nuts@googlegroups.com" />
    +<Property Id="ARPHELPLINK" Value="golang.org/doc/community.html" />
    +<Property Id="ARPREADME" Value="golang.org" />
    +<Property Id="ARPURLINFOABOUT" Value="golang.org" />
     <Icon Id="gopher.ico" SourceFile="images\gopher.ico"/>
     <Property Id="ARPPRODUCTICON" Value="gopher.ico" />
     <Media Id='1' Cabinet="go.cab" EmbedCab="yes" CompressionLevel="high" />
    @@ -114,10 +114,10 @@
             Key="Software\GoProgrammingLanguage"
             Action="create" >
                 <RegistryValue
    -        Name="installed"
    -        Type="integer"
    -        Value="1"
    -        KeyPath="yes" />
    +                Name="installed"
    +                Type="integer"
    +                Value="1"
    +                KeyPath="yes" />
                 <RegistryValue
                     Name="installLocation"
                     Type="string"
    @@ -144,7 +144,6 @@
         Id="GoTools"
         Title="Go"
         Level="1">
    -
           <ComponentRef Id="Component_GoEnvironment" />
           <ComponentGroupRef Id="AppFiles" />
           <ComponentRef Id="Component_GoShortCuts" />
    @@ -156,5 +155,5 @@
     </InstallExecuteSequence>
     
     <!-- Include the user interface -->
    -<WixVariable Id="WixUILicenseRtf" Value="LICENSE" />
    +<WixVariable Id="WixUILicenseRtf" Value="LICENSE.rtf" />
     <WixVariable Id="WixUIBannerBmp" Value="images\Banner.jpg" />
     <WixVariable Id="WixUIDialogBmp" Value="images\Dialog.jpg" />
     <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
    
    • Property要素とRegistryValue要素のインデントが変更されています。
    • WixVariable Id="WixUILicenseRtf"ValueLICENSE から LICENSE.rtf に変更されています。

コアとなるコードの解説

このコミットの核となる変更は、Go言語のWindowsインストーラーの整合性とユーザビリティを向上させるためのものです。

  1. ファイル拡張子の変更 (LICENSE -> LICENSE.rtf, README -> README.txt):
    • これは、Windows環境におけるファイルの標準的な慣習に合わせるための重要な変更です。拡張子がないファイルは、オペレーティングシステムがその内容を正しく解釈し、適切なアプリケーションで開くことが困難になる場合があります。
    • LICENSE.rtfへの変更は、ライセンスファイルがリッチテキスト形式であり、書式設定情報を含んでいることを示唆しています。これにより、インストーラーのライセンス表示画面や、インストール後にユーザーが直接ファイルを開いた際に、意図した通りのレイアウトで表示されることが保証されます。
    • README.txtへの変更は、READMEファイルがプレーンテキストであり、特別な書式設定を必要としないことを明確にします。
  2. Gopherアイコンの更新 (gopher.ico):
    • アイコンの「fix」は、以前のアイコンに表示上の問題(例えば、特定の解像度でぼやける、透明度が正しくないなど)があった可能性を示唆しています。
    • アイコンの「shrink」は、ファイルサイズを削減することで、インストーラー全体のサイズを小さくし、ダウンロード時間やインストール時間を短縮する効果があります。これは、特にインターネット接続が遅い環境のユーザーにとって有益です。
  3. WiXインストーラー設定ファイル (installer.wxs) の変更:
    • installer.wxsは、WiX Toolsetを使用してWindowsインストーラーを構築するための設計図です。このファイル内の変更は、インストーラーの動作に直接影響を与えます。
    • フォーマットの変更: XMLのインデントや改行の調整は、コードの可読性を高め、将来のメンテナンスを容易にするための一般的なプラクティスです。機能的な影響はありませんが、開発プロセスにおける品質向上に寄与します。
    • WixUILicenseRtf変数の更新: この変更は、インストーラーのライセンス表示画面が、新しいファイル名であるLICENSE.rtfを正しく参照するようにするために不可欠です。もしこの変更が行われていなければ、インストーラーはライセンスファイルを見つけられず、エラーが発生するか、ライセンスが表示されないといった問題が生じる可能性がありました。これは、ユーザーがGo言語のライセンス条項を確認する上で非常に重要な修正です。

これらの変更は、Go言語のWindowsディストリビューションの堅牢性、互換性、およびユーザーエクスペリエンスを向上させるための、細部にわたる配慮を示しています。

関連リンク

参考にした情報源リンク