FreeBSD ports と暮らす(1): github 編

Post on 28-May-2015

2.203 views 2 download

description

K*BUG 2012年2月研究会 http://www.zusaar.com/event/209002 での発表 補足情報を吹き出しで追加

Transcript of FreeBSD ports と暮らす(1): github 編

FreeBSD ports と暮らす(1)github 編

Hirohisa Yamaguchi@umq

2012-02-181

発表者について• ネットエージェント株式会社

•http://www.netagent.co.jp

• 研究開発部

• 関西 *BSD ユーザ会 (K*BUG)

•http://www.kbug.gr.jp

2

FreeBSD ports

•<略>

•一部後述3

github

• An SNS site for us

4

FreeBSD もあるgithub.com/freebsd/

5

github で公開されている○○をFreeBSD portsに入れたい

6

通常はリリース済ソースアーカイブを対象にしている

7

どうするか

8

魔法のエイリアス

• https://github.com/<user>/<project>/tarball

9

commit revision で取得

• https://github.com/<user>/<project>/tarball/<revision>/<project>-<revision>.tar.gz

10

サンプル

• tinytinyhttpdgithub.com/mattn/tinytinyhttpd

• www/tinytinyhttpd として ports tree に存在

11

mattn 氏日本を代表するvim hacker「Vimテクニックバイブル」

http://gihyo.jp/book/2011/978-4-7741-4795-6

12

やってみた

https://gist.github.com/185769113

MASTER_SITES=!\ https://github.com/${GITHUB_USER}/\ ${PORTNAME}/tarball/${GITREVISION}/

あとで定義あとで定義

14

DISTNAME=!\${PORTNAME}-${GITREVISION}

15

FETCH_ARGS=!-RprGITHUB_USER=!mattnGITREVISION=!3a3a10bWRKSRC=!!\ ${WRKDIR}/${GITHUB_USER}-\ ${PORTNAME}-${GITREVISION}

commit revisionの先頭7文字

リダイレクト先のファイルをその名前で取得

16

pre-configure:!cd ${WRKSRC} ; \!${SH} ./autogen.sh

モノによってはビルド前に処理が必要な場合があるので記述

17

最新版でやってみたい

18

最新版でやってみたい

• https://github.com/<user>/<project>/tarball/master

19

やってみた 1/2

(ちょと違うけど) https://gist.github.com/1857700

20

やってみた 2/221

MASTER_SITES=!\ https://github.com/${GITHUB_USER}/\ ${PORTNAME}/tarball/

22

NO_CHECKSUM= yes

都度取得なので、チェックサムを確認しない

23

取得

ls-remote でリビジョン情報取得ssh鍵を登録しておけばローカルにclone 不要

heads/master の revesion id を切り出す。awk(1) でなく cut(1) を使って ${CUT} -f1 でもよい

latest という名前で symlink を作る

25

展開

symlink した tarba( を展開

26

注意

portlint かけると FATAL が2つも本家のツリーに入れようと思わないこと

ports-mgmt/potupgrade-devel がやってるのは例外

27

まとめ

• github で公開されているプログラムを ports に入れる方法を紹介した

• local portをこれで気軽に作れる

• happy hacking

28