[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Is Development Guide available?
こんばんは。
sakamoto@cec.co.jp (Kazuki Sakamoto) writes:
> http://www.jp.netbsd.org/ja/JP/Documentation/Packages/Packages.txt
> に機械翻訳 + イントロダクションと4.1のみ修正したものを入れておきました。
> 私は 4.2からちまちまと翻訳していこうと思ってます。
> もし翻訳してくださる方がいらっしゃるならば、作業が重なると悲しいので、
> ここか、または直接連絡くださいまし。
packages について知りたいので、お手伝いさせてください。
とりあえず 11 と付録を翻訳してみました。次は 9、10 あたりを
やってみます。
--
Yuji Yamano
11 パッケージの簡単な例: bison
=======================================
私は、FreeBSD のポート(ports)にないソフトウェアをさがし、GNU bison
を選びました。バークレーの yacc がすでにソースツリーに存在するので、
bison を使いたい人はいないでしょう。しかし、練習という意味では役に
たちます。
11.1 ファイル
==========
このセクションのファイルの内容は、実際には 「> 」という接頭辞なし
で使用してください。
11.1.1 Makefile
===============
> # <$>NetBSD<$>
>
> DISTNAME= bison-1.25
> CATEGORIES= devel
> MASTER_SITES= ${MASTER_SITE_GNU}
>
> MAINTAINER= thorpej@netbsd.org
> HOMEPAGE= http://www.gnu.org/software/bison/bison.html
>
> GNU_CONFIGURE= yes
> INFO_FILES= bison.info
>
> .include "../../mk/bsd.pkg.mk"
11.1.2 pkg/COMMENT
==================
> GNU yacc clone.
11.1.3 pkg/DESCR
================
> GNU version of yacc. Can make re-entrant parsers, and numerous other
> improvements. Why you would want this when Berkeley yacc(1) is part
> of the NetBSD source tree is beyond me.
11.1.4 pkg/PLIST
================
> @comment <$>NetBSD<$>
> bin/bison
> man/man1/bison.1.gz
> @unexec install-info --delete %D/info/bison.info %D/info/dir
> info/bison.info
> info/bison.info-1
> info/bison.info-2
> info/bison.info-3
> info/bison.info-4
> info/bison.info-5
> @exec install-info %D/info/bison.info %D/info/dir
> share/bison.simple
> share/bison.hairy
11.1.5 パッケージをチェックする 「pkglint」
===================================
NetBSD パッケージ・システムは、「pkglint」(pkgsrc/pkgtools/pkglint
ディレクトリにあります)とよばれるツールを含んでいます。このツールは
これらのファイルの内容をチェックするのを助けてくれます。一度インス
トールしてしまえば、このツールは非常に簡単に使うことができます。検査
したいパッケージのディレクトリに移動し、「pkglint」を実行するだけです。
> tron@lyssa:/usr/pkgsrc/devel/bison>pkglint
> OK: checking pkg/COMMENT.
> OK: checking pkg/DESCR.
> OK: checking Makefile.
> OK: checking files/md5.
> OK: checking patches/patch-aa.
> looks fine.
指定されたコマンド行の引き数(「man pkglin」を見てください)によっては、
よりきびしいチェックがおこなわれます。例えば「pkglint -a -v」は、大変
詳細かつ冗長なチェックをおこないます。
11.2 作成、インストール、パッケージングの手順
==============================================
パッケージのためのディレクトリと、いくつかの追加のディレクトリを
作成します。
> root@pumpy:/u/pkgsrc/lang(1765)# cd /usr/pkgsrc/lang
> root@pumpy:/u/pkgsrc/lang(1765)# mkdir bison
> root@pumpy:/u/pkgsrc/lang(1766)# cd bison
> root@pumpy:/u/pkgsrc/lang/bison(1768)# mkdir files patches pkg
セクション 11.1 のように Makefile、pkg/COMMENT、pkg/DESCR、および
pkg/PLISTを作り、distfile を取得します。
> root@pumpy:/u/pkgsrc/lang/bison(1769)# make fetch
> >> bison-1.25.tar.gz doesn't seem to exist on this system.
> >> Attempting to fetch from ftp://prep.ai.mit.edu/pub/gnu//.
> Requesting ftp://prep.ai.mit.edu/pub/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/)
> ftp: Error retrieving file: 500 Internal error
>
> >> Attempting to fetch from ftp://wuarchive.wustl.edu/systems/gnu//.
> Requesting ftp://wuarchive.wustl.edu/systems/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/)
> ftp: Error retrieving file: 500 Internal error
>
> >> Attempting to fetch from ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//.
> Requesting ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/)
> Successfully retrieved file.
distfile のチェックサムを files/md5 へ作成します。
> root@pumpy:/u/pkgsrc/lang/bison(1770)# make makesum
コンパイルします。
> root@pumpy:/u/pkgsrc/lang/bison(1777)# make
> >> Checksum OK for bison-1.25.tar.gz.
> ===> Extracting for bison-1.25
> ===> Patching for bison-1.25
> ===> Ignoring empty patch directory
> ===> Configuring for bison-1.25
> creating cache ./config.cache
> checking for gcc... cc
> checking whether we are using GNU C... yes
> checking for a BSD compatible install... /usr/bin/install -c -o bin -g bin
> checking how to run the C preprocessor... cc -E
> checking for minix/config.h... no
> checking for POSIXized ISC... no
> checking whether cross-compiling... no
> checking for ANSI C header files... yes
> checking for string.h... yes
> checking for stdlib.h... yes
> checking for memory.h... yes
> checking for working const... yes
> checking for working alloca.h... no
> checking for alloca... yes
> checking for strerror... yes
> updating cache ./config.cache
> creating ./config.status
> creating Makefile
> ===> Building for bison-1.25
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g LR0.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g allocate.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g closure.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g conflicts.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g derives.c
> cc -c -DXPFILE=\"/usr/pkg/share/bison.simple\" -DXPFILE1=\"/usr/pkg/share/bison.hairy\" -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -g ./files.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getargs.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g gram.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g lalr.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g lex.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g main.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g nullable.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g output.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g print.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g reader.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g reduce.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g symtab.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g warshall.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g version.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getopt.c
> cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getopt1.c
> cc -g -o bison LR0.o allocate.o closure.o conflicts.o derives.o files.o getargs.o gram.o lalr.o lex.o main.o nullable.o output.o print.o reader.o reduce.o symtab.o warshall.o version.o
getopt.o getopt1.o
> ./files.c:240: warning: mktemp() possibly used unsafely, consider using mkstemp()
> rm -f bison.s1
> sed -e "/^#line/ s|bison|/usr/pkg/share/bison|" < ./bison.simple > bison.s1
すべて OK のようなので、ファイルをインストールします。
> root@pumpy:/u/pkgsrc/lang/bison(1785)# make install
> >> Checksum OK for bison-1.25.tar.gz.
> ===> Installing for bison-1.25
> sh ./mkinstalldirs /usr/pkg/bin /usr/pkg/share /usr/pkg/info /usr/pkg/man/man1
> rm -f /usr/pkg/bin/bison
> cd /usr/pkg/share; rm -f bison.simple bison.hairy
> rm -f /usr/pkg/man/man1/bison.1 /usr/pkg/info/bison.info*
> install -c -o bin -g bin -m 555 bison /usr/pkg/bin/bison
> /usr/bin/install -c -o bin -g bin -m 644 bison.s1 /usr/pkg/share/bison.simple
> /usr/bin/install -c -o bin -g bin -m 644 ./bison.hairy /usr/pkg/share/bison.hairy
> cd .; for f in bison.info*; do /usr/bin/install -c -o bin -g bin -m 644 $f /usr/pkg/info/$f; done
> /usr/bin/install -c -o bin -g bin -m 644 ./bison.1 /usr/pkg/man/man1/bison.1
> ===> Registering installation for bison-1.25
これで bison を使用することができます。そして、「pkg_delete bison-1.25」
を実行することで bison を削除することもできます。もし、バイナリー・パッケージ
が欲しければ、以下のようにしてください。
> root@pumpy:/u/pkgsrc/lang/bison(1786)# make package
> >> Checksum OK for bison-1.25.tar.gz.
> ===> Building package for bison-1.25
> Creating package bison-1.25.tgz
> Registering depends:.
> Creating gzip'd tar ball in '/u/pkgsrc/lang/bison/bison-1.25.tgz'
もし、ソースやオブジェクト・ファイルが必要ないのであれば、掃除して
ください。
> root@pumpy:/u/pkgsrc/lang/bison(1787)# make clean
> ===> Cleaning for bison-1.25
======================
付録A: ビルドのログ
======================
A.1 top のビルド
================
> Script started on Fri Oct 3 13:22:31 1997
> root@pumpy:/u/pkgsrc/sysutils/top(1342)# make
> >> top-3.5beta5.tar.gz doesn't seem to exist on this system.
> >> Attempting to fetch from ftp://ftp.groupsys.com/pub/top/.
> Requesting ftp://ftp.groupsys.com/pub/top/top-3.5beta5.tar.gz (via ftp://orpheus.amdahl.com:80/)
> Successfully retrieved file.
> >> Checksum OK for top-3.5beta5.tar.gz.
> ===> Extracting for top-3.5beta5
> ===> Patching for top-3.5beta5
> ===> Applying NetBSD patches for top-3.5beta5
> ===> Configuring for top-3.5beta5
> /bin/cp /u/pkgsrc/sysutils/top/files/defaults /u/pkgsrc/sysutils/top/work/top-3.5beta5/.defaults
> chmod a-x /u/pkgsrc/sysutils/top/work/top-3.5beta5/install
>
> Reading configuration from last time...
>
> Using these settings:
> Bourne Shell /bin/sh
> C compiler cc
> Compiler options -DHAVE_GETOPT -O
> Awk command awk
> Install command /usr/bin/install
>
> Module netbsd13
> LoadMax 5.0
> Default TOPN -1
> Nominal TOPN 18
> Default Delay 2
> Random passwd access yes
> Table Size 47
> Owner root
> Group Owner kmem
> Mode 2755
> bin directory $(PREFIX)/bin
> man directory $(PREFIX)/man/man1
> man extension 1
> man style man
>
> Building Makefile...
> Building top.local.h...
> Building top.1...
> Doing a "make clean".
> rm -f *.o top core core.* sigdesc.h
> To create the executable, type "make".
> To install the executable, type "make install".
> ===> Building for top-3.5beta5
> cc -DHAVE_GETOPT -DORDER -DHAVE_GETOPT -O -c top.c
> awk -f sigconv.awk /usr/include/sys/signal.h >sigdesc.h
> cc -DHAVE_GETOPT -DORDER -DHAVE_GETOPT -O -c commands.c
> cc -DHAVE_GETOPT -DORDER -DHAVE_GETOPT -O -c display.c
> cc -DHAVE_GETOPT -DORDER -DHAVE_GETOPT -O -c screen.c
> cc -DHAVE_GETOPT -DORDER -DHAVE_GETOPT -O -c username.c
> cc -DHAVE_GETOPT -DORDER -DHAVE_GETOPT -O -c utils.c
> utils.c: In function `errmsg':
> utils.c:348: warning: return discards `const' from pointer target type
> cc -DHAVE_GETOPT -DORDER -DHAVE_GETOPT -O -c version.c
> cc -DHAVE_GETOPT -DORDER -DHAVE_GETOPT -O -c getopt.c
> cc "-DOSREV=12G" -DHAVE_GETOPT -DORDER -DHAVE_GETOPT -O -c machine.c
> rm -f top
> cc -o top top.o commands.o display.o screen.o username.o utils.o version.o getopt.o machine.o -ltermcap -lm -lkvm
> root@pumpy:/u/pkgsrc/sysutils/top(1343)# make install
> >> Checksum OK for top-3.5beta5.tar.gz.
> ===> Installing for top-3.5beta5
> /usr/bin/install -o root -m 2755 -g kmem top /usr/pkg/bin
> /usr/bin/install top.1 /usr/pkg/man/man1/top.1
> strip /usr/pkg/bin/top
> ===> Registering installation for top-3.5beta5
> root@pumpy:/u/pkgsrc/sysutils/top(1344)#
A.2 top のパッケージング
=================
> root@pumpy:/u/pkgsrc/sysutils/top(1344)# make package
> >> Checksum OK for top-3.5beta5.tar.gz.
> ===> Building package for top-3.5beta5
> Creating package top-3.5beta5.tgz
> Registering depends:.
> Creating gzip'd tar ball in '/u/pkgsrc/sysutils/top/top-3.5beta5.tgz'
> root@pumpy:/u/pkgsrc/sysutils/top(1345)#
======================================================
付録B:FTPサーバのパッケージアーカイブのレイアウト
======================================================
ftp.netbsd.org 上のプリコンパイルされたバイナリー・パッケージのレイアウト
/pub/NetBSD/packages/
README
distfiles/
pkgsrc -> /pub/NetBSD/NetBSD-current/pkgsrc
1.3/
i386/
All/
archivers/
foo -> ../All/foo
...
m68k/
All/
archivers/
foo -> ../All/foo
...
amiga -> m68k
atari -> m68k
...
作成:
- cd /usr/pkgsrc ; make install ; make package
- /usr/pkgsrc/packages を ftp://ftp.netbsd.org/pub/NetBSD/packages/`uname -r`/`sysctl -n hw.machine_arch` へアップロードする。
- 必要なら ln -s `sysctl -n hw.machine` `sysctl -n hw.machine_arch`
必要なディスクスペース: 不明
###########################################################################
# Local Variables:
# mode: Text
# fill-column: 75
# sentence-end-double-space: nil
# End: