■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
INSTALL_PATH=/opt/usp/bin
if [ -d "$INSTALL_PATH" ];then
echo $PATH | grep "$INSTALL_PATH" || export PATH=$PATH:$INSTALL_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