Mercurial(hg) を利用して OpenSolaris のソースを取得

OpenSolaris のソースを Mercurial(hg)を利用して opensolaris.org と同期します。 ここでは、Solaris 10 x86 上に構築します。


Mercurial は Python で記述されているので、Python をインストールしておく必要があります。 Solaris 10 用の Python は http://www.sunfreeware.com/ から入手しインストールするとよいでしょう。ソースから作成する場合も、Python 2.5 であれば Solaris 10 にインストールするのは簡単です(ncurses ライブラリはあらかじめインストールしてき、./configure; make で...)。

* Mercurial の入手とインストール

http://www.selenic.com/mercurial/wiki/index.cgi/Download/

業は スーパーユーザー(root) で行ってください。

    # gzip -dc mercurial-stable-snapshot.tar.gz | tar xf -
    # cd mercurial-<version>
    # python setup.py install --force

* opensolaris.org へユーザー登録し、公開キーを登録してアクセス権を得る

公開キーは、OpenSSH を利用して作成します。Solaris 10 には、OpenSSHがインストールされているため ssh-keygen コマンドを利用してキーを作成します。ここでは、ソース管理用アカウント srcadmin を用意してあるとします。

    srcadmin$ ssh-keygen -b 1024 -t dsa
    公開/非公開 dsa 鍵のペアを生成しています。
    鍵を保存するファイルを入力してください (/home/srcadmin/.ssh/id_dsa): <Enter>
    ディレクトリ '/home/srcadmin/.ssh' を作成しました。
    パスフレーズを入力してください (パスフレーズなしの場合は空): <パスフレーズ>
    パスフレーズをもう一度入力してください: <パスフレーズ>
    識別情報が /home/srcadmin/.ssh/id_dsa に保存されました。
    公開鍵が /home/srcadmin/.ssh/id_dsa.pub に保存されました。
    鍵のフィンガープリント:
    83:c5:22:8a:9c:d9:f4:1a:20:f0:65:e9:ad:28:6a:a1 srcadmin@example.com
    srcadmin$ 

ここで作成した公開キー /home/srcadmin/.ssh/id_dsa.pub を OpenSolaris.org に登録します。

OpenSolaris.org のサイトへアクセスして、 アカウントを作成し Mercurial でのアクセス許可設定を行います。

opensolaris.org

アカウントを作成していなければ、register からアカウントを作成、アカウントを持っていれば Sign in からログインします。

login

自分のアカウント名をクリックし、update profile をクリックして作成した公開キーを登録します。SSH Authorized Keys のセクションに移動し、TypeDSA にして Key の欄に /home/srcadmin/.ssh/id_dsa.pub の内容を貼り付け "Save" ボタンを押して保存します。

public key

* ソース入手

ソースツリーを作成したいディレクトリを作成し、Mercurial(hg)を利用して最新のソースを入手します。

ソースツリーの初期化

    srcadmin$ mkdir -p /usr/local/src/solaris
    srcadmin$ cd /usr/local/src/solaris
    srcadmin$ hg clone ssh://anon@hg.opensolaris.org/hg/onnv/onnv-gate
    destination directory: onnv-gate
    requesting all changes
    adding changesets
    adding manifests
    adding file changes
    added 3460 changesets with 67162 changes to 43027 files
    39682 files updated, 0 files merged, 0 files removed, 0 files unresolved
    srcadmin$ 

アップデート方法

    srcadmin$ cd onnv-gate
    srcadmin$ hg pull
    pulling from ssh://anon@hg.opensolaris.org/hg/onnv/onnv-gate
    searching for changes
    adding changesets
    adding manifests
    adding file changes
    added 112 changesets with 1962 changes to 1779 files
    (run 'hg update' to get a working copy)
    srcadmin$ hg update
    1771 files updated, 0 files merged, 350 files removed, 0 files unresolved
    srcadmin$ ls -l usr/src
    合計 394
    -rw-rw-r--   1 srcadmin staff      12561  2月  3日  14:42 Makefile
    -rw-rw-r--   1 srcadmin staff       7672  2月  3日  14:42 Makefile.lint
    -rw-rw-r--   1 srcadmin staff      31124  2月  3日  14:42 Makefile.master
    -rw-rw-r--   1 srcadmin staff       2325  1月 13日  12:30 Makefile.master.64
    -rw-rw-r--   1 srcadmin staff       2295  1月 13日  12:30 Makefile.msg.targ
    -rw-rw-r--   1 srcadmin staff       4179  1月 13日  12:30 Makefile.noget
    -rw-rw-r--   1 srcadmin staff       8881  2月  3日  14:42 Makefile.psm
    -rw-rw-r--   1 srcadmin staff       5446  2月  3日  14:42 Makefile.psm.targ
    -rw-rw-r--   1 srcadmin staff      18924  1月 13日  12:30 OPENSOLARIS.LICENSE
    -rw-rw-r--   1 srcadmin staff      65171  2月  3日  14:42 Targetdirs
    drwxrwxr-x 412 srcadmin staff       7168  2月  3日  14:42 cmd/
    drwxrwxr-x  27 srcadmin staff        512  1月 13日  12:32 common/
    drwxrwxr-x   4 srcadmin staff        512  1月 13日  12:32 grub/
    drwxrwxr-x   9 srcadmin staff       3584  2月  3日  14:42 head/
    drwxrwxr-x 169 srcadmin staff       3584  2月  3日  14:42 lib/
    drwxrwxr-x 383 srcadmin staff       8192  2月  3日  14:42 pkgdefs/
    drwxrwxr-x   2 srcadmin staff        512  1月 13日  12:34 prototypes/
    drwxrwxr-x   4 srcadmin staff        512  1月 13日  12:34 psm/
    -rw-rw-r--   1 srcadmin staff       1729  1月 13日  12:34 req.flg
    drwxrwxr-x   4 srcadmin staff        512  1月 13日  12:34 stand/
    drwxrwxr-x  26 srcadmin staff       1024  2月  3日  14:42 tools/
    drwxrwxr-x  39 srcadmin staff       1024  1月 13日  12:34 ucbcmd/
    drwxrwxr-x   4 srcadmin staff        512  1月 13日  12:34 ucbhead/
    drwxrwxr-x   7 srcadmin staff        512  1月 13日  12:34 ucblib/
    drwxrwxr-x  11 srcadmin staff        512  1月 13日  12:35 uts/
    drwxrwxr-x   2 srcadmin staff        512  1月 13日  12:35 xmod/
    srcadmin$