이 섹션은 빠르게 포팅하는 법을 다룹니다. 많은 경우에 충분한 내용은 아니지만, 살펴볼 것입니다.
먼저, 원본 tarball을 얻어서 ${DISTDIR}에
놓읍시다. 이는 기본적으로 /usr/ports/distfiles 입니다.
주의: 앞으로의 내용은 소프트웨어가 바로 컴파일된다는 것을 가정합니다. 예를 들면, 포트가 여러분의 FreeBSD 머신에서 동작하기 위해 바꿀 것이 없어야 합니다. 무엇인가를 바꾸어야 한다면, 다음 섹션을 참조해야 할 것입니다.
최소한의 Makefile 은 다음과 같아야 합니다:
# New ports collection makefile for: oneko
# Version required: 1.1b
# Date created: 5 December 1994
# Whom: asami
#
# $Id$
#
DISTNAME= oneko-1.1b
CATEGORIES= games
MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/
MAINTAINER= asami@FreeBSD.ORG
MAN1= oneko.1
MANCOMPRESSED= yes
USE_IMAKE= yes
.include <bsd.port.mk>
어떤 내용을 알 수 있는지 봅시다. $Id$가 있는
행의 내용에는 신경쓰지 맙시다. 이것은 포트가 우리의 주 포트 트리에
포함되면 CVS에 의해 자동적으로 채워집니다.
sample Makefile 섹션에서 더 자세한 예를 찾을 수 있을 것입니다.
포트가 실제로 패키지이든 아니든, 어떤 포트에도 세가지 설명 파일이
필요합니다. 이들은 pkg 부디렉토리에 있는 COMMENT,
DESCR, PLIST입니다.
이것은 포트에 대한 한줄짜리 설명입니다. 주석에 패키지 이름(또는 소프트웨어의 버전 번호)를 넣어서는 안됩니다.
다음에 예제가 있습니다:
A cat chasing a mouse all over the screen.
이것은 포트를 좀 더 길게 설명한 것입니다. 이 포트가 무엇을 하는지에
대해 간결하게 설명하는 몇 문단 정도면 충분합니다. 이것은 포트를
사용하거나 컴파일하는 방법에 대한 자세한 설명이나 매뉴얼이
아닙니다! README나 맨페이지에서 이 내용을 복사해
온다면 조심하세요. 많은 경우에 이것은 포트에 대한 간결한 설명이
아니거나 이상한 형식으로 되어 있습니다(예. 공백 조정을 한 매뉴얼
페이지 등). 포팅한 소프트웨어의 공식 홈페이지가 있다면, 반드시 여기
써 주세요.
이 파일의 끝에 여러분의 이름을 사인하는 것을 권장합니다. 다음처럼:
This is a port of oneko, in which a cat chases a poor mouse all over
the screen.
:
(etc.)
http://www.oneko.org/
- Satoshi
asami@cs.berkeley.edu
이 파일은 포트가 설치하는 모든 파일을 나열합니다. 패키지는 여기 나열된
파일을 모아서 만들어지므로 '포장 목록'이라고도 부릅니다. 경로명은 설치
접두사에 상대적입니다(보통 /usr/local 이나
/usr/X11R6입니다). MANx 변수를 사용하고 있다면
(그래야 하기 때문에), 여기 매뉴얼 페이지를 나열하지 마세요.
짧은 예를 봅시다:
bin/oneko
lib/X11/app-defaults/Oneko
lib/X11/oneko/cat1.xpm
lib/X11/oneko/cat2.xpm
lib/X11/oneko/mouse.xpm
포장 목록에 대해 자세히 알아보려면 pkg_create(1) 매뉴얼
페이지를 참조하세요. 이 목록에는 모든 파일을 나열해야 하지만,
디렉토리 이름은 아닙니다. 또한 포트가 설치 과정에서 스스로
디렉토리를 만든다면, 포트가 제거될 때 필요에 따라 @dirrm 행을
추가하였는지 확인하세요(역주: 디렉토리를 지우기 위해서입니다).
이 파일의 모든 파일명을 알파벳 순서대로 유지하는 것을 권장합니다. 이는 포트를 업그레이드할때 변경사항을 살펴보는 것을 더욱 편하게 할 것입니다.
`make makesum'이라고만 입력하세요.
포트 make 규칙은 자동적으로 files/md5 파일을 생성합니다.
포트를 포장하는 것을 포함하여 포트 규칙이 여러분이 원하는 것을 정확하게 해 주는지 확인해야 합니다. 이는 여러분이 확인해 보아야 하는 중요한 점입니다:
PLIST는 포트에서 설치하지 않는 것은 포함하지 않는다PLIST는 포트에서 설치하는 모든 것을 포함한다reinstall 타겟을 사용하여 여러번이라도 설치할
수 있다권장하는 시험 순서는 다음과 같습니다:
make installmake packagemake deinstallpkg_add `make package-name`make deinstallmake reinstallmake packagepackage 와 deinstall 단계중 어디에서도 경고가 나오지 않는지
확인하세요. 과정 3 이후, 모든 새 디렉토리가 올바르게 지워졌는지
살펴보세요. 또한 과정 4 이후에 소프트웨어를 사용하도록 해 보고,
패키지에서 설치하였을 때 바르게 동작하는지 확인하세요.
포트가 우리의 가이드라인에 맞는지 보기 위해 portlint를
사용하세요. portlint는 포트 콜렉션의 일부입니다. 특히,
Makefile이 올바른 모양이며
패키지
이름을 제대로 지었는지 알아볼 필요가 있을 것입니다.
먼저 해야 되는 일과 하지 말아야 하는 일 섹션을 읽어보세요.
이제 여러분이 만든 포트에 행복해 하면, 남은 것은 주 FreeBSD 포트 트리에
이것을 넣어 다른 모든 사람들이 또한 행복해 하도록 하는
것입니다. work/ 디렉토리나 패키지이름.tgz 패키지는
필요 없으니 지금 지우세요. 다음에 `shar `find
포트_디렉토리`'의 출력을 버그 보고서에 포함하고
send-pr(1) 프로그램으로 보내세요
(
버그 보고와 일반적인 의견에서
send-pr에 대한 자세한 정보를 보세요).
압축되지 않은 포트가
20KB보다 크면, 포트를 tar 파일로 압축하고 버그 보고서에 넣기 전에
uuencode(1)를 사용해야 합니다(uuencode로 만든 tar 파일은
보고서가 20KB이하라면 받아들일 수 있습니다만 권장하지는
않습니다). 버그 보고서를 카테고리 `ports'와 `change-request' 클래스로
지정하였는지 확인하세요.
(보고서를 `confidential(기밀)'로 표시하지 마세요!)
다시한번 말하지만, 원본 소스 파일, work/ 디렉토리,
`make package'로 만든 패키지를 포함하면 안됩니다!
주의: 이전에는 ftp 사이트에 새 포트를 내라고 요청했었습니다
(ftp.freebsd.org). 많은 양의 해적 소프트웨어가 incoming
디렉토리에 나타나기 때문에 이 디렉토리의 읽기 접근을 금지하였으므로
파일을 올리는 것은 더 이상 권장하지 않습니다.
우리는 여러분이 만든 포트를 살펴보고, 필요하다면 다시 되돌려 보내며,
그리고서 포트 트리에 집어넣습니다. 또한 여러분의 이름은 FreeBSD
핸드북와 다른 파일에 있는 `그 외의 FreeBSD 공헌자' 목록에 나타날
것입니다. 대단하지 않은가요?!? :)