Open-usp-Tukubaiの「Makefile」を変更してみる。

■Open-usp-Tukubaiの「Makefile」を変更してみる。
 対象の「Makefile」は綺麗に書かれているので、修正しやすい。

 以下で問題無いようなので、Debianメンテナガイドに沿って、「/opt/usp」のみにした。

 Open usp Tukubaiをdebパッケージにして使う方法
 http://d.hatena.ne.jp/labunix/20121208

■「/usr/local」は、新、旧共に、
 Debian 上ではこれはシステム管理者 (もしくはユーザー) の個人用に予約されている為、
 「/usr/local/bin」バージョンは不要とする。

 第3章 ソースコードの変更
 http://www.debian.org/doc/manuals/maint-guide/modify.ja.html

 Debian 新メンテナガイド 
 第 3 章 - ソースコードの変更
 ftp://ftp2.piotrkosoft.net/pub/mirrors/debian-www/doc/maint-guide/ch-modify.ja.html

■まずは、debianを最新に。。。

$ sudo apt-get update
$ sudo apt-get upgrade

■「pull request」は2回目なので、前回の分は念の為バックアップして再cloneする。

$ mv Open-usp-Tukubai/ Open-usp-Tukubai.fork1
$ git clone https://github.com/usp-engineers-community/Open-usp-Tukubai.git

■「usp.sh」を変更。これは私が作ったので、リポジトリのdiffだけで充分かと。。。

 1.デフォルトの「/usr/local/bin」の場合は「INSTALL_PATH」が見つからないので何もしない。
 2.「/opt/usp」の場合は「INSTALL_PATH」が見つかるので、パスを通す。
 3.インストール先を変更した場合は、「INSTALL_PATH」を変更すればよい。

$ cat labunix.usp.sh | tee Open-usp-Tukubai/deb/usp.sh
#!/bin/bash

INSTALL_PATH=/opt/usp/bin

if [ -d "$INSTALL_PATH" ];then
  echo $PATH | grep "$INSTALL_PATH" || export PATH=$PATH:$INSTALL_PATH
  # echo $PATH | grep "$INSTALL_PATH" || export $INSTALL_PATH:PATH=$PATH
fi

■Makefileをオリジナルからコピーしてdiffで確認。
 「/usr/local」から、「/opt/usp」に変更して、
 「/etc/profile.d/usp.sh」のコピーと削除を追加。
 一応forループするようになっているが、実際には不要。
 増える予定も無いので、本家に取り込む予定があるなら要修正。

$ cp Open-usp-Tukubai/Makefile Makefile.org
$ cp Makefile.org labunix.Makefile

$ diff labunix.Makefile Open-usp-Tukubai/Makefile
25c25
< LOCALBASE?=   /opt/usp
---
> LOCALBASE?=   /usr/local
33d32
< PROFILEDIR=   /etc/profile.d
62d60
< PROFILE=      usp.sh
68d65
< CP?=          /bin/cp -f
84,89d80
<       ${MKDIR} ${PROFILEDIR}
<       @for i in ${PROFILE}; \
<       do \
<               echo ${CP} deb/$${i} ${PROFILEDIR}; \
<               ${CP} deb/$${i} ${PROFILEDIR}; \
<       done
128,132d118
<       done
<       @for i in ${PROFILE}; \
<       do \
<               echo ${RM} ${PROFILEDIR}/$${i}; \
<               ${RM} ${PROFILEDIR}/$${i};

■Makefileを上書きして「checkinstall」

$ cp labunix.Makefile Open-usp-Tukubai/Makefile
$ cd Open-usp-Tukubai
$ sudo checkinstall
$ ls -l /etc/profile.d/[ub]*
-rw-r--r-- 1 root root 454 2010-11-16 17:08 /etc/profile.d/bash_completion.sh
-rw-r--r-- 1 root root 186 2013-01-02 21:23 /etc/profile.d/usp.sh

■「/etc/profile.d/usp.sh」を実行しただけだと反映されないので、
 ログインしなおす。

$ delf -v
-bash: delf: コマンドが見つかりません
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
$ /bin/bash -x /etc/profile.d/usp.sh
+ INSTALL_PATH=/opt/usp/bin
+ '[' -d /opt/usp/bin ']'
+ grep /opt/usp/bin
+ echo /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
+ export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/usp/bin
+ PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/usp/bin

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
$ delf -v
-bash: delf: コマンドが見つかりません

■ログインしなおした後。

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/usp/bin
$ delf -v
Usage    : delf <f1> <f2> ... [file]
Version  : Sat Mar 10 17:18:43 JST 2012
           Open usp Tukubai (LINUX+FREEBSD/PYTHON2.4/UTF-8)

■アンインストール「-r」だとプロファイルは設定ファイルと認識されて残る。
 「--purge」すると、「rc」フラグも無くなり、設定ファイルも削除される。

$ dpkg -L open-usp | grep etc
/etc
/etc/profile.d
/etc/profile.d/usp.sh

$ sudo dpkg -r open-usp
$ ls /etc/profile.d/usp.sh
/etc/profile.d/usp.sh
$ dpkg -l open-usp | grep ^rc | sed s/"  *"/","/g
rc,open-usp,Tukubai-3,Package,created,with,checkinstall,1.6.2
$ sudo dpkg --purge open-usp
open-usp を削除しています ...
open-usp の設定ファイルを削除しています ...
dpkg: 警告: open-usp: 設定ファイル '/etc/profile.d' がプレーンファイルでもシンボリックリンク (= '/etc/profile.d') でもありません
$ ls -l /etc/profile.d/[bu]*
-rw-r--r-- 1 root root 454 2010-11-16 17:08 /etc/profile.d/bash_completion.sh
$ dpkg -l | grep open-usp | wc -l
0

■本家のリポジトリを綺麗な状態にします。

$ mv deb ../labunix.deb
$ sudo rm -fr Open-usp-Tukubai
$ git clone https://github.com/usp-engineers-community/Open-usp-Tukubai.git
$ rm -fr Open-usp-Tukubai/deb/
$ mv labunix.deb Open-usp-Tukubai/deb
$ ls Open-usp-Tukubai/deb/
README  labunix.Makefile  open-usp_Tukubai-3_amd64.deb  usp.sh

■i386環境で上記の手順でパッケージを作成、コピーします。

$ ls Open-usp-Tukubai/deb/
README            open-usp_Tukubai-3_amd64.deb  usp.sh
labunix.Makefile  open-usp_Tukubai-3_i386.deb

■「pull request」手順は以下をそのまま。

 GitHubへpull requestする際のベストプラクティス
 http://d.hatena.ne.jp/hnw/20110528

■自分が前回フォークした分を取り込んで、
 フォーク元をupstreamに登録、差分を埋める。

$ mkdir fork
$ git clone git@github.com:labunix/Open-usp-Tukubai.git
$ cd Open-usp-Tukubai/
$ git remote add upstream https://github.com/usp-engineers-community/Open-usp-Tukubai.git
$ git stash
No local changes to save
$ git checkout master
Already on 'master'

$ git pull upstream master
remote: Counting objects: 164, done.
remote: Compressing objects: 100% (58/58), done.
remote: Total 114 (delta 79), reused 89 (delta 54)
Receiving objects: 100% (114/114), 1.26 MiB | 400 KiB/s, done.
Resolving deltas: 100% (79/79), completed with 28 local objects.
From https://github.com/usp-engineers-community/Open-usp-Tukubai
 * branch            master     -> FETCH_HEAD
Updating 10899cd..713ab89
Fast-forward
 COMMANDS.HS/.gitignore                    |    2 +
 COMMANDS.HS/:w                            |   89 ----------
 COMMANDS.HS/delf                          |  Bin 1333893 -> 1363111 bytes
 COMMANDS.HS/delf.hi                       |  Bin 1384 -> 0 bytes
 COMMANDS.HS/delf.o                        |  Bin 28968 -> 0 bytes
 COMMANDS.HS/gyo                           |  Bin 1135601 -> 1166448 bytes
 COMMANDS.HS/gyo.hi                        |  Bin 1080 -> 0 bytes
 COMMANDS.HS/gyo.o                         |  Bin 17088 -> 0 bytes
 COMMANDS.HS/retu                          |  Bin 1162091 -> 1194982 bytes
 COMMANDS.HS/retu.hi                       |  Bin 1210 -> 0 bytes
 COMMANDS.HS/retu.o                        |  Bin 24064 -> 0 bytes
 COMMANDS.HS/self                          |  Bin 1340659 -> 1373621 bytes
 COMMANDS.HS/self.hi                       |  Bin 1341 -> 0 bytes
 COMMANDS.HS/self.o                        |  Bin 35720 -> 0 bytes
 COMMANDS.SH/cgi-name                      |   66 +++++---
 COMMANDS.SH/cjoin0                        |   63 ++++----
 COMMANDS.SH/cjoin1                        |   63 ++++----
 COMMANDS.SH/delf                          |  266 +++++++++++++++++++++++++++++
 COMMANDS.SH/filehame                      |  114 ++++++++++++
 COMMANDS.SH/gyo                           |   32 ++--
 COMMANDS.SH/keta                          |   34 +++--
 COMMANDS.SH/nameread                      |   25 ++-
 COMMANDS.SH/plus                          |   42 +++++
 COMMANDS.SH/retu                          |   41 ++---
 COMMANDS.SH/self                          |   53 ++++---
 COMMANDS.SH/sm2                           |   55 +++----
 COMMANDS.SH/tateyoko                      |   18 +-
 COMMANDS.SH/ycat                          |  100 ++++++------
 COMMANDS/self                             |   12 +-
 MANUAL/cjoin2.txt                         |    2 +-
 MANUAL/self.txt                           |    2 +-
 TEST/cgi-name.test                        |   43 +++++
 TEST/cjoin1.test                          |   10 +-
 TEST/delf.test                            |   75 ++++++++
 TEST/keta.test                            |   51 ++++++
 TEST/plus.test                            |   34 ++++
 TEST/regress.all                          |   28 +++-
 TEST/self.test                            |   21 +++-
 TEST/sm2.test                             |   67 +++++++
 TEST/tateyoko.test                        |   51 ++++++
 TEST/ycat.test                            |   53 ++++++
 TODO                                      |    5 +
 deb/README                                |   16 ++
 deb/open-usp-tukubai_20120802-1_amd64.deb |  Bin 0 -> 1097048 bytes
 deb/open-usp-tukubai_20120802-1_i386.deb  |  Bin 0 -> 1099268 bytes
 deb/open-usp-tukubai_20120802-2_amd64.deb |  Bin 0 -> 1094488 bytes
 deb/open-usp-tukubai_20120802-2_i386.deb  |  Bin 0 -> 1099376 bytes
 deb/usp.sh                                |    6 +
 48 files changed, 1181 insertions(+), 358 deletions(-)
 create mode 100644 COMMANDS.HS/.gitignore
 delete mode 100644 COMMANDS.HS/:w
 delete mode 100644 COMMANDS.HS/delf.hi
 delete mode 100644 COMMANDS.HS/delf.o
 delete mode 100644 COMMANDS.HS/gyo.hi
 delete mode 100644 COMMANDS.HS/gyo.o
 delete mode 100644 COMMANDS.HS/retu.hi
 delete mode 100644 COMMANDS.HS/retu.o
 delete mode 100644 COMMANDS.HS/self.hi
 delete mode 100644 COMMANDS.HS/self.o
 create mode 100755 COMMANDS.SH/delf
 create mode 100755 COMMANDS.SH/filehame
 create mode 100755 COMMANDS.SH/plus
 create mode 100755 TEST/cgi-name.test
 create mode 100755 TEST/delf.test
 create mode 100755 TEST/keta.test
 create mode 100755 TEST/plus.test
 create mode 100755 TEST/sm2.test
 create mode 100755 TEST/tateyoko.test
 create mode 100755 TEST/ycat.test
 create mode 100644 deb/README
 create mode 100644 deb/open-usp-tukubai_20120802-1_amd64.deb
 create mode 100644 deb/open-usp-tukubai_20120802-1_i386.deb
 create mode 100644 deb/open-usp-tukubai_20120802-2_amd64.deb
 create mode 100644 deb/open-usp-tukubai_20120802-2_i386.deb
 create mode 100644 deb/usp.sh

■自分の作業ブランチに移動。

$ git checkout myFeature
Branch myFeature set up to track remote branch myFeature from origin.
Switched to a new branch 'myFeature'

$ git rebase master myFeature
First, rewinding head to replay your work on top of it...
Fast-forwarded myFeature to master.

$ git push -f origin myFeature
Counting objects: 164, done.
Compressing objects: 100% (33/33), done.
Writing objects: 100% (114/114), 1.26 MiB, done.
Total 114 (delta 79), reused 114 (delta 79)
To git@github.com:labunix/Open-usp-Tukubai.git
   7cd3fd8..713ab89  myFeature -> myFeature

$ git checkout myFeatureSpike
Switched to branch 'myFeatureSpike'
Your branch is ahead of 'origin/myFeatureSpike' by 21 commits.

$ git rebase master myFeatureSpike
Already on 'myFeatureSpike'
Your branch is ahead of 'origin/myFeatureSpike' by 21 commits.
Current branch myFeatureSpike is up to date.

$ git push -f origin myFeatureSpike
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:labunix/Open-usp-Tukubai.git
   7c5ab8b..713ab89  myFeatureSpike -> myFeatureSpike

■今回の変更分の入れ替え。
 変更箇所が自分の分だけであることを確認。

$ rm -fr deb
$ cp -r ../../labunix.deb deb
$ ls deb
README            open-usp_Tukubai-3_amd64.deb  usp.sh
labunix.Makefile  open-usp_Tukubai-3_i386.deb
$  git stash pop
Nothing to apply
$  git checkout myFeatureSpike
M       deb/README
D       deb/open-usp-tukubai_20120802-1_amd64.deb
D       deb/open-usp-tukubai_20120802-1_i386.deb
D       deb/open-usp-tukubai_20120802-2_amd64.deb
D       deb/open-usp-tukubai_20120802-2_i386.deb
M       deb/usp.sh
Already on 'myFeatureSpike'

$  git checkout myFeature
M       deb/README
D       deb/open-usp-tukubai_20120802-1_amd64.deb
D       deb/open-usp-tukubai_20120802-1_i386.deb
D       deb/open-usp-tukubai_20120802-2_amd64.deb
D       deb/open-usp-tukubai_20120802-2_i386.deb
M       deb/usp.sh
Switched to branch 'myFeature'

$ git rebase -i master
deb/README: needs update
deb/open-usp-tukubai_20120802-1_amd64.deb: needs update
deb/open-usp-tukubai_20120802-1_i386.deb: needs update
deb/open-usp-tukubai_20120802-2_amd64.deb: needs update
deb/open-usp-tukubai_20120802-2_i386.deb: needs update
deb/usp.sh: needs update
Working tree is dirty

$  git push origin myFeature
Everything up-to-date
$  git push origin myFeatureSpike
Everything up-to-date
$ cd deb
$ git add .
$ git commit -a -m "Release 3"
[myFeature a98cf14] Release 3
 Committer: labunix <labunix@ibm-amddebian.myhome.local>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

If the identity used for this commit is wrong, you can fix it with:

    git commit --amend --author='Your Name <you@example.com>'

 9 files changed, 202 insertions(+), 19 deletions(-)
 rewrite deb/README (100%)
 create mode 100644 deb/labunix.Makefile
 delete mode 100644 deb/open-usp-tukubai_20120802-1_amd64.deb
 delete mode 100644 deb/open-usp-tukubai_20120802-1_i386.deb
 delete mode 100644 deb/open-usp-tukubai_20120802-2_amd64.deb
 delete mode 100644 deb/open-usp-tukubai_20120802-2_i386.deb
 create mode 100644 deb/open-usp_Tukubai-3_amd64.deb
 create mode 100644 deb/open-usp_Tukubai-3_i386.deb

$  git push git@github.com:labunix/Open-usp-Tukubai.git
Counting objects: 12, done.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 2.09 MiB | 2.28 MiB/s, done.
Total 8 (delta 1), reused 0 (delta 0)

To git@github.com:labunix/Open-usp-Tukubai.git
   713ab89..a98cf14  myFeature -> myFeature