Tue Aug 25 12:32:56 2009 UTC ()
Remove BROKEN_IN variable. It was no maintained, and there was no
defined workflow for setting it, removing it, or removing packages
depending on it.


(wiz)
diff -r1.16 -r1.17 pkgsrc/cross/i386-cygwin32/Makefile
diff -r1.27 -r1.28 pkgsrc/cross/i386-linux/Makefile
diff -r1.27 -r1.28 pkgsrc/cross/i386-msdosdjgpp/Makefile
diff -r1.21 -r1.22 pkgsrc/devel/pcl-cvs/Makefile
diff -r1.100 -r1.101 pkgsrc/doc/guide/files/fixes.xml
diff -r1.14 -r1.15 pkgsrc/emulators/simulavr/Makefile
diff -r1.29 -r1.30 pkgsrc/emulators/twin/Makefile
diff -r1.21 -r1.22 pkgsrc/graphics/denemo/Makefile
diff -r1.7 -r1.8 pkgsrc/lang/jdk-openjit/Makefile
diff -r1.64 -r1.65 pkgsrc/net/arla/Makefile
diff -r1.196 -r1.197 pkgsrc/pkgtools/pkglint/files/makevars.map
diff -r1.12 -r1.13 pkgsrc/security/botan/Makefile
diff -r1.8 -r1.9 pkgsrc/sysutils/nvnet/Makefile
diff -r1.12 -r1.13 pkgsrc/sysutils/strace/Makefile
diff -r1.4 -r1.5 pkgsrc/www/nvu/Makefile

cvs diff -r1.16 -r1.17 pkgsrc/cross/i386-cygwin32/Attic/Makefile (switch to unified diff)

--- pkgsrc/cross/i386-cygwin32/Attic/Makefile 2007/01/31 00:04:11 1.16
+++ pkgsrc/cross/i386-cygwin32/Attic/Makefile 2009/08/25 12:32:54 1.17
@@ -1,37 +1,35 @@ @@ -1,37 +1,35 @@
1# $NetBSD: Makefile,v 1.16 2007/01/31 00:04:11 wiz Exp $ 1# $NetBSD: Makefile,v 1.17 2009/08/25 12:32:54 wiz Exp $
2# 2#
3 3
4DISTVERSION= 1.0.0.0 4DISTVERSION= 1.0.0.0
5DISTFILES= # none 5DISTFILES= # none
6PKGREVISION= 3 6PKGREVISION= 3
7 7
8MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
9HOMEPAGE= http://www.NetBSD.org/ 9HOMEPAGE= http://www.NetBSD.org/
10COMMENT= Cross-compile environment for Cywin32/i386 10COMMENT= Cross-compile environment for Cywin32/i386
11 11
12BROKEN_IN= pkgsrc-2006Q4 
13 
14WRKSRC= ${WRKDIR}/${EGCS_DISTNAME} 12WRKSRC= ${WRKDIR}/${EGCS_DISTNAME}
15USE_CROSS_BINUTILS= yes 13USE_CROSS_BINUTILS= yes
16BINUTILS_GNUTARGET= pe-i386 14BINUTILS_GNUTARGET= pe-i386
17BINUTILS_LDEMULATION= i386pe 15BINUTILS_LDEMULATION= i386pe
18USE_CROSS_EGCS= yes 16USE_CROSS_EGCS= yes
19EGCS_FAKE_RUNTIME= yes 17EGCS_FAKE_RUNTIME= yes
20 18
21TARGET_ARCH= i386-cygwin32 19TARGET_ARCH= i386-cygwin32
22 20
23BINUTILS_EXTRAS= dlltool windres 21BINUTILS_EXTRAS= dlltool windres
24 22
25## XXX 23## XXX
26## These headers are required to build libgcc. 24## These headers are required to build libgcc.
27## We have to use the Cygwin versions of the headers, but for now 25## We have to use the Cygwin versions of the headers, but for now
28## these are enough. 26## these are enough.
29## Actually we have to install Cygwin headers and libraries with this package; 27## Actually we have to install Cygwin headers and libraries with this package;
30## the header files from NetBSD should be deleted at that time. 28## the header files from NetBSD should be deleted at that time.
31post-configure: 29post-configure:
32 ${CP} ${FILESDIR}/i386_limits.h ${CROSS_SYS_INCLUDE}/machine/limits.h 30 ${CP} ${FILESDIR}/i386_limits.h ${CROSS_SYS_INCLUDE}/machine/limits.h
33 ${CP} ${FILESDIR}/syslimits.h ${CROSS_SYS_INCLUDE}/sys/ 31 ${CP} ${FILESDIR}/syslimits.h ${CROSS_SYS_INCLUDE}/sys/
34 ${CP} ${FILESDIR}/featuretest.h ${CROSS_SYS_INCLUDE}/sys/ 32 ${CP} ${FILESDIR}/featuretest.h ${CROSS_SYS_INCLUDE}/sys/
35 ${CP} ${FILESDIR}/limits.h ${CROSS_SYS_INCLUDE}/ 33 ${CP} ${FILESDIR}/limits.h ${CROSS_SYS_INCLUDE}/
36 34
37.include "../../cross/COMMON/cross.mk" 35.include "../../cross/COMMON/cross.mk"

cvs diff -r1.27 -r1.28 pkgsrc/cross/i386-linux/Attic/Makefile (switch to unified diff)

--- pkgsrc/cross/i386-linux/Attic/Makefile 2007/01/31 00:04:11 1.27
+++ pkgsrc/cross/i386-linux/Attic/Makefile 2009/08/25 12:32:55 1.28
@@ -1,63 +1,61 @@ @@ -1,63 +1,61 @@
1# $NetBSD: Makefile,v 1.27 2007/01/31 00:04:11 wiz Exp $ 1# $NetBSD: Makefile,v 1.28 2009/08/25 12:32:55 wiz Exp $
2# 2#
3 3
4DISTVERSION= 2.0.7.1 4DISTVERSION= 2.0.7.1
5PKGREVISION= 2 5PKGREVISION= 2
6DISTFILES= ${LINUXDEVEL_FILES} 6DISTFILES= ${LINUXDEVEL_FILES}
7EXTRACT_ONLY= # none of the RPM files 7EXTRACT_ONLY= # none of the RPM files
8MASTER_SITES= # no known-good site; default to pkgsrc distfile mirrors 8MASTER_SITES= # no known-good site; default to pkgsrc distfile mirrors
9 9
10MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
11COMMENT= Cross-compile environment for iX86 Linux, libc v6 11COMMENT= Cross-compile environment for iX86 Linux, libc v6
12 12
13BUILD_DEPENDS+= rpm-[0-9]*:../../misc/rpm 13BUILD_DEPENDS+= rpm-[0-9]*:../../misc/rpm
14 14
15BROKEN_IN= pkgsrc-2006Q4 
16 
17CHECK_SHLIBS_SUPPORTED= no 15CHECK_SHLIBS_SUPPORTED= no
18 16
19WRKSRC= ${WRKDIR} 17WRKSRC= ${WRKDIR}
20USE_CROSS_BINUTILS= yes 18USE_CROSS_BINUTILS= yes
21BINUTILS_GNUTARGET= elf32-i386 19BINUTILS_GNUTARGET= elf32-i386
22BINUTILS_LDEMULATION= elf_i386 20BINUTILS_LDEMULATION= elf_i386
23USE_CROSS_EGCS= yes 21USE_CROSS_EGCS= yes
24 22
25LINUXDEVEL_FILES= glibc-2.0.7-13.i386.rpm \ 23LINUXDEVEL_FILES= glibc-2.0.7-13.i386.rpm \
26 glibc-devel-2.0.7-13.i386.rpm \ 24 glibc-devel-2.0.7-13.i386.rpm \
27 kernel-headers-2.0.34-0.6.i386.rpm 25 kernel-headers-2.0.34-0.6.i386.rpm
28 26
29TARGET_ARCH= i386-linux 27TARGET_ARCH= i386-linux
30CROSS_SYS_INCLUDE= ${WRKDIR}/usr/include 28CROSS_SYS_INCLUDE= ${WRKDIR}/usr/include
31SYS_LIB= ${WRKDIR}/usr/lib 29SYS_LIB= ${WRKDIR}/usr/lib
32LDFLAGS_FOR_TARGET= -Wl,-rpath-link=${SYS_LIB} 30LDFLAGS_FOR_TARGET= -Wl,-rpath-link=${SYS_LIB}
33 31
34# Extract and rearrange Linux distribution files. 32# Extract and rearrange Linux distribution files.
35post-extract: 33post-extract:
36 @cd ${WRKDIR}; \ 34 @cd ${WRKDIR}; \
37 for file in ${LINUXDEVEL_FILES}; do \ 35 for file in ${LINUXDEVEL_FILES}; do \
38 ${LOCALBASE}/bin/rpm2cpio ${_DISTDIR}/$$file | cpio -id; \ 36 ${LOCALBASE}/bin/rpm2cpio ${_DISTDIR}/$$file | cpio -id; \
39 done 37 done
40 @cd ${WRKDIR}/lib && ${MV} -f * ${SYS_LIB} 38 @cd ${WRKDIR}/lib && ${MV} -f * ${SYS_LIB}
41 @cd ${CROSS_SYS_INCLUDE} && ${RM} -f asm linux scsi 39 @cd ${CROSS_SYS_INCLUDE} && ${RM} -f asm linux scsi
42 @cd ${WRKDIR}/usr/src/linux-2.0.34/include && \ 40 @cd ${WRKDIR}/usr/src/linux-2.0.34/include && \
43 ${MV} -f asm-i386 ${CROSS_SYS_INCLUDE}/asm && \ 41 ${MV} -f asm-i386 ${CROSS_SYS_INCLUDE}/asm && \
44 ${MV} -f linux scsi ${CROSS_SYS_INCLUDE} 42 ${MV} -f linux scsi ${CROSS_SYS_INCLUDE}
45 @cd ${SYS_LIB}; \ 43 @cd ${SYS_LIB}; \
46 for so in libBrokenLocale libcrypt libdb libdl libm libndbm \ 44 for so in libBrokenLocale libcrypt libdb libdl libm libndbm \
47 libnsl libnss_compat libnss_db libnss_dns \ 45 libnsl libnss_compat libnss_db libnss_dns \
48 libnss_files libnss_nis libpthread libresolv \ 46 libnss_files libnss_nis libpthread libresolv \
49 libutil; do \ 47 libutil; do \
50 ${LN} -sf $$so.so.* $$so.so; \ 48 ${LN} -sf $$so.so.* $$so.so; \
51 done 49 done
52 @${LN} -f ${SYS_LIB}/crt* ${EGCS_WRKSRC}/gcc/ 50 @${LN} -f ${SYS_LIB}/crt* ${EGCS_WRKSRC}/gcc/
53 ${RM} -r ${WRKSRC}/egcs-1.1.1/texinfo 51 ${RM} -r ${WRKSRC}/egcs-1.1.1/texinfo
54 52
55post-patch: 53post-patch:
56 @${RM} -f ${SYS_LIB}/*.orig 54 @${RM} -f ${SYS_LIB}/*.orig
57 55
58post-install: 56post-install:
59 @cd ${PREFIX}/${TARGET_ARCH}/lib; \ 57 @cd ${PREFIX}/${TARGET_ARCH}/lib; \
60 ${LN} -sf libdb.so libndbm.so; \ 58 ${LN} -sf libdb.so libndbm.so; \
61 ${LN} -sf libbsd-compat.a libbsd.a 59 ${LN} -sf libbsd-compat.a libbsd.a
62 60
63.include "../../cross/COMMON/cross.mk" 61.include "../../cross/COMMON/cross.mk"

cvs diff -r1.27 -r1.28 pkgsrc/cross/i386-msdosdjgpp/Attic/Makefile (switch to unified diff)

--- pkgsrc/cross/i386-msdosdjgpp/Attic/Makefile 2007/01/31 00:04:11 1.27
+++ pkgsrc/cross/i386-msdosdjgpp/Attic/Makefile 2009/08/25 12:32:55 1.28
@@ -1,72 +1,70 @@ @@ -1,72 +1,70 @@
1# $NetBSD: Makefile,v 1.27 2007/01/31 00:04:11 wiz Exp $ 1# $NetBSD: Makefile,v 1.28 2009/08/25 12:32:55 wiz Exp $
2# 2#
3 3
4DISTVERSION= 2.02.0 4DISTVERSION= 2.02.0
5PKGREVISION= 2 5PKGREVISION= 2
6DISTFILES= ${DJGPP_FILES} 6DISTFILES= ${DJGPP_FILES}
7EXTRACT_ONLY= # none of the djgpp files 7EXTRACT_ONLY= # none of the djgpp files
8MASTER_SITES= ftp://ftp.delorie.com/pub/djgpp/deleted/v2/ \ 8MASTER_SITES= ftp://ftp.delorie.com/pub/djgpp/deleted/v2/ \
9 http://ftp.delorie.com/pub/djgpp/deleted/v2/ \ 9 http://ftp.delorie.com/pub/djgpp/deleted/v2/ \
10 ftp://ftp.iij.ad.jp/pub/djgpp/deleted/v2/ \ 10 ftp://ftp.iij.ad.jp/pub/djgpp/deleted/v2/ \
11 ftp://gd.tuwien.ac.at/pc/dos/djgpp/deleted/v2/ \ 11 ftp://gd.tuwien.ac.at/pc/dos/djgpp/deleted/v2/ \
12 http://gd.tuwien.ac.at/pc/dos/djgpp/deleted/v2/ 12 http://gd.tuwien.ac.at/pc/dos/djgpp/deleted/v2/
13 13
14MAINTAINER= pkgsrc-users@NetBSD.org 14MAINTAINER= pkgsrc-users@NetBSD.org
15HOMEPAGE= http://www.delorie.com/djgpp/ 15HOMEPAGE= http://www.delorie.com/djgpp/
16COMMENT= Cross-compile environment for MS-DOS on 386 and higher 16COMMENT= Cross-compile environment for MS-DOS on 386 and higher
17 17
18BUILD_DEPENDS+= unzip-[0-9]*:../../archivers/unzip 18BUILD_DEPENDS+= unzip-[0-9]*:../../archivers/unzip
19 19
20SITES.wmemu2b.zip= http://ftp.delorie.com/pub/djgpp/beta/ \ 20SITES.wmemu2b.zip= http://ftp.delorie.com/pub/djgpp/beta/ \
21 ftp://ftp.delorie.com/pub/djgpp/beta/ \ 21 ftp://ftp.delorie.com/pub/djgpp/beta/ \
22 ftp://ftp.iij.ad.jp/pub/djgpp/beta/ \ 22 ftp://ftp.iij.ad.jp/pub/djgpp/beta/ \
23 ftp://gd.tuwien.ac.at/pc/dos/djgpp/beta/ \ 23 ftp://gd.tuwien.ac.at/pc/dos/djgpp/beta/ \
24 http://gd.tuwien.ac.at/pc/dos/djgpp/beta/ 24 http://gd.tuwien.ac.at/pc/dos/djgpp/beta/
25 25
26BROKEN_IN= pkgsrc-2006Q4 
27 
28WRKSRC= ${WRKDIR}/djgpp 26WRKSRC= ${WRKDIR}/djgpp
29USE_CROSS_BINUTILS= yes 27USE_CROSS_BINUTILS= yes
30BINUTILS_GNUTARGET= coff-go32 28BINUTILS_GNUTARGET= coff-go32
31BINUTILS_LDEMULATION= i386go32 29BINUTILS_LDEMULATION= i386go32
32USE_CROSS_EGCS= yes 30USE_CROSS_EGCS= yes
33USE_TOOLS+= makeinfo unzip 31USE_TOOLS+= makeinfo unzip
34 32
35# Scripts in the build need to have a $CPP defined that works with the built 33# Scripts in the build need to have a $CPP defined that works with the built
36# compiler 34# compiler
37NO_EXPORT_CPP= yes 35NO_EXPORT_CPP= yes
38 36
39DJGPP_FILES= djcrx202.zip wmemu2b.zip 37DJGPP_FILES= djcrx202.zip wmemu2b.zip
40 38
41TARGET_ARCH= i386-msdosdjgpp 39TARGET_ARCH= i386-msdosdjgpp
42CROSS_SYS_INCLUDE= ${WRKSRC}/include 40CROSS_SYS_INCLUDE= ${WRKSRC}/include
43SYS_LIB= ${WRKSRC}/lib 41SYS_LIB= ${WRKSRC}/lib
44 42
45post-extract: 43post-extract:
46 @${MKDIR} ${WRKSRC} 44 @${MKDIR} ${WRKSRC}
47 @cd ${WRKSRC}; \ 45 @cd ${WRKSRC}; \
48 for file in ${DJGPP_FILES}; do \ 46 for file in ${DJGPP_FILES}; do \
49 ${UNZIP_CMD} -Loq ${_DISTDIR}/$$file; \ 47 ${UNZIP_CMD} -Loq ${_DISTDIR}/$$file; \
50 done; \ 48 done; \
51 for file in `${FIND} include -type f -print`; do \ 49 for file in `${FIND} include -type f -print`; do \
52 ${CAT} $$file | col >$$file.new; \ 50 ${CAT} $$file | col >$$file.new; \
53 ${MV} -f $$file.new $$file; \ 51 ${MV} -f $$file.new $$file; \
54 done 52 done
55 @${LN} -f ${SYS_LIB}/crt0.o ${EGCS_WRKSRC}/gcc/ 53 @${LN} -f ${SYS_LIB}/crt0.o ${EGCS_WRKSRC}/gcc/
56 @${RM} -f ${SYS_LIB}/djgpp.djl ${SYS_LIB}/specs 54 @${RM} -f ${SYS_LIB}/djgpp.djl ${SYS_LIB}/specs
57 55
58post-patch: 56post-patch:
59 @${RM} -f ${CROSS_SYS_INCLUDE}/sys/*.orig 57 @${RM} -f ${CROSS_SYS_INCLUDE}/sys/*.orig
60 58
61do-build: 59do-build:
62 cd ${WRKSRC}/src/stub && ${LINK.c} -o stubedit stubedit.c 60 cd ${WRKSRC}/src/stub && ${LINK.c} -o stubedit stubedit.c
63 cd ${WRKSRC}/src/stub && ${LINK.c} -o stubify stubify.c 61 cd ${WRKSRC}/src/stub && ${LINK.c} -o stubify stubify.c
64 62
65do-install: 63do-install:
66 ${INSTALL_PROGRAM} ${WRKSRC}/src/stub/stubedit ${TARGET_DIR}/bin/ 64 ${INSTALL_PROGRAM} ${WRKSRC}/src/stub/stubedit ${TARGET_DIR}/bin/
67 ${LN} -f ${TARGET_DIR}/bin/stubedit ${PREFIX}/bin/${TARGET_ARCH}-stubedit 65 ${LN} -f ${TARGET_DIR}/bin/stubedit ${PREFIX}/bin/${TARGET_ARCH}-stubedit
68 ${INSTALL_PROGRAM} ${WRKSRC}/src/stub/stubify ${TARGET_DIR}/bin/ 66 ${INSTALL_PROGRAM} ${WRKSRC}/src/stub/stubify ${TARGET_DIR}/bin/
69 ${LN} -f ${TARGET_DIR}/bin/stubedit ${PREFIX}/bin/${TARGET_ARCH}-stubify 67 ${LN} -f ${TARGET_DIR}/bin/stubedit ${PREFIX}/bin/${TARGET_ARCH}-stubify
70 ${INSTALL_DATA} ${WRKSRC}/bin/wmemu387.dxe ${TARGET_DIR}/lib/ 68 ${INSTALL_DATA} ${WRKSRC}/bin/wmemu387.dxe ${TARGET_DIR}/lib/
71 69
72.include "../../cross/COMMON/cross.mk" 70.include "../../cross/COMMON/cross.mk"

cvs diff -r1.21 -r1.22 pkgsrc/devel/pcl-cvs/Makefile (switch to unified diff)

--- pkgsrc/devel/pcl-cvs/Makefile 2008/10/11 09:31:55 1.21
+++ pkgsrc/devel/pcl-cvs/Makefile 2009/08/25 12:32:55 1.22
@@ -1,36 +1,34 @@ @@ -1,36 +1,34 @@
1# $NetBSD: Makefile,v 1.21 2008/10/11 09:31:55 uebayasi Exp $ 1# $NetBSD: Makefile,v 1.22 2009/08/25 12:32:55 wiz Exp $
2# 2#
3 3
4DISTNAME= pcl-cvs-2.9.9 4DISTNAME= pcl-cvs-2.9.9
5PKGNAME= ${EMACS_PKGNAME_PREFIX}${DISTNAME} 5PKGNAME= ${EMACS_PKGNAME_PREFIX}${DISTNAME}
6PKGREVISION= 2 6PKGREVISION= 2
7CATEGORIES= devel scm 7CATEGORIES= devel scm
8MASTER_SITES= ftp://rum.cs.yale.edu/pub/monnier/pcl-cvs/ 8MASTER_SITES= ftp://rum.cs.yale.edu/pub/monnier/pcl-cvs/
9 9
10MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
11#HOMEPAGE= 11#HOMEPAGE=
12COMMENT= Front-end to CVS for emacs 12COMMENT= Front-end to CVS for emacs
13 13
14PKG_DESTDIR_SUPPORT= user-destdir 14PKG_DESTDIR_SUPPORT= user-destdir
15 15
16BROKEN_IN= pkgsrc-2006Q1 
17 
18DEPENDS+= emacs20-elib>=1.0:../../devel/emacs20-elib 16DEPENDS+= emacs20-elib>=1.0:../../devel/emacs20-elib
19 17
20CONFLICTS= emacs-21.* 18CONFLICTS= emacs-21.*
21CONFLICTS+= emacs21 19CONFLICTS+= emacs21
22 20
23EMACS_VERSIONS_ACCEPTED= emacs20 21EMACS_VERSIONS_ACCEPTED= emacs20
24 22
25.include "../../editors/emacs/modules.mk" 23.include "../../editors/emacs/modules.mk"
26 24
27.if !((${EMACS_FLAVOR} == "emacs") && (${EMACS_VERSION_MAJOR} == "20")) 25.if !((${EMACS_FLAVOR} == "emacs") && (${EMACS_VERSION_MAJOR} == "20"))
28PKG_SKIP_REASON+= "${PKGNAME} is only for emacs20" 26PKG_SKIP_REASON+= "${PKGNAME} is only for emacs20"
29.endif 27.endif
30 28
31MAKE_ENV+= PREFIX=${DESTDIR:Q}${PREFIX:Q} 29MAKE_ENV+= PREFIX=${DESTDIR:Q}${PREFIX:Q}
32BUILD_TARGET= default 30BUILD_TARGET= default
33INFO_FILES= # PLIST 31INFO_FILES= # PLIST
34MESSAGE_SUBST+= EMACS_LISPPREFIX=${EMACS_LISPPREFIX:Q} 32MESSAGE_SUBST+= EMACS_LISPPREFIX=${EMACS_LISPPREFIX:Q}
35 33
36.include "../../mk/bsd.pkg.mk" 34.include "../../mk/bsd.pkg.mk"

cvs diff -r1.100 -r1.101 pkgsrc/doc/guide/files/fixes.xml (switch to unified diff)

--- pkgsrc/doc/guide/files/fixes.xml 2009/07/11 05:46:38 1.100
+++ pkgsrc/doc/guide/files/fixes.xml 2009/08/25 12:32:55 1.101
@@ -1,1936 +1,1922 @@ @@ -1,1936 +1,1922 @@
1<!-- $NetBSD: fixes.xml,v 1.100 2009/07/11 05:46:38 minskim Exp $ --> 1<!-- $NetBSD: fixes.xml,v 1.101 2009/08/25 12:32:55 wiz Exp $ -->
2 2
3<chapter id="fixes"> <?dbhtml filename="fixes.html"?> 3<chapter id="fixes"> <?dbhtml filename="fixes.html"?>
4<title>Making your package work</title> 4<title>Making your package work</title>
5 5
6<sect1 id="general-operation"> 6<sect1 id="general-operation">
7 <title>General operation</title> 7 <title>General operation</title>
8 8
9 <sect2 id="portability-of-packages"> 9 <sect2 id="portability-of-packages">
10 <title>Portability of packages</title> 10 <title>Portability of packages</title>
11 11
12 <para>One appealing feature of pkgsrc is that it runs on many 12 <para>One appealing feature of pkgsrc is that it runs on many
13 different platforms. As a result, it is important to ensure, 13 different platforms. As a result, it is important to ensure,
14 where possible, that packages in pkgsrc are portable. This 14 where possible, that packages in pkgsrc are portable. This
15 chapter mentions some particular details you should pay 15 chapter mentions some particular details you should pay
16 attention to while working on pkgsrc.</para> 16 attention to while working on pkgsrc.</para>
17 </sect2> 17 </sect2>
18 18
19 <sect2 id="pulling-vars-from-etc-mk.conf"> 19 <sect2 id="pulling-vars-from-etc-mk.conf">
20 <title>How to pull in user-settable variables from &mk.conf;</title> 20 <title>How to pull in user-settable variables from &mk.conf;</title>
21 21
22 <para>The pkgsrc user can configure pkgsrc by overriding several 22 <para>The pkgsrc user can configure pkgsrc by overriding several
23 variables in the file pointed to by <varname>MAKECONF</varname>, 23 variables in the file pointed to by <varname>MAKECONF</varname>,
24 which is &mk.conf; by default. When you 24 which is &mk.conf; by default. When you
25 want to use those variables in the preprocessor directives of 25 want to use those variables in the preprocessor directives of
26 &man.make.1; (for example <literal>.if</literal> or 26 &man.make.1; (for example <literal>.if</literal> or
27 <literal>.for</literal>), you need to include the file 27 <literal>.for</literal>), you need to include the file
28 <filename>../../mk/bsd.prefs.mk</filename> before, which in turn 28 <filename>../../mk/bsd.prefs.mk</filename> before, which in turn
29 loads the user preferences.</para> 29 loads the user preferences.</para>
30 30
31 <para>But note that some variables may not be completely defined 31 <para>But note that some variables may not be completely defined
32 after <filename>../../mk/bsd.prefs.mk</filename> has been 32 after <filename>../../mk/bsd.prefs.mk</filename> has been
33 included, as they may contain references to variables that are 33 included, as they may contain references to variables that are
34 not yet defined. In shell commands this is no problem, since 34 not yet defined. In shell commands this is no problem, since
35 variables are actually macros, which are only expanded when they 35 variables are actually macros, which are only expanded when they
36 are used. But in the preprocessor directives mentioned above and 36 are used. But in the preprocessor directives mentioned above and
37 in dependency lines (of the form <literal>target: 37 in dependency lines (of the form <literal>target:
38 dependencies</literal>) the variables are expanded at load 38 dependencies</literal>) the variables are expanded at load
39 time.</para> 39 time.</para>
40 40
41 <note><para>Currently there is no exhaustive list of all 41 <note><para>Currently there is no exhaustive list of all
42 variables that tells you whether they can be used at load time 42 variables that tells you whether they can be used at load time
43 or only at run time, but it is in preparation.</para></note> 43 or only at run time, but it is in preparation.</para></note>
44 </sect2> 44 </sect2>
45 45
46 <sect2 id="user-interaction"> 46 <sect2 id="user-interaction">
47 <title>User interaction</title> 47 <title>User interaction</title>
48 48
49 <para>Occasionally, packages require interaction from the user, 49 <para>Occasionally, packages require interaction from the user,
50 and this can be in a number of ways:</para> 50 and this can be in a number of ways:</para>
51 51
52 <itemizedlist> 52 <itemizedlist>
53 53
54 <listitem> 54 <listitem>
55 <para>When fetching the distfiles, some packages require user 55 <para>When fetching the distfiles, some packages require user
56 interaction such as entering username/password or accepting a 56 interaction such as entering username/password or accepting a
57 license on a web page.</para> 57 license on a web page.</para>
58 </listitem> 58 </listitem>
59 59
60 <listitem> 60 <listitem>
61 <para>When extracting the distfiles, some packages may ask for 61 <para>When extracting the distfiles, some packages may ask for
62 passwords.</para> 62 passwords.</para>
63 </listitem> 63 </listitem>
64 64
65 <listitem> 65 <listitem>
66 <para>help to configure the package before it is built</para> 66 <para>help to configure the package before it is built</para>
67 </listitem> 67 </listitem>
68 68
69 <listitem> 69 <listitem>
70 <para>help during the build process</para> 70 <para>help during the build process</para>
71 </listitem> 71 </listitem>
72 72
73 <listitem> 73 <listitem>
74 <para>help during the installation of a package</para> 74 <para>help during the installation of a package</para>
75 </listitem> 75 </listitem>
76 </itemizedlist> 76 </itemizedlist>
77 77
78 <para>The <varname>INTERACTIVE_STAGE</varname> definition is 78 <para>The <varname>INTERACTIVE_STAGE</varname> definition is
79 provided to notify the pkgsrc mechanism of an interactive stage 79 provided to notify the pkgsrc mechanism of an interactive stage
80 which will be needed, and this should be set in the package's 80 which will be needed, and this should be set in the package's
81 <filename>Makefile</filename>, e.g.:</para> 81 <filename>Makefile</filename>, e.g.:</para>
82 82
83 <programlisting> 83 <programlisting>
84INTERACTIVE_STAGE= build 84INTERACTIVE_STAGE= build
85 </programlisting> 85 </programlisting>
86 86
87 <para>Multiple interactive stages can be specified:</para> 87 <para>Multiple interactive stages can be specified:</para>
88 88
89 <programlisting> 89 <programlisting>
90INTERACTIVE_STAGE= configure install 90INTERACTIVE_STAGE= configure install
91 </programlisting> 91 </programlisting>
92 92
93 <para>The user can then decide to skip this package by setting the 93 <para>The user can then decide to skip this package by setting the
94 <varname>BATCH</varname> variable.</para> 94 <varname>BATCH</varname> variable.</para>
95 </sect2> 95 </sect2>
96 96
97 <sect2 id="handling-licenses"> 97 <sect2 id="handling-licenses">
98 <title>Handling licenses</title> 98 <title>Handling licenses</title>
99 99
100 <para>Authors of software can choose the licence under which 100 <para>Authors of software can choose the licence under which
101 software can be copied. This is due to copyright law, and reasons 101 software can be copied. This is due to copyright law, and reasons
102 for license choices are outside the scope of pkgsrc. The pkgsrc 102 for license choices are outside the scope of pkgsrc. The pkgsrc
103 system recognizes that there are a number of licenses which some 103 system recognizes that there are a number of licenses which some
104 users may find objectionable or difficult or impossible to comply 104 users may find objectionable or difficult or impossible to comply
105 with. The Free Software Foundation has declared some licenses 105 with. The Free Software Foundation has declared some licenses
106 "Free", and the Open Source Initiative has a definition of "Open 106 "Free", and the Open Source Initiative has a definition of "Open
107 Source". The pkgsrc system, as a policy choice, does not label 107 Source". The pkgsrc system, as a policy choice, does not label
108 packages which have licenses that are Free or Open Source. 108 packages which have licenses that are Free or Open Source.
109 However, packages without a license meeting either of those tests 109 However, packages without a license meeting either of those tests
110 are labeled with a license tag denoting the license. Note that a 110 are labeled with a license tag denoting the license. Note that a
111 package with no license to copy trivially does not meet either the 111 package with no license to copy trivially does not meet either the
112 Free or Open Source test.</para> 112 Free or Open Source test.</para>
113 113
114 <para>For packages which are not Free or Open Source, pkgsrc will 114 <para>For packages which are not Free or Open Source, pkgsrc will
115 not build the package unless the user has indicated to pkgsrc that 115 not build the package unless the user has indicated to pkgsrc that
116 packages with that particular license may be built. Note that 116 packages with that particular license may be built. Note that
117 this documentation avoids the term "accepted the license". The 117 this documentation avoids the term "accepted the license". The
118 pkgsrc system is merely providing a mechanism to avoid 118 pkgsrc system is merely providing a mechanism to avoid
119 accidentally building a package with a non-free license; 119 accidentally building a package with a non-free license;
120 judgement and responsibility remain with the user. (Installation 120 judgement and responsibility remain with the user. (Installation
121 of binary packages are not currently subject to this mechanism; 121 of binary packages are not currently subject to this mechanism;
122 this is a bug.)</para> 122 this is a bug.)</para>
123 123
124 <para>One might want to only install packages with a BSD license, 124 <para>One might want to only install packages with a BSD license,
125 or the GPL, and not the other. The free licenses are added to the  125 or the GPL, and not the other. The free licenses are added to the
126 default <varname>ACCEPTABLE_LICENSES</varname> variable. The 126 default <varname>ACCEPTABLE_LICENSES</varname> variable. The
127 user can override the default by setting the 127 user can override the default by setting the
128 <varname>ACCEPTABLE_LICENSES</varname> variable with "=" instead 128 <varname>ACCEPTABLE_LICENSES</varname> variable with "=" instead
129 of "+=". The licenses accepted by default are: 129 of "+=". The licenses accepted by default are:
130 <programlisting> 130 <programlisting>
131 public-domain 131 public-domain
132 gnu-gpl-v2 gnu-lgpl-v2 132 gnu-gpl-v2 gnu-lgpl-v2
133 gnu-gpl-v3 gnu-lgpl-v3 133 gnu-gpl-v3 gnu-lgpl-v3
134 original-bsd modified-bsd 134 original-bsd modified-bsd
135 x11 135 x11
136 apache-2.0 136 apache-2.0
137 cddl-1.0 137 cddl-1.0
138 open-font-license 138 open-font-license
139 </programlisting> 139 </programlisting>
140 </para> 140 </para>
141 141
142 <para>The license tag mechanism is intended to address 142 <para>The license tag mechanism is intended to address
143 copyright-related issues surrounding building, installing and 143 copyright-related issues surrounding building, installing and
144 using a package, and not to address redistribution issues (see 144 using a package, and not to address redistribution issues (see
145 <varname>RESTRICTED</varname> and 145 <varname>RESTRICTED</varname> and
146 <varname>NO_SRC_ON_FTP</varname>, etc.).  146 <varname>NO_SRC_ON_FTP</varname>, etc.).
147 Packages with redistribution restrictions should set these 147 Packages with redistribution restrictions should set these
148 tags.</para> 148 tags.</para>
149 149
150 <para>Denoting that a package may be copied according to a 150 <para>Denoting that a package may be copied according to a
151 particular license is done by placing the license in 151 particular license is done by placing the license in
152 <filename>pkgsrc/licenses</filename> and setting the 152 <filename>pkgsrc/licenses</filename> and setting the
153 <varname>LICENSE</varname> variable to a string identifying the 153 <varname>LICENSE</varname> variable to a string identifying the
154 license, e.g. in <filename 154 license, e.g. in <filename
155 role="pkg">graphics/xv</filename>:</para> 155 role="pkg">graphics/xv</filename>:</para>
156 156
157 <programlisting> 157 <programlisting>
158LICENSE= xv-license 158LICENSE= xv-license
159 </programlisting> 159 </programlisting>
160 160
161 <para>When trying to build, the user will get a notice that the 161 <para>When trying to build, the user will get a notice that the
162 package is covered by a license which has not been placed in the 162 package is covered by a license which has not been placed in the
163 <varname>ACCEPTABLE_LICENSES</varname> variable:</para> 163 <varname>ACCEPTABLE_LICENSES</varname> variable:</para>
164 164
165 <programlisting> 165 <programlisting>
166&cprompt; <userinput>make</userinput> 166&cprompt; <userinput>make</userinput>
167===> xv-3.10anb9 has an unacceptable license: xv-license. 167===> xv-3.10anb9 has an unacceptable license: xv-license.
168===> To view the license, enter "/usr/bin/make show-license". 168===> To view the license, enter "/usr/bin/make show-license".
169===> To indicate acceptance, add this line to your /etc/mk.conf: 169===> To indicate acceptance, add this line to your /etc/mk.conf:
170===> ACCEPTABLE_LICENSES+=xv-license 170===> ACCEPTABLE_LICENSES+=xv-license
171*** Error code 1 171*** Error code 1
172 </programlisting> 172 </programlisting>
173 173
174 <para>The license can be viewed with <command>make 174 <para>The license can be viewed with <command>make
175 show-license</command>, and if the user so chooses, the line 175 show-license</command>, and if the user so chooses, the line
176 printed above can be added to &mk.conf; to 176 printed above can be added to &mk.conf; to
177 convey to pkgsrc that it should not in the future fail because of 177 convey to pkgsrc that it should not in the future fail because of
178 that license:</para> 178 that license:</para>
179 179
180 <programlisting> 180 <programlisting>
181ACCEPTABLE_LICENSES+=xv-license 181ACCEPTABLE_LICENSES+=xv-license
182 </programlisting> 182 </programlisting>
183 183
184 <para>When adding a package with a new license, the license text 184 <para>When adding a package with a new license, the license text
185 should be added to <filename>pkgsrc/licenses</filename> for 185 should be added to <filename>pkgsrc/licenses</filename> for
186 displaying. A list of known licenses can be seen in this 186 displaying. A list of known licenses can be seen in this
187 directory.</para> 187 directory.</para>
188 188
189 <para>When the license changes (in a way other than formatting), 189 <para>When the license changes (in a way other than formatting),
190 please make sure that the new license has a different name (e.g., 190 please make sure that the new license has a different name (e.g.,
191 append the version number if it exists, or the date). Just 191 append the version number if it exists, or the date). Just
192 because a user told pkgsrc to build programs under a previous 192 because a user told pkgsrc to build programs under a previous
193 version of a license does not mean that pkgsrc should build 193 version of a license does not mean that pkgsrc should build
194 programs under the new licenses. The higher-level point is that 194 programs under the new licenses. The higher-level point is that
195 pkgsrc does not evaluate licenses for reasonableness; the only 195 pkgsrc does not evaluate licenses for reasonableness; the only
196 test is a mechanistic test of whether a particular text has been 196 test is a mechanistic test of whether a particular text has been
197 approved by either of two bodies.</para> 197 approved by either of two bodies.</para>
198 198
199 <para>The use of <varname>LICENSE=shareware</varname>, 199 <para>The use of <varname>LICENSE=shareware</varname>,
200 <varname>LICENSE=no-commercial-use</varname>, and similar language 200 <varname>LICENSE=no-commercial-use</varname>, and similar language
201 is deprecated because it does not crisply refer to a particular 201 is deprecated because it does not crisply refer to a particular
202 license text. Another problem with such usage is that it does not 202 license text. Another problem with such usage is that it does not
203 enable a user to tell pkgsrc to proceed for a single package 203 enable a user to tell pkgsrc to proceed for a single package
204 without also telling pkgsrc to proceed for all packages with that 204 without also telling pkgsrc to proceed for all packages with that
205 tag.</para> </sect2> 205 tag.</para> </sect2>
206 206
207 <sect2 id="restricted-packages"> 207 <sect2 id="restricted-packages">
208 <title>Restricted packages</title> 208 <title>Restricted packages</title>
209 209
210 <para>Some licenses restrict how software may be re-distributed. 210 <para>Some licenses restrict how software may be re-distributed.
211 Because a license tag is required unless the package is Free or 211 Because a license tag is required unless the package is Free or
212 Open Source, all packages with restrictions should have license 212 Open Source, all packages with restrictions should have license
213 tags. By declaring the restrictions, package tools can 213 tags. By declaring the restrictions, package tools can
214 automatically refrain from e.g. placing binary packages on FTP 214 automatically refrain from e.g. placing binary packages on FTP
215 sites.</para> 215 sites.</para>
216 216
217 <para>There are four restrictions that may be encoded, which are 217 <para>There are four restrictions that may be encoded, which are
218 the cross product of sources (distfiles) and binaries not being 218 the cross product of sources (distfiles) and binaries not being
219 placed on FTP sites and CD-ROMs. Because this is rarely the exact 219 placed on FTP sites and CD-ROMs. Because this is rarely the exact
220 language in any license, and because non-Free licenses tend to be 220 language in any license, and because non-Free licenses tend to be
221 different from each other, pkgsrc adopts a definition of FTP and 221 different from each other, pkgsrc adopts a definition of FTP and
222 CD-ROM. Pkgsrc uses "FTP" to mean that the source or binary file 222 CD-ROM. Pkgsrc uses "FTP" to mean that the source or binary file
223 should not be made available over the Internet at no charge. 223 should not be made available over the Internet at no charge.
224 Pkgsrc uses "CD-ROM" to mean that the source or binary may not be 224 Pkgsrc uses "CD-ROM" to mean that the source or binary may not be
225 made available on some kind of media, together with other source 225 made available on some kind of media, together with other source
226 and binary packages, and which is sold for a distribution charge. 226 and binary packages, and which is sold for a distribution charge.
227 </para> 227 </para>
228 228
229 <para>In order to encode these restrictions, the package system 229 <para>In order to encode these restrictions, the package system
230 defines five make variables that can be set to note these 230 defines five make variables that can be set to note these
231 restrictions:</para> 231 restrictions:</para>
232 232
233 <itemizedlist> 233 <itemizedlist>
234 <listitem> 234 <listitem>
235 <para><varname>RESTRICTED</varname></para> 235 <para><varname>RESTRICTED</varname></para>
236 236
237 <para>This variable should be set whenever a restriction 237 <para>This variable should be set whenever a restriction
238 exists (regardless of its kind). Set this variable to a 238 exists (regardless of its kind). Set this variable to a
239 string containing the reason for the restriction. It should 239 string containing the reason for the restriction. It should
240 be understood that those wanting to understand the restriction 240 be understood that those wanting to understand the restriction
241 will have to read the license, and perhaps seek advice of 241 will have to read the license, and perhaps seek advice of
242 counsel.</para> 242 counsel.</para>
243 </listitem> 243 </listitem>
244 244
245 <listitem> 245 <listitem>
246 <para><varname>NO_BIN_ON_CDROM</varname></para> 246 <para><varname>NO_BIN_ON_CDROM</varname></para>
247 247
248 <para>Binaries may not be placed on CD-ROM containing other 248 <para>Binaries may not be placed on CD-ROM containing other
249 binary packages, for which a distribution charge may be made. 249 binary packages, for which a distribution charge may be made.
250 In this case, set this variable to 250 In this case, set this variable to
251 <varname>${RESTRICTED}</varname>.</para> 251 <varname>${RESTRICTED}</varname>.</para>
252 </listitem> 252 </listitem>
253 253
254 <listitem> 254 <listitem>
255 <para><varname>NO_BIN_ON_FTP</varname></para> 255 <para><varname>NO_BIN_ON_FTP</varname></para>
256 256
257 <para>Binaries may not made available on the Internet without 257 <para>Binaries may not made available on the Internet without
258 charge. In this case, set this variable to 258 charge. In this case, set this variable to
259 <varname>${RESTRICTED}</varname>. If this variable is set, 259 <varname>${RESTRICTED}</varname>. If this variable is set,
260 binary packages will not be included on ftp.NetBSD.org.</para> 260 binary packages will not be included on ftp.NetBSD.org.</para>
261 </listitem> 261 </listitem>
262 262
263 <listitem> 263 <listitem>
264 <para><varname>NO_SRC_ON_CDROM</varname></para> 264 <para><varname>NO_SRC_ON_CDROM</varname></para>
265 265
266 <para>Distfiles may not be placed on CD-ROM, together with 266 <para>Distfiles may not be placed on CD-ROM, together with
267 other distfiles, for which a fee may be charged. In this 267 other distfiles, for which a fee may be charged. In this
268 case, set this variable to <varname>${RESTRICTED}</varname>. 268 case, set this variable to <varname>${RESTRICTED}</varname>.
269 </para> 269 </para>
270 </listitem> 270 </listitem>
271 271
272 <listitem> 272 <listitem>
273 <para><varname>NO_SRC_ON_FTP</varname></para> 273 <para><varname>NO_SRC_ON_FTP</varname></para>
274 274
275 <para>Distfiles may not made available via FTP at no charge. 275 <para>Distfiles may not made available via FTP at no charge.
276 In this case, set this variable to 276 In this case, set this variable to
277 <varname>${RESTRICTED}</varname>. If this variable is set, 277 <varname>${RESTRICTED}</varname>. If this variable is set,
278 the distfile(s) will not be mirrored on ftp.NetBSD.org.</para> 278 the distfile(s) will not be mirrored on ftp.NetBSD.org.</para>
279 </listitem> 279 </listitem>
280 </itemizedlist> 280 </itemizedlist>
281 </sect2> 281 </sect2>
282 282
283 283
284 <sect2 id="dependencies"> 284 <sect2 id="dependencies">
285 <title>Handling dependencies</title> 285 <title>Handling dependencies</title>
286 286
287 <para>Your package may depend on some other package being present 287 <para>Your package may depend on some other package being present
288 - and there are various ways of expressing this dependency. 288 - and there are various ways of expressing this dependency.
289 pkgsrc supports the <varname>BUILD_DEPENDS</varname> and 289 pkgsrc supports the <varname>BUILD_DEPENDS</varname> and
290 <varname>DEPENDS</varname> definitions, the 290 <varname>DEPENDS</varname> definitions, the
291 <varname>USE_TOOLS</varname> definition, as well as dependencies 291 <varname>USE_TOOLS</varname> definition, as well as dependencies
292 via <filename>buildlink3.mk</filename>, which is the preferred way 292 via <filename>buildlink3.mk</filename>, which is the preferred way
293 to handle dependencies, and which uses the variables named above. 293 to handle dependencies, and which uses the variables named above.
294 See <xref linkend="buildlink"/> for more information.</para> 294 See <xref linkend="buildlink"/> for more information.</para>
295 295
296 <para>The basic difference between the two variables is as 296 <para>The basic difference between the two variables is as
297 follows: The <varname>DEPENDS</varname> definition registers 297 follows: The <varname>DEPENDS</varname> definition registers
298 that pre-requisite in the binary package so it will be pulled in 298 that pre-requisite in the binary package so it will be pulled in
299 when the binary package is later installed, whilst the 299 when the binary package is later installed, whilst the
300 <varname>BUILD_DEPENDS</varname> definition does not, marking a 300 <varname>BUILD_DEPENDS</varname> definition does not, marking a
301 dependency that is only needed for building the package.</para> 301 dependency that is only needed for building the package.</para>
302 302
303 <para>This means that if you only need a package present whilst 303 <para>This means that if you only need a package present whilst
304 you are building, it should be noted as a 304 you are building, it should be noted as a
305 <varname>BUILD_DEPENDS</varname>.</para> 305 <varname>BUILD_DEPENDS</varname>.</para>
306 306
307 <para>The format for a <varname>BUILD_DEPENDS</varname> and a 307 <para>The format for a <varname>BUILD_DEPENDS</varname> and a
308 <varname>DEPENDS</varname> definition is:</para> 308 <varname>DEPENDS</varname> definition is:</para>
309 309
310 <programlisting> 310 <programlisting>
311&lt;pre-req-package-name&gt;:../../&lt;category&gt;/&lt;pre-req-package&gt; 311&lt;pre-req-package-name&gt;:../../&lt;category&gt;/&lt;pre-req-package&gt;
312 </programlisting> 312 </programlisting>
313 313
314 <para>Please note that the <quote>pre-req-package-name</quote> 314 <para>Please note that the <quote>pre-req-package-name</quote>
315 may include any of the wildcard version numbers recognized by 315 may include any of the wildcard version numbers recognized by
316 &man.pkg.info.1;.</para> 316 &man.pkg.info.1;.</para>
317 317
318 <orderedlist> 318 <orderedlist>
319 <listitem> 319 <listitem>
320 <para>If your package needs another package's binaries or 320 <para>If your package needs another package's binaries or
321 libraries to build or run, and if that package has a 321 libraries to build or run, and if that package has a
322 <filename>buildlink3.mk</filename> file available, use it:</para> 322 <filename>buildlink3.mk</filename> file available, use it:</para>
323 323
324 <programlisting> 324 <programlisting>
325.include "../../graphics/jpeg/buildlink3.mk" 325.include "../../graphics/jpeg/buildlink3.mk"
326 </programlisting> 326 </programlisting>
327 </listitem> 327 </listitem>
328 328
329 <listitem> 329 <listitem>
330 <para>If your package needs to use another package to build 330 <para>If your package needs to use another package to build
331 itself and there is no <filename>buildlink3.mk</filename> 331 itself and there is no <filename>buildlink3.mk</filename>
332 file available, use the <varname>BUILD_DEPENDS</varname> 332 file available, use the <varname>BUILD_DEPENDS</varname>
333 definition:</para> 333 definition:</para>
334 334
335 <programlisting> 335 <programlisting>
336BUILD_DEPENDS+= autoconf-2.13:../../devel/autoconf 336BUILD_DEPENDS+= autoconf-2.13:../../devel/autoconf
337 </programlisting> 337 </programlisting>
338 </listitem> 338 </listitem>
339 339
340 <listitem> 340 <listitem>
341 341
342 <para>If your package needs a library with which to link and 342 <para>If your package needs a library with which to link and
343 again there is no <filename>buildlink3.mk</filename> file 343 again there is no <filename>buildlink3.mk</filename> file
344 available, this is specified using the 344 available, this is specified using the
345 <varname>DEPENDS</varname> definition. For example:</para> 345 <varname>DEPENDS</varname> definition. For example:</para>
346 346
347 <programlisting> 347 <programlisting>
348DEPENDS+= xpm-3.4j:../../graphics/xpm 348DEPENDS+= xpm-3.4j:../../graphics/xpm
349 </programlisting> 349 </programlisting>
350 350
351 <para>You can also use wildcards in package dependencies:</para> 351 <para>You can also use wildcards in package dependencies:</para>
352 352
353 <programlisting> 353 <programlisting>
354DEPENDS+= xpm-[0-9]*:../../graphics/xpm 354DEPENDS+= xpm-[0-9]*:../../graphics/xpm
355 </programlisting> 355 </programlisting>
356 356
357 <para>Note that such wildcard dependencies are retained when 357 <para>Note that such wildcard dependencies are retained when
358 creating binary packages. The dependency is checked when 358 creating binary packages. The dependency is checked when
359 installing the binary package and any package which matches 359 installing the binary package and any package which matches
360 the pattern will be used. Wildcard dependencies should be 360 the pattern will be used. Wildcard dependencies should be
361 used with care.</para> 361 used with care.</para>
362 362
363 <para>The <quote>-[0-9]*</quote> should be used instead of 363 <para>The <quote>-[0-9]*</quote> should be used instead of
364 <quote>-*</quote> to avoid potentially ambiguous matches 364 <quote>-*</quote> to avoid potentially ambiguous matches
365 such as <quote>tk-postgresql</quote> matching a 365 such as <quote>tk-postgresql</quote> matching a
366 <quote>tk-*</quote> <varname>DEPENDS</varname>.</para> 366 <quote>tk-*</quote> <varname>DEPENDS</varname>.</para>
367 367
368 <para>Wildcards can also be used to specify that a package 368 <para>Wildcards can also be used to specify that a package
369 will only build against a certain minimum version of a 369 will only build against a certain minimum version of a
370 pre-requisite:</para> 370 pre-requisite:</para>
371 371
372 <programlisting> 372 <programlisting>
373DEPENDS+= tiff>=3.5.4:../../graphics/tiff 373DEPENDS+= tiff>=3.5.4:../../graphics/tiff
374 </programlisting> 374 </programlisting>
375 375
376 <para>This means that the package will build against version 376 <para>This means that the package will build against version
377 3.5.4 of the tiff library or newer. Such a dependency may 377 3.5.4 of the tiff library or newer. Such a dependency may
378 be warranted if, for example, the API of the library has 378 be warranted if, for example, the API of the library has
379 changed with version 3.5.4 and a package would not compile 379 changed with version 3.5.4 and a package would not compile
380 against an earlier version of tiff.</para> 380 against an earlier version of tiff.</para>
381 381
382 <para>Please note that such dependencies should only be 382 <para>Please note that such dependencies should only be
383 updated if a package requires a newer pre-requisite, but 383 updated if a package requires a newer pre-requisite, but
384 not to denote recommendations such as 384 not to denote recommendations such as
385 ABI changes that do not prevent a package from building 385 ABI changes that do not prevent a package from building
386 correctly. Such recommendations can be expressed using 386 correctly. Such recommendations can be expressed using
387 <varname>ABI_DEPENDS</varname>:</para> 387 <varname>ABI_DEPENDS</varname>:</para>
388 388
389 <programlisting> 389 <programlisting>
390ABI_DEPENDS+= tiff>=3.6.1:../../graphics/tiff 390ABI_DEPENDS+= tiff>=3.6.1:../../graphics/tiff
391 </programlisting> 391 </programlisting>
392 392
393 <para>In addition to the above <varname>DEPENDS</varname> 393 <para>In addition to the above <varname>DEPENDS</varname>
394 line, this denotes that while a package will build against 394 line, this denotes that while a package will build against
395 tiff&gt;=3.5.4, at least version 3.6.1 is recommended. 395 tiff&gt;=3.5.4, at least version 3.6.1 is recommended.
396 <varname>ABI_DEPENDS</varname> entries will be turned into 396 <varname>ABI_DEPENDS</varname> entries will be turned into
397 dependencies unless explicitly ignored (in which case a 397 dependencies unless explicitly ignored (in which case a
398 warning will be printed).</para> 398 warning will be printed).</para>
399 399
400 <para>To ignore these ABI dependency recommendations and just 400 <para>To ignore these ABI dependency recommendations and just
401 use the required <varname>DEPENDS</varname>, set 401 use the required <varname>DEPENDS</varname>, set
402 <varname>USE_ABI_DEPENDS=NO</varname>. This may make 402 <varname>USE_ABI_DEPENDS=NO</varname>. This may make
403 it easier and faster to update packages built using pkgsrc, 403 it easier and faster to update packages built using pkgsrc,
404 since older compatible dependencies can continue to be 404 since older compatible dependencies can continue to be
405 used. This is useful for people who watch their rebuilds 405 used. This is useful for people who watch their rebuilds
406 very carefully; it is not very good as a general-purpose 406 very carefully; it is not very good as a general-purpose
407 hammer. If you use it, you need to be mindful of possible 407 hammer. If you use it, you need to be mindful of possible
408 ABI changes, including those from the underlying OS.</para> 408 ABI changes, including those from the underlying OS.</para>
409 409
410 <para>Packages that are built with recommendations ignored 410 <para>Packages that are built with recommendations ignored
411 may not be uploaded to ftp.NetBSD.org by developers and 411 may not be uploaded to ftp.NetBSD.org by developers and
412 should not be used across different systems that may have 412 should not be used across different systems that may have
413 different versions of binary packages installed.</para> 413 different versions of binary packages installed.</para>
414 414
415 <para>For security fixes, please update the package 415 <para>For security fixes, please update the package
416 vulnerabilities file. See <xref 416 vulnerabilities file. See <xref
417 linkend="security-handling"/> for more 417 linkend="security-handling"/> for more
418 information.</para> 418 information.</para>
419 </listitem> 419 </listitem>
420 420
421 <listitem> 421 <listitem>
422 <para>If your package needs some executable to be able to run 422 <para>If your package needs some executable to be able to run
423 correctly and if there's no 423 correctly and if there's no
424 <filename>buildlink3.mk</filename> file, this is specified 424 <filename>buildlink3.mk</filename> file, this is specified
425 using the <varname>DEPENDS</varname> variable. The 425 using the <varname>DEPENDS</varname> variable. The
426 <filename role="pkg">print/lyx</filename> package needs to 426 <filename role="pkg">print/lyx</filename> package needs to
427 be able to execute the latex binary from the teTeX package 427 be able to execute the latex binary from the teTeX package
428 when it runs, and that is specified:</para> 428 when it runs, and that is specified:</para>
429 429
430 <programlisting> 430 <programlisting>
431DEPENDS+= teTeX-[0-9]*:../../print/teTeX 431DEPENDS+= teTeX-[0-9]*:../../print/teTeX
432 </programlisting> 432 </programlisting>
433 433
434 <para>The comment about wildcard dependencies from previous 434 <para>The comment about wildcard dependencies from previous
435 paragraph applies here, too.</para> 435 paragraph applies here, too.</para>
436 </listitem> 436 </listitem>
437 </orderedlist> 437 </orderedlist>
438 438
439 <para>If your package needs files from another package to build, 439 <para>If your package needs files from another package to build,
440 add the relevant distribution files to 440 add the relevant distribution files to
441 <varname>DISTFILES</varname>, so they will be extracted 441 <varname>DISTFILES</varname>, so they will be extracted
442 automatically. See the <filename 442 automatically. See the <filename
443 role="pkg">print/ghostscript</filename> package for an example. 443 role="pkg">print/ghostscript</filename> package for an example.
444 (It relies on the jpeg sources being present in source form 444 (It relies on the jpeg sources being present in source form
445 during the build.)</para> 445 during the build.)</para>
446 </sect2> 446 </sect2>
447 447
448 448
449 <sect2 id="conflicts"> 449 <sect2 id="conflicts">
450 <title>Handling conflicts with other packages</title> 450 <title>Handling conflicts with other packages</title>
451 451
452 <para>Your package may conflict with other packages a user might 452 <para>Your package may conflict with other packages a user might
453 already have installed on his system, e.g. if your package 453 already have installed on his system, e.g. if your package
454 installs the same set of files as another package in the pkgsrc 454 installs the same set of files as another package in the pkgsrc
455 tree.</para> 455 tree.</para>
456 456
457 <para>In this case you can set <varname>CONFLICTS</varname> to a 457 <para>In this case you can set <varname>CONFLICTS</varname> to a
458 space-separated list of packages (including version string) your 458 space-separated list of packages (including version string) your
459 package conflicts with.</para> 459 package conflicts with.</para>
460 460
461 <para>For example, <filename role="pkg">x11/Xaw3d</filename> 461 <para>For example, <filename role="pkg">x11/Xaw3d</filename>
462 and <filename role="pkg">x11/Xaw-Xpm</filename> 462 and <filename role="pkg">x11/Xaw-Xpm</filename>
463 install the same shared library, thus you set in 463 install the same shared library, thus you set in
464 <filename>pkgsrc/x11/Xaw3d/Makefile</filename>:</para> 464 <filename>pkgsrc/x11/Xaw3d/Makefile</filename>:</para>
465 465
466 <programlisting> 466 <programlisting>
467CONFLICTS= Xaw-Xpm-[0-9]* 467CONFLICTS= Xaw-Xpm-[0-9]*
468 </programlisting> 468 </programlisting>
469 469
470 <para>and in <filename>pkgsrc/x11/Xaw-Xpm/Makefile</filename>:</para> 470 <para>and in <filename>pkgsrc/x11/Xaw-Xpm/Makefile</filename>:</para>
471 471
472 <programlisting> 472 <programlisting>
473CONFLICTS= Xaw3d-[0-9]* 473CONFLICTS= Xaw3d-[0-9]*
474 </programlisting> 474 </programlisting>
475 475
476 <para>Packages will automatically conflict with other packages 476 <para>Packages will automatically conflict with other packages
477 with the name prefix and a different version 477 with the name prefix and a different version
478 string. <quote>Xaw3d-1.5</quote> e.g. will automatically 478 string. <quote>Xaw3d-1.5</quote> e.g. will automatically
479 conflict with the older version <quote>Xaw3d-1.3</quote>.</para> 479 conflict with the older version <quote>Xaw3d-1.3</quote>.</para>
480 </sect2> 480 </sect2>
481 481
482 482
483 <sect2 id="not-building-packages"> 483 <sect2 id="not-building-packages">
484 <title>Packages that cannot or should not be built</title> 484 <title>Packages that cannot or should not be built</title>
485 485
486 <para>There are several reasons why a package might be 486 <para>There are several reasons why a package might be
487 instructed to not build under certain circumstances. If the 487 instructed to not build under certain circumstances. If the
488 package builds and runs on most platforms, the exceptions 488 package builds and runs on most platforms, the exceptions
489 should be noted with <varname>NOT_FOR_PLATFORM</varname>. If 489 should be noted with <varname>NOT_FOR_PLATFORM</varname>. If
490 the package builds and runs on a small handful of platforms, 490 the package builds and runs on a small handful of platforms,
491 set <varname>ONLY_FOR_PLATFORM</varname> instead. 491 set <varname>ONLY_FOR_PLATFORM</varname> instead.
492 Both <varname>ONLY_FOR_PLATFORM</varname> and 492 Both <varname>ONLY_FOR_PLATFORM</varname> and
493 <varname>NOT_FOR_PLATFORM</varname> are OS triples 493 <varname>NOT_FOR_PLATFORM</varname> are OS triples
494 (OS-version-platform) that can use glob-style 494 (OS-version-platform) that can use glob-style
495 wildcards.</para> 495 wildcards.</para>
496 <para>Some packages are tightly bound to a specific version of an 496 <para>Some packages are tightly bound to a specific version of an
497 operating system, e.g. LKMs or <filename 497 operating system, e.g. LKMs or <filename
498 role="pkg">sysutils/lsof</filename>. Such binary packages are not 498 role="pkg">sysutils/lsof</filename>. Such binary packages are not
499 backwards compatible with other versions of the OS, and should be 499 backwards compatible with other versions of the OS, and should be
500 uploaded to a version specific directory on the FTP server. Mark 500 uploaded to a version specific directory on the FTP server. Mark
501 these packages by setting <varname>OSVERSION_SPECIFIC</varname> to 501 these packages by setting <varname>OSVERSION_SPECIFIC</varname> to
502 <quote>yes</quote>. This variable is not currently used by any of 502 <quote>yes</quote>. This variable is not currently used by any of
503 the package system internals, but may be used in the 503 the package system internals, but may be used in the
504 future.</para> 504 future.</para>
505 <para>If the package should be skipped (for example, because it 505 <para>If the package should be skipped (for example, because it
506 provides functionality already provided by the system), set 506 provides functionality already provided by the system), set
507 <varname>PKG_SKIP_REASON</varname> to a descriptive message. If 507 <varname>PKG_SKIP_REASON</varname> to a descriptive message. If
508 the package should fail because some preconditions are not met, 508 the package should fail because some preconditions are not met,
509 set <varname>PKG_FAIL_REASON</varname> to a descriptive 509 set <varname>PKG_FAIL_REASON</varname> to a descriptive
510 message.</para> 510 message.</para>
511 </sect2> 511 </sect2>
512 512
513 513
514 <sect2 id="undeletable-packages"> 514 <sect2 id="undeletable-packages">
515 <title>Packages which should not be deleted, once installed</title> 515 <title>Packages which should not be deleted, once installed</title>
516 516
517 <para>To ensure that a package may not be deleted, once it has been 517 <para>To ensure that a package may not be deleted, once it has been
518 installed, the <varname>PKG_PRESERVE</varname> definition should 518 installed, the <varname>PKG_PRESERVE</varname> definition should
519 be set in the package Makefile. This will be carried into any 519 be set in the package Makefile. This will be carried into any
520 binary package that is made from this pkgsrc entry. A 520 binary package that is made from this pkgsrc entry. A
521 <quote>preserved</quote> package will 521 <quote>preserved</quote> package will
522 not be deleted using &man.pkg.delete.1; unless the 522 not be deleted using &man.pkg.delete.1; unless the
523 <quote>-f</quote> option is used.</para> 523 <quote>-f</quote> option is used.</para>
524 </sect2> 524 </sect2>
525 525
526 526
527 <sect2 id="security-handling"> 527 <sect2 id="security-handling">
528 <title>Handling packages with security problems</title> 528 <title>Handling packages with security problems</title>
529 529
530 <para>When a vulnerability is found, this should be noted in 530 <para>When a vulnerability is found, this should be noted in
531 <filename>localsrc/security/advisories/pkg-vulnerabilities</filename>, 531 <filename>localsrc/security/advisories/pkg-vulnerabilities</filename>,
532 and after committing that file, use <command>make upload</command> 532 and after committing that file, use <command>make upload</command>
533 in the same directory to update the file on ftp.NetBSD.org.</para> 533 in the same directory to update the file on ftp.NetBSD.org.</para>
534 534
535 <para>After fixing the vulnerability by a patch, its 535 <para>After fixing the vulnerability by a patch, its
536 <varname>PKGREVISION</varname> should be increased (this 536 <varname>PKGREVISION</varname> should be increased (this
537 is of course not necessary if the problem is fixed by using 537 is of course not necessary if the problem is fixed by using
538 a newer release of the software).</para> 538 a newer release of the software).</para>
539 539
540 <para>Also, if the fix should be applied to the stable pkgsrc 540 <para>Also, if the fix should be applied to the stable pkgsrc
541 branch, be sure to submit a pullup request!</para> 541 branch, be sure to submit a pullup request!</para>
542 542
543 <para>Binary packages already on ftp.NetBSD.org will be handled 543 <para>Binary packages already on ftp.NetBSD.org will be handled
544 semi-automatically by a weekly cron job.</para> 544 semi-automatically by a weekly cron job.</para>
545 </sect2> 545 </sect2>
546 546
547 547
548 <sect2 id="bumping-pkgrevision"> 548 <sect2 id="bumping-pkgrevision">
549 <title>How to handle incrementing versions when fixing an existing package</title> 549 <title>How to handle incrementing versions when fixing an existing package</title>
550 550
551 <para>When making fixes to an existing package it can be useful 551 <para>When making fixes to an existing package it can be useful
552 to change the version number in <varname>PKGNAME</varname>. To 552 to change the version number in <varname>PKGNAME</varname>. To
553 avoid conflicting with future versions by the original author, a 553 avoid conflicting with future versions by the original author, a
554 <quote>nb1</quote>, <quote>nb2</quote>, ... suffix can be used 554 <quote>nb1</quote>, <quote>nb2</quote>, ... suffix can be used
555 on package versions by setting <varname>PKGREVISION=1</varname> 555 on package versions by setting <varname>PKGREVISION=1</varname>
556 (2, ...). The <quote>nb</quote> is treated like a 556 (2, ...). The <quote>nb</quote> is treated like a
557 <quote>.</quote> by the package tools. e.g.</para> 557 <quote>.</quote> by the package tools. e.g.</para>
558 558
559 <programlisting> 559 <programlisting>
560DISTNAME= foo-17.42 560DISTNAME= foo-17.42
561PKGREVISION= 9 561PKGREVISION= 9
562 </programlisting> 562 </programlisting>
563 563
564 <para>will result in a <varname>PKGNAME</varname> of 564 <para>will result in a <varname>PKGNAME</varname> of
565 <quote>foo-17.42nb9</quote>. If you want to use the original 565 <quote>foo-17.42nb9</quote>. If you want to use the original
566 value of <varname>PKGNAME</varname> without the <quote>nbX</quote> 566 value of <varname>PKGNAME</varname> without the <quote>nbX</quote>
567 suffix, e.g. for setting <varname>DIST_SUBDIR</varname>, use 567 suffix, e.g. for setting <varname>DIST_SUBDIR</varname>, use
568 <varname>PKGNAME_NOREV</varname>.</para> 568 <varname>PKGNAME_NOREV</varname>.</para>
569 569
570 <para>When a new release of the package is released, the 570 <para>When a new release of the package is released, the
571 <varname>PKGREVISION</varname> should be removed, e.g. on a new 571 <varname>PKGREVISION</varname> should be removed, e.g. on a new
572 minor release of the above package, things should be like:</para> 572 minor release of the above package, things should be like:</para>
573 573
574 <programlisting> 574 <programlisting>
575DISTNAME= foo-17.43 575DISTNAME= foo-17.43
576 </programlisting> 576 </programlisting>
577 577
578 <para><varname>PKGREVISION</varname> should be incremented for any 578 <para><varname>PKGREVISION</varname> should be incremented for any
579 non-trivial change in the resulting binary package. Without a 579 non-trivial change in the resulting binary package. Without a
580 <varname>PKGREVISION</varname> bump, someone with the previous 580 <varname>PKGREVISION</varname> bump, someone with the previous
581 version installed has no way of knowing that their package is out 581 version installed has no way of knowing that their package is out
582 of date. Thus, changes without increasing 582 of date. Thus, changes without increasing
583 <varname>PKGREVISION</varname> are essentially labeled "this is so 583 <varname>PKGREVISION</varname> are essentially labeled "this is so
584 trivial that no reasonable person would want to upgrade", and this 584 trivial that no reasonable person would want to upgrade", and this
585 is the rough test for when increasing 585 is the rough test for when increasing
586 <varname>PKGREVISION</varname> is appropriate. Examples of 586 <varname>PKGREVISION</varname> is appropriate. Examples of
587 changes that do not merit increasing 587 changes that do not merit increasing
588 <varname>PKGREVISION</varname> are:</para> 588 <varname>PKGREVISION</varname> are:</para>
589 589
590 <itemizedlist><listitem> 590 <itemizedlist><listitem>
591 <para>Changing <varname>HOMEPAGE</varname>, 591 <para>Changing <varname>HOMEPAGE</varname>,
592 <varname>MAINTAINER</varname>, <varname>OWNER</varname>, 592 <varname>MAINTAINER</varname>, <varname>OWNER</varname>,
593 or comments in Makefile.</para></listitem><listitem><para> 593 or comments in Makefile.</para></listitem><listitem><para>
594 Changing build variables if the resulting binary package is the same.</para></listitem><listitem><para> 594 Changing build variables if the resulting binary package is the same.</para></listitem><listitem><para>
595 Changing <filename>DESCR</filename>.</para></listitem><listitem><para> 595 Changing <filename>DESCR</filename>.</para></listitem><listitem><para>
596 Adding <varname>PKG_OPTIONS</varname> if the default options don't change.</para></listitem> 596 Adding <varname>PKG_OPTIONS</varname> if the default options don't change.</para></listitem>
597 </itemizedlist> 597 </itemizedlist>
598 598
599 <para>Examples of changes that do merit an increase to 599 <para>Examples of changes that do merit an increase to
600 <varname>PKGREVISION</varname> include:</para> 600 <varname>PKGREVISION</varname> include:</para>
601 <itemizedlist><listitem><para> 601 <itemizedlist><listitem><para>
602 Security fixes</para></listitem><listitem><para> 602 Security fixes</para></listitem><listitem><para>
603 Changes or additions to a patch file</para></listitem><listitem><para> 603 Changes or additions to a patch file</para></listitem><listitem><para>
604 Changes to the <filename>PLIST</filename></para></listitem> 604 Changes to the <filename>PLIST</filename></para></listitem>
605 <listitem><para>A dependency is changed or renamed.</para></listitem> 605 <listitem><para>A dependency is changed or renamed.</para></listitem>
606 </itemizedlist> 606 </itemizedlist>
607 607
608 <para>PKGREVISION must also be incremented when dependencies have ABI 608 <para>PKGREVISION must also be incremented when dependencies have ABI
609 changes.</para> 609 changes.</para>
610 </sect2> 610 </sect2>
611 611
612 <sect2 id="fixes.subst"> 612 <sect2 id="fixes.subst">
613 <title>Substituting variable text in the package files (the SUBST framework)</title> 613 <title>Substituting variable text in the package files (the SUBST framework)</title>
614 614
615 <para>When you want to replace the same text in multiple files 615 <para>When you want to replace the same text in multiple files
616 or when the replacement text varies, patches alone cannot help. 616 or when the replacement text varies, patches alone cannot help.
617 This is where the SUBST framework comes in. It provides an 617 This is where the SUBST framework comes in. It provides an
618 easy-to-use interface for replacing text in files. 618 easy-to-use interface for replacing text in files.
619 Example:</para> 619 Example:</para>
620 620
621 <programlisting> 621 <programlisting>
622SUBST_CLASSES+= fix-paths 622SUBST_CLASSES+= fix-paths
623SUBST_STAGE.fix-paths= pre-configure 623SUBST_STAGE.fix-paths= pre-configure
624SUBST_MESSAGE.fix-paths= Fixing absolute paths. 624SUBST_MESSAGE.fix-paths= Fixing absolute paths.
625SUBST_FILES.fix-paths= src/*.c 625SUBST_FILES.fix-paths= src/*.c
626SUBST_FILES.fix-paths+= scripts/*.sh 626SUBST_FILES.fix-paths+= scripts/*.sh
627SUBST_SED.fix-paths= -e 's,"/usr/local,"${PREFIX},g' 627SUBST_SED.fix-paths= -e 's,"/usr/local,"${PREFIX},g'
628SUBST_SED.fix-paths+= -e 's,"/var/log,"${VARBASE}/log,g' 628SUBST_SED.fix-paths+= -e 's,"/var/log,"${VARBASE}/log,g'
629 </programlisting> 629 </programlisting>
630 630
631 <para><varname>SUBST_CLASSES</varname> is a list of identifiers 631 <para><varname>SUBST_CLASSES</varname> is a list of identifiers
632 that are used to identify the different SUBST blocks that are 632 that are used to identify the different SUBST blocks that are
633 defined. The SUBST framework is heavily used by pkgsrc, so it is 633 defined. The SUBST framework is heavily used by pkgsrc, so it is
634 important to always use the <literal>+=</literal> operator with 634 important to always use the <literal>+=</literal> operator with
635 this variable. Otherwise some substitutions may be 635 this variable. Otherwise some substitutions may be
636 skipped.</para> 636 skipped.</para>
637 637
638 <para>The remaining variables of each SUBST block are 638 <para>The remaining variables of each SUBST block are
639 parameterized with the identifier from the first line 639 parameterized with the identifier from the first line
640 (<literal>fix-paths</literal> in this case.) They can be seen as 640 (<literal>fix-paths</literal> in this case.) They can be seen as
641 parameters to a function call.</para> 641 parameters to a function call.</para>
642 642
643 <para><varname>SUBST_STAGE.*</varname> specifies the stage at 643 <para><varname>SUBST_STAGE.*</varname> specifies the stage at
644 which the replacement will take place. All combinations of 644 which the replacement will take place. All combinations of
645 <literal>pre-</literal>, <literal>do-</literal> and 645 <literal>pre-</literal>, <literal>do-</literal> and
646 <literal>post-</literal> together with a phase name are 646 <literal>post-</literal> together with a phase name are
647 possible, though only few are actually used. Most commonly used 647 possible, though only few are actually used. Most commonly used
648 are <literal>post-patch</literal> and 648 are <literal>post-patch</literal> and
649 <literal>pre-configure</literal>. Of these two, 649 <literal>pre-configure</literal>. Of these two,
650 <literal>pre-configure</literal> should be preferred because 650 <literal>pre-configure</literal> should be preferred because
651 then it is possible to run <command>bmake patch</command> and 651 then it is possible to run <command>bmake patch</command> and
652 have the state after applying the patches but before making any 652 have the state after applying the patches but before making any
653 other changes. This is especially useful when you are debugging 653 other changes. This is especially useful when you are debugging
654 a package in order to create new patches for it. Similarly, 654 a package in order to create new patches for it. Similarly,
655 <literal>post-build</literal> is preferred over 655 <literal>post-build</literal> is preferred over
656 <literal>pre-install</literal>, because the install phase should 656 <literal>pre-install</literal>, because the install phase should
657 generally be kept as simple as possible. When you use 657 generally be kept as simple as possible. When you use
658 <literal>post-build</literal>, you have the same files in the 658 <literal>post-build</literal>, you have the same files in the
659 working directory that will be installed later, so you can check 659 working directory that will be installed later, so you can check
660 if the substitution has succeeded.</para> 660 if the substitution has succeeded.</para>
661 661
662 <para><varname>SUBST_MESSAGE.*</varname> is an optional text 662 <para><varname>SUBST_MESSAGE.*</varname> is an optional text
663 that is printed just before the substitution is done.</para> 663 that is printed just before the substitution is done.</para>
664 664
665 <para><varname>SUBST_FILES.*</varname> is the list of shell 665 <para><varname>SUBST_FILES.*</varname> is the list of shell
666 globbing patterns that specifies the files in which the 666 globbing patterns that specifies the files in which the
667 substitution will take place. The patterns are interpreted 667 substitution will take place. The patterns are interpreted
668 relatively to the <varname>WRKSRC</varname> directory.</para> 668 relatively to the <varname>WRKSRC</varname> directory.</para>
669 669
670 <para><varname>SUBST_SED.*</varname> is a list of arguments to 670 <para><varname>SUBST_SED.*</varname> is a list of arguments to
671 &man.sed.1; that specify the actual substitution. Every sed 671 &man.sed.1; that specify the actual substitution. Every sed
672 command should be prefixed with <literal>-e</literal>, so that 672 command should be prefixed with <literal>-e</literal>, so that
673 all SUBST blocks look uniform.</para> 673 all SUBST blocks look uniform.</para>
674 674
675 <para>There are some more variables, but they are so seldomly 675 <para>There are some more variables, but they are so seldomly
676 used that they are only documented in the 676 used that they are only documented in the
677 <filename>mk/subst.mk</filename> file.</para> 677 <filename>mk/subst.mk</filename> file.</para>
678 678
679 </sect2> 679 </sect2>
680</sect1> 680</sect1>
681<sect1 id="fixes.fetch"> 681<sect1 id="fixes.fetch">
682 <title>Fixing problems in the <emphasis>fetch</emphasis> phase</title> 682 <title>Fixing problems in the <emphasis>fetch</emphasis> phase</title>
683 683
684 <sect2 id="no-plain-download"> 684 <sect2 id="no-plain-download">
685 <title>Packages whose distfiles aren't available for plain downloading</title> 685 <title>Packages whose distfiles aren't available for plain downloading</title>
686 686
687 <para>If you need to download from a dynamic URL you can set 687 <para>If you need to download from a dynamic URL you can set
688 <varname>DYNAMIC_MASTER_SITES</varname> and a <command>make 688 <varname>DYNAMIC_MASTER_SITES</varname> and a <command>make
689 fetch</command> will call <filename>files/getsite.sh</filename> 689 fetch</command> will call <filename>files/getsite.sh</filename>
690 with the name of each file to download as an argument, expecting 690 with the name of each file to download as an argument, expecting
691 it to output the URL of the directory from which to download 691 it to output the URL of the directory from which to download
692 it. <filename role="pkg">graphics/ns-cult3d</filename> is an 692 it. <filename role="pkg">graphics/ns-cult3d</filename> is an
693 example of this usage.</para> 693 example of this usage.</para>
694 694
695 <para>If the download can't be automated, because the user must 695 <para>If the download can't be automated, because the user must
696 submit personal information to apply for a password, or must pay 696 submit personal information to apply for a password, or must pay
697 for the source, or whatever, you can set 697 for the source, or whatever, you can set
698 <varname>FETCH_MESSAGE</varname> to a list of lines that are 698 <varname>FETCH_MESSAGE</varname> to a list of lines that are
699 displayed to the user before aborting the build. Example:</para> 699 displayed to the user before aborting the build. Example:</para>
700 700
701 <programlisting> 701 <programlisting>
702FETCH_MESSAGE= "Please download the files" 702FETCH_MESSAGE= "Please download the files"
703FETCH_MESSAGE+= " "${DISTFILES:Q} 703FETCH_MESSAGE+= " "${DISTFILES:Q}
704FETCH_MESSAGE+= "manually from "${MASTER_SITES:Q}"." 704FETCH_MESSAGE+= "manually from "${MASTER_SITES:Q}"."
705 </programlisting> 705 </programlisting>
706 706
707 </sect2> 707 </sect2>
708 708
709 709
710 <sect2 id="modified-distfiles-same-name"> 710 <sect2 id="modified-distfiles-same-name">
711 <title>How to handle modified distfiles with the 'old' name</title> 711 <title>How to handle modified distfiles with the 'old' name</title>
712 712
713 <para>Sometimes authors of a software package make some 713 <para>Sometimes authors of a software package make some
714 modifications after the software was released, and they put up a 714 modifications after the software was released, and they put up a
715 new distfile without changing the package's version number. If a 715 new distfile without changing the package's version number. If a
716 package is already in pkgsrc at that time, the checksum will 716 package is already in pkgsrc at that time, the checksum will
717 no longer match. The contents of the new distfile should be 717 no longer match. The contents of the new distfile should be
718 compared against the old one before changing anything, to make 718 compared against the old one before changing anything, to make
719 sure the distfile was really updated on purpose, and that 719 sure the distfile was really updated on purpose, and that
720 no trojan horse or so crept in. 720 no trojan horse or so crept in.
721 Please mention that the distfiles were compared and what was found 721 Please mention that the distfiles were compared and what was found
722 in your commit message. 722 in your commit message.
723 Then, the correct way to work around this is to 723 Then, the correct way to work around this is to
724 set <varname>DIST_SUBDIR</varname> to a unique directory name, 724 set <varname>DIST_SUBDIR</varname> to a unique directory name,
725 usually based on <varname>PKGNAME_NOREV</varname>. All 725 usually based on <varname>PKGNAME_NOREV</varname>. All
726 <varname>DISTFILES</varname> and 726 <varname>DISTFILES</varname> and
727 <varname>PATCHFILES</varname> for this package will be put in that 727 <varname>PATCHFILES</varname> for this package will be put in that
728 subdirectory of the local distfiles directory. 728 subdirectory of the local distfiles directory.
729 (See <xref linkend="bumping-pkgrevision"/> for more details.) 729 (See <xref linkend="bumping-pkgrevision"/> for more details.)
730 In case this 730 In case this
731 happens more often, <varname>PKGNAME</varname> can be used (thus 731 happens more often, <varname>PKGNAME</varname> can be used (thus
732 including the <filename>nbX</filename> suffix) or a date stamp 732 including the <filename>nbX</filename> suffix) or a date stamp
733 can be appended, like <varname>${PKGNAME_NOREV}-YYYYMMDD</varname>. 733 can be appended, like <varname>${PKGNAME_NOREV}-YYYYMMDD</varname>.
734 Do not forget regenerating the <filename>distinfo</filename> file 734 Do not forget regenerating the <filename>distinfo</filename> file
735 after that, since it contains the <varname>DIST_SUBDIR</varname> 735 after that, since it contains the <varname>DIST_SUBDIR</varname>
736 path in the filenames. 736 path in the filenames.
737 Also increase the PKGREVISION if the installed package is different. 737 Also increase the PKGREVISION if the installed package is different.
738 Furthermore, a mail to the package's authors seems appropriate 738 Furthermore, a mail to the package's authors seems appropriate
739 telling them that changing distfiles after releases without 739 telling them that changing distfiles after releases without
740 changing the file names is not good practice.</para> 740 changing the file names is not good practice.</para>
741 </sect2> 741 </sect2>
742</sect1> 742</sect1>
743 743
744 744
745<sect1 id="fixes.configure"> 745<sect1 id="fixes.configure">
746 <title>Fixing problems in the <emphasis>configure</emphasis> phase</title> 746 <title>Fixing problems in the <emphasis>configure</emphasis> phase</title>
747 747
748 <sect2 id="fixes.libtool"> 748 <sect2 id="fixes.libtool">
749 <title>Shared libraries - libtool</title> 749 <title>Shared libraries - libtool</title>
750 750
751 <para>pkgsrc supports many different machines, with different 751 <para>pkgsrc supports many different machines, with different
752 object formats like a.out and ELF, and varying abilities to do 752 object formats like a.out and ELF, and varying abilities to do
753 shared library and dynamic loading at all. To accompany this, 753 shared library and dynamic loading at all. To accompany this,
754 varying commands and options have to be passed to the 754 varying commands and options have to be passed to the
755 compiler, linker, etc. to get the Right Thing, which can be 755 compiler, linker, etc. to get the Right Thing, which can be
756 pretty annoying especially if you don't have all the machines 756 pretty annoying especially if you don't have all the machines
757 at your hand to test things. The 757 at your hand to test things. The
758 <filename role="pkg">devel/libtool</filename> pkg 758 <filename role="pkg">devel/libtool</filename> pkg
759 can help here, as it just <quote>knows</quote> how to build 759 can help here, as it just <quote>knows</quote> how to build
760 both static and dynamic libraries from a set of source files, 760 both static and dynamic libraries from a set of source files,
761 thus being platform-independent.</para> 761 thus being platform-independent.</para>
762 762
763 <para>Here's how to use libtool in a package in seven simple 763 <para>Here's how to use libtool in a package in seven simple
764 steps:</para> 764 steps:</para>
765 765
766 <orderedlist> 766 <orderedlist>
767 <listitem> 767 <listitem>
768 <para>Add <varname>USE_LIBTOOL=yes</varname> to the package 768 <para>Add <varname>USE_LIBTOOL=yes</varname> to the package
769 Makefile.</para> 769 Makefile.</para>
770 </listitem> 770 </listitem>
771 771
772 <listitem> 772 <listitem>
773 <para>For library objects, use <quote>${LIBTOOL} --mode=compile 773 <para>For library objects, use <quote>${LIBTOOL} --mode=compile
774 ${CC}</quote> in place of <quote>${CC}</quote>. You could even 774 ${CC}</quote> in place of <quote>${CC}</quote>. You could even
775 add it to the definition of <varname>CC</varname>, if only 775 add it to the definition of <varname>CC</varname>, if only
776 libraries are being built in a given Makefile. This one command 776 libraries are being built in a given Makefile. This one command
777 will build both PIC and non-PIC library objects, so you need not 777 will build both PIC and non-PIC library objects, so you need not
778 have separate shared and non-shared library rules.</para> 778 have separate shared and non-shared library rules.</para>
779 </listitem> 779 </listitem>
780 780
781 <listitem> 781 <listitem>
782 <para>For the linking of the library, remove any 782 <para>For the linking of the library, remove any
783 <quote>ar</quote>, <quote>ranlib</quote>, and <quote>ld 783 <quote>ar</quote>, <quote>ranlib</quote>, and <quote>ld
784 -Bshareable</quote> commands, and instead use:</para> 784 -Bshareable</quote> commands, and instead use:</para>
785 785
786 <programlisting> 786 <programlisting>
787${LIBTOOL} --mode=link \ 787${LIBTOOL} --mode=link \
788 ${CC} -o ${.TARGET:.a=.la} \ 788 ${CC} -o ${.TARGET:.a=.la} \
789 ${OBJS:.o=.lo} \ 789 ${OBJS:.o=.lo} \
790 -rpath ${PREFIX}/lib \ 790 -rpath ${PREFIX}/lib \
791 -version-info major:minor 791 -version-info major:minor
792 </programlisting> 792 </programlisting>
793 793
794 <para>Note that the library is changed to have a 794 <para>Note that the library is changed to have a
795 <filename>.la</filename> extension, and the objects are 795 <filename>.la</filename> extension, and the objects are
796 changed to have a <filename>.lo</filename> 796 changed to have a <filename>.lo</filename>
797 extension. Change <varname>OBJS</varname> as 797 extension. Change <varname>OBJS</varname> as
798 necessary. This automatically creates all of the 798 necessary. This automatically creates all of the
799 <filename>.a</filename>, 799 <filename>.a</filename>,
800 <filename>.so.major.minor</filename>, and ELF symlinks (if 800 <filename>.so.major.minor</filename>, and ELF symlinks (if
801 necessary) in the build directory. Be sure to include 801 necessary) in the build directory. Be sure to include
802 <quote>-version-info</quote>, especially when major and 802 <quote>-version-info</quote>, especially when major and
803 minor are zero, as libtool will otherwise strip off the 803 minor are zero, as libtool will otherwise strip off the
804 shared library version.</para> 804 shared library version.</para>
805 805
806 <para>From the libtool manual:</para> 806 <para>From the libtool manual:</para>
807 807
808 <programlisting> 808 <programlisting>
809So, libtool library versions are described by three integers: 809So, libtool library versions are described by three integers:
810 810
811CURRENT 811CURRENT
812The most recent interface number that this library implements. 812The most recent interface number that this library implements.
813 813
814REVISION 814REVISION
815The implementation number of the CURRENT interface. 815The implementation number of the CURRENT interface.
816 816
817AGE 817AGE
818The difference between the newest and oldest interfaces that 818The difference between the newest and oldest interfaces that
819this library implements. In other words, the library implements 819this library implements. In other words, the library implements
820all the interface numbers in the range from number `CURRENT - 820all the interface numbers in the range from number `CURRENT -
821AGE' to `CURRENT'. 821AGE' to `CURRENT'.
822 822
823If two libraries have identical CURRENT and AGE numbers, then the 823If two libraries have identical CURRENT and AGE numbers, then the
824dynamic linker chooses the library with the greater REVISION number. 824dynamic linker chooses the library with the greater REVISION number.
825 </programlisting> 825 </programlisting>
826 826
827 <para>The <quote>-release</quote> option will produce 827 <para>The <quote>-release</quote> option will produce
828 different results for a.out and ELF (excluding symlinks) 828 different results for a.out and ELF (excluding symlinks)
829 in only one case. An ELF library of the form 829 in only one case. An ELF library of the form
830 <quote>libfoo-release.so.<emphasis>x</emphasis>.<emphasis>y</emphasis></quote> 830 <quote>libfoo-release.so.<emphasis>x</emphasis>.<emphasis>y</emphasis></quote>
831 will have a symlink of 831 will have a symlink of
832 <quote>libfoo.so.<emphasis>x</emphasis>.<emphasis>y</emphasis></quote> 832 <quote>libfoo.so.<emphasis>x</emphasis>.<emphasis>y</emphasis></quote>
833 on an a.out platform. This is handled 833 on an a.out platform. This is handled
834 automatically.</para> 834 automatically.</para>
835 835
836 <para>The <quote>-rpath argument</quote> is the install 836 <para>The <quote>-rpath argument</quote> is the install
837 directory of the library being built.</para> 837 directory of the library being built.</para>
838 838
839 <para>In the <filename>PLIST</filename>, include only the 839 <para>In the <filename>PLIST</filename>, include only the
840 <filename>.la</filename> file, the other files will be 840 <filename>.la</filename> file, the other files will be
841 added automatically.</para> 841 added automatically.</para>
842 </listitem> 842 </listitem>
843 843
844 <listitem> 844 <listitem>
845 <para>When linking shared object (<filename>.so</filename>) 845 <para>When linking shared object (<filename>.so</filename>)
846 files, i.e. files that are loaded via &man.dlopen.3;, NOT 846 files, i.e. files that are loaded via &man.dlopen.3;, NOT
847 shared libraries, use <quote>-module 847 shared libraries, use <quote>-module
848 -avoid-version</quote> to prevent them getting version 848 -avoid-version</quote> to prevent them getting version
849 tacked on.</para> 849 tacked on.</para>
850 850
851 <para>The <filename>PLIST</filename> file gets the 851 <para>The <filename>PLIST</filename> file gets the
852 <filename>foo.so</filename> entry.</para> 852 <filename>foo.so</filename> entry.</para>
853 </listitem> 853 </listitem>
854 854
855 <listitem> 855 <listitem>
856 <para>When linking programs that depend on these libraries 856 <para>When linking programs that depend on these libraries
857 <emphasis>before</emphasis> they are installed, preface 857 <emphasis>before</emphasis> they are installed, preface
858 the &man.cc.1; or &man.ld.1; line with <quote>${LIBTOOL} 858 the &man.cc.1; or &man.ld.1; line with <quote>${LIBTOOL}
859 --mode=link</quote>, and it will find the correct 859 --mode=link</quote>, and it will find the correct
860 libraries (static or shared), but please be aware that 860 libraries (static or shared), but please be aware that
861 libtool will not allow you to specify a relative path in 861 libtool will not allow you to specify a relative path in
862 -L (such as <quote>-L../somelib</quote>), because it 862 -L (such as <quote>-L../somelib</quote>), because it
863 expects you to change that argument to be the 863 expects you to change that argument to be the
864 <filename>.la</filename> file. e.g.</para> 864 <filename>.la</filename> file. e.g.</para>
865 865
866 <programlisting> 866 <programlisting>
867${LIBTOOL} --mode=link ${CC} -o someprog -L../somelib -lsomelib 867${LIBTOOL} --mode=link ${CC} -o someprog -L../somelib -lsomelib
868 </programlisting> 868 </programlisting>
869 869
870 <para>should be changed to:</para> 870 <para>should be changed to:</para>
871 871
872 <programlisting> 872 <programlisting>
873${LIBTOOL} --mode=link ${CC} -o <replaceable>someprog</replaceable> <replaceable>../somelib/somelib.la</replaceable> 873${LIBTOOL} --mode=link ${CC} -o <replaceable>someprog</replaceable> <replaceable>../somelib/somelib.la</replaceable>
874 </programlisting> 874 </programlisting>
875 875
876 <para>and it will do the right thing with the libraries.</para> 876 <para>and it will do the right thing with the libraries.</para>
877 </listitem> 877 </listitem>
878 878
879 <listitem> 879 <listitem>
880 <para>When installing libraries, preface the &man.install.1; 880 <para>When installing libraries, preface the &man.install.1;
881 or &man.cp.1; command with <quote>${LIBTOOL} 881 or &man.cp.1; command with <quote>${LIBTOOL}
882 --mode=install</quote>, and change the library name to 882 --mode=install</quote>, and change the library name to
883 <filename>.la</filename>. e.g.</para> 883 <filename>.la</filename>. e.g.</para>
884 884
885 <programlisting> 885 <programlisting>
886${LIBTOOL} --mode=install ${BSD_INSTALL_DATA} ${SOMELIB:.a=.la} ${PREFIX}/lib 886${LIBTOOL} --mode=install ${BSD_INSTALL_DATA} ${SOMELIB:.a=.la} ${PREFIX}/lib
887 </programlisting> 887 </programlisting>
888 888
889 <para>This will install the static <filename>.a</filename>, 889 <para>This will install the static <filename>.a</filename>,
890 shared library, any needed symlinks, and run 890 shared library, any needed symlinks, and run
891 &man.ldconfig.8;.</para> 891 &man.ldconfig.8;.</para>
892 </listitem> 892 </listitem>
893 893
894 <listitem> 894 <listitem>
895 <para>In your <filename>PLIST</filename>, include only 895 <para>In your <filename>PLIST</filename>, include only
896 the <filename>.la</filename> 896 the <filename>.la</filename>
897 file (this is a change from previous behaviour).</para> 897 file (this is a change from previous behaviour).</para>
898 </listitem> 898 </listitem>
899 </orderedlist> 899 </orderedlist>
900 </sect2> 900 </sect2>
901 901
902 902
903 <sect2 id="using-libtool"> 903 <sect2 id="using-libtool">
904 <title>Using libtool on GNU packages that already support libtool</title> 904 <title>Using libtool on GNU packages that already support libtool</title>
905 905
906 <para>Add <varname>USE_LIBTOOL=yes</varname> to the 906 <para>Add <varname>USE_LIBTOOL=yes</varname> to the
907 package Makefile. This will override the package's own libtool 907 package Makefile. This will override the package's own libtool
908 in most cases. For older libtool using packages, libtool is 908 in most cases. For older libtool using packages, libtool is
909 made by ltconfig script during the do-configure step; you can 909 made by ltconfig script during the do-configure step; you can
910 check the libtool script location by doing <command>make 910 check the libtool script location by doing <command>make
911 configure; find work*/ -name libtool</command>.</para> 911 configure; find work*/ -name libtool</command>.</para>
912 912
913 <para><varname>LIBTOOL_OVERRIDE</varname> specifies which libtool 913 <para><varname>LIBTOOL_OVERRIDE</varname> specifies which libtool
914 scripts, relative to <varname>WRKSRC</varname>, to override. By 914 scripts, relative to <varname>WRKSRC</varname>, to override. By
915 default, it is set to <quote>libtool */libtool 915 default, it is set to <quote>libtool */libtool
916 */*/libtool</quote>. If this does not match the location of the 916 */*/libtool</quote>. If this does not match the location of the
917 package's libtool script(s), set it as appropriate.</para> 917 package's libtool script(s), set it as appropriate.</para>
918 918
919 <para>If you do not need <filename>*.a</filename> static 919 <para>If you do not need <filename>*.a</filename> static
920 libraries built and installed, then use 920 libraries built and installed, then use
921 <varname>SHLIBTOOL_OVERRIDE</varname> instead.</para> 921 <varname>SHLIBTOOL_OVERRIDE</varname> instead.</para>
922 922
923 <para>If your package makes use of the platform-independent library 923 <para>If your package makes use of the platform-independent library
924 for loading dynamic shared objects, that comes with libtool 924 for loading dynamic shared objects, that comes with libtool
925 (libltdl), you should include devel/libltdl/buildlink3.mk.</para> 925 (libltdl), you should include devel/libltdl/buildlink3.mk.</para>
926 926
927 <para>Some packages use libtool incorrectly so that the package 927 <para>Some packages use libtool incorrectly so that the package
928 may not work or build in some circumstances. Some of the more 928 may not work or build in some circumstances. Some of the more
929 common errors are:</para> 929 common errors are:</para>
930 930
931 <itemizedlist> 931 <itemizedlist>
932 <listitem> 932 <listitem>
933 <para>The inclusion of a shared object (-module) as a dependent library in an 933 <para>The inclusion of a shared object (-module) as a dependent library in an
934 executable or library. This in itself isn't a problem if one of two things 934 executable or library. This in itself isn't a problem if one of two things
935 has been done:</para> 935 has been done:</para>
936 936
937 <orderedlist> 937 <orderedlist>
938 <listitem> 938 <listitem>
939 <para>The shared object is named correctly, i.e. 939 <para>The shared object is named correctly, i.e.
940 <filename>libfoo.la</filename>, not 940 <filename>libfoo.la</filename>, not
941 <filename>foo.la</filename></para> 941 <filename>foo.la</filename></para>
942 </listitem> 942 </listitem>
943 943
944 <listitem> 944 <listitem>
945 <para>The -dlopen option is used when linking an executable.</para> 945 <para>The -dlopen option is used when linking an executable.</para>
946 </listitem> 946 </listitem>
947 </orderedlist> 947 </orderedlist>
948 </listitem> 948 </listitem>
949 949
950 <listitem> 950 <listitem>
951 <para>The use of libltdl without the correct calls to initialisation routines. 951 <para>The use of libltdl without the correct calls to initialisation routines.
952 The function lt_dlinit() should be called and the macro 952 The function lt_dlinit() should be called and the macro
953 <varname>LTDL_SET_PRELOADED_SYMBOLS</varname> included in 953 <varname>LTDL_SET_PRELOADED_SYMBOLS</varname> included in
954 executables.</para> 954 executables.</para>
955 </listitem> 955 </listitem>
956 </itemizedlist> 956 </itemizedlist>
957 </sect2> 957 </sect2>
958 958
959 959
960 <sect2 id="autoconf-automake"> 960 <sect2 id="autoconf-automake">
961 <title>GNU Autoconf/Automake</title> 961 <title>GNU Autoconf/Automake</title>
962 962
963 <para>If a package needs GNU autoconf or automake to be executed 963 <para>If a package needs GNU autoconf or automake to be executed
964 to regenerate the configure script and Makefile.in makefile 964 to regenerate the configure script and Makefile.in makefile
965 templates, then they should be executed in a pre-configure 965 templates, then they should be executed in a pre-configure
966 target.</para> 966 target.</para>
967 967
968 <para>For packages that need only autoconf:</para> 968 <para>For packages that need only autoconf:</para>
969 969
970 <programlisting> 970 <programlisting>
971AUTOCONF_REQD= 2.50 # if default version is not good enough 971AUTOCONF_REQD= 2.50 # if default version is not good enough
972USE_TOOLS+= autoconf # use "autoconf213" for autoconf-2.13 972USE_TOOLS+= autoconf # use "autoconf213" for autoconf-2.13
973... 973...
974 974
975pre-configure: 975pre-configure:
976 cd ${WRKSRC} &amp;&amp; autoconf 976 cd ${WRKSRC} &amp;&amp; autoconf
977 977
978... 978...
979 </programlisting> 979 </programlisting>
980 980
981 <para>and for packages that need automake and autoconf:</para> 981 <para>and for packages that need automake and autoconf:</para>
982 982
983 <programlisting> 983 <programlisting>
984AUTOMAKE_REQD= 1.7.1 # if default version is not good enough 984AUTOMAKE_REQD= 1.7.1 # if default version is not good enough
985USE_TOOLS+= automake # use "automake14" for automake-1.4 985USE_TOOLS+= automake # use "automake14" for automake-1.4
986... 986...
987 987
988pre-configure: 988pre-configure:
989 set -e; cd ${WRKSRC}; \ 989 set -e; cd ${WRKSRC}; \
990 aclocal; autoheader; automake -a --foreign -i; autoconf 990 aclocal; autoheader; automake -a --foreign -i; autoconf
991 991
992... 992...
993 </programlisting> 993 </programlisting>
994 994
995 <para>Packages which use GNU Automake will almost certainly 995 <para>Packages which use GNU Automake will almost certainly
996 require GNU Make.</para> 996 require GNU Make.</para>
997 997
998 <para>There are times when the configure process makes 998 <para>There are times when the configure process makes
999 additional changes to the generated files, which then causes 999 additional changes to the generated files, which then causes
1000 the build process to try to re-execute the automake sequence. 1000 the build process to try to re-execute the automake sequence.
1001 This is prevented by touching various files in the configure 1001 This is prevented by touching various files in the configure
1002 stage. If this causes problems with your package you can set 1002 stage. If this causes problems with your package you can set
1003 <varname>AUTOMAKE_OVERRIDE=NO</varname> in the package 1003 <varname>AUTOMAKE_OVERRIDE=NO</varname> in the package
1004 Makefile.</para> 1004 Makefile.</para>
1005 </sect2> 1005 </sect2>
1006</sect1> 1006</sect1>
1007 1007
1008<sect1 id="programming-languages"> 1008<sect1 id="programming-languages">
1009 <title>Programming languages</title> 1009 <title>Programming languages</title>
1010 1010
1011 <sect2 id="basic-programming-languages"> 1011 <sect2 id="basic-programming-languages">
1012 <title>C, C++, and Fortran</title> 1012 <title>C, C++, and Fortran</title>
1013 1013
1014 <para>Compilers for the C, C++, and Fortran languages comes with 1014 <para>Compilers for the C, C++, and Fortran languages comes with
1015 the NetBSD base system. By default, pkgsrc assumes that a package 1015 the NetBSD base system. By default, pkgsrc assumes that a package
1016 is written in C and will hide all other compilers (via the wrapper 1016 is written in C and will hide all other compilers (via the wrapper
1017 framework, see <xref linkend="buildlink" />).</para> 1017 framework, see <xref linkend="buildlink" />).</para>
1018 1018
1019 <para>To declare which language's compiler a package needs, set 1019 <para>To declare which language's compiler a package needs, set
1020 the <varname>USE_LANGUAGES</varname> variable. Allowed values 1020 the <varname>USE_LANGUAGES</varname> variable. Allowed values
1021 currently are <quote>c</quote>, <quote>c++</quote>, and 1021 currently are <quote>c</quote>, <quote>c++</quote>, and
1022 <quote>fortran</quote> (and any combination). The default is 1022 <quote>fortran</quote> (and any combination). The default is
1023 <quote>c</quote>. Packages using GNU configure scripts, even if 1023 <quote>c</quote>. Packages using GNU configure scripts, even if
1024 written in C++, usually need a C compiler for the configure 1024 written in C++, usually need a C compiler for the configure
1025 phase.</para> 1025 phase.</para>
1026 </sect2> 1026 </sect2>
1027 1027
1028 <sect2 id="java-programming-language"> 1028 <sect2 id="java-programming-language">
1029 <title>Java</title> 1029 <title>Java</title>
1030 1030
1031 <para>If a program is written in Java, use the Java framework in 1031 <para>If a program is written in Java, use the Java framework in
1032 pkgsrc. The package must include 1032 pkgsrc. The package must include
1033 <filename>../../mk/java-vm.mk</filename>. This Makefile fragment 1033 <filename>../../mk/java-vm.mk</filename>. This Makefile fragment
1034 provides the following variables:</para> 1034 provides the following variables:</para>
1035 1035
1036 <itemizedlist> 1036 <itemizedlist>
1037 <listitem><para><varname>USE_JAVA</varname> defines if a build 1037 <listitem><para><varname>USE_JAVA</varname> defines if a build
1038 dependency on the JDK is added. If 1038 dependency on the JDK is added. If
1039 <varname>USE_JAVA</varname> is set to <quote>run</quote>, then 1039 <varname>USE_JAVA</varname> is set to <quote>run</quote>, then
1040 there is only a runtime dependency on the JDK. The default is 1040 there is only a runtime dependency on the JDK. The default is
1041 <quote>yes</quote>, which also adds a build dependency on the 1041 <quote>yes</quote>, which also adds a build dependency on the
1042 JDK.</para></listitem> 1042 JDK.</para></listitem>
1043 1043
1044 <listitem><para>Set <varname>USE_JAVA2</varname> to declare that 1044 <listitem><para>Set <varname>USE_JAVA2</varname> to declare that
1045 a package needs a Java2 implementation. The supported values 1045 a package needs a Java2 implementation. The supported values
1046 are <quote>yes</quote>, <quote>1.4</quote>, and 1046 are <quote>yes</quote>, <quote>1.4</quote>, and
1047 <quote>1.5</quote>. <quote>yes</quote> accepts any Java2 1047 <quote>1.5</quote>. <quote>yes</quote> accepts any Java2
1048 implementation, <quote>1.4</quote> insists on versions 1.4 or 1048 implementation, <quote>1.4</quote> insists on versions 1.4 or
1049 above, and <quote>1.5</quote> only accepts versions 1.5 or 1049 above, and <quote>1.5</quote> only accepts versions 1.5 or
1050 above. This variable is not set by default.</para></listitem> 1050 above. This variable is not set by default.</para></listitem>
1051 <!-- XXX: describe PKG_JVM_DEFAULT and PKG_JVMS_ACCEPTED, but 1051 <!-- XXX: describe PKG_JVM_DEFAULT and PKG_JVMS_ACCEPTED, but
1052 not here --> 1052 not here -->
1053 </itemizedlist> 1053 </itemizedlist>
1054 </sect2> 1054 </sect2>
1055 1055
1056 <sect2 id="perl-scripts"> 1056 <sect2 id="perl-scripts">
1057 <title>Packages containing perl scripts</title> 1057 <title>Packages containing perl scripts</title>
1058 1058
1059 <para>If your package contains interpreted perl scripts, add 1059 <para>If your package contains interpreted perl scripts, add
1060 <quote>perl</quote> to the <varname>USE_TOOLS</varname> variable 1060 <quote>perl</quote> to the <varname>USE_TOOLS</varname> variable
1061 and set <varname>REPLACE_PERL</varname> to ensure that the proper 1061 and set <varname>REPLACE_PERL</varname> to ensure that the proper
1062 interpreter path is set. <varname>REPLACE_PERL</varname> should 1062 interpreter path is set. <varname>REPLACE_PERL</varname> should
1063 contain a list of scripts, relative to <varname>WRKSRC</varname>, 1063 contain a list of scripts, relative to <varname>WRKSRC</varname>,
1064 that you want adjusted. Every occurrence of 1064 that you want adjusted. Every occurrence of
1065 <filename>*/bin/perl</filename> will be replaced with the full 1065 <filename>*/bin/perl</filename> will be replaced with the full
1066 path to the perl executable.</para> 1066 path to the perl executable.</para>
1067 1067
1068 <para>If a particular version of perl is needed, set the 1068 <para>If a particular version of perl is needed, set the
1069 <varname>PERL5_REQD</varname> variable to the version number. The 1069 <varname>PERL5_REQD</varname> variable to the version number. The
1070 default is <quote>5.0</quote>.</para> 1070 default is <quote>5.0</quote>.</para>
1071 1071
1072 <para>See <xref linkend="perl-modules" /> for information 1072 <para>See <xref linkend="perl-modules" /> for information
1073 about handling perl modules.</para> 1073 about handling perl modules.</para>
1074 </sect2> 1074 </sect2>
1075 1075
1076 <sect2 id="other-programming-languages"> 1076 <sect2 id="other-programming-languages">
1077 <title>Other programming languages</title> 1077 <title>Other programming languages</title>
1078 1078
1079 <para>Currently, there is no special handling for other languages 1079 <para>Currently, there is no special handling for other languages
1080 in pkgsrc. If a compiler package provides a 1080 in pkgsrc. If a compiler package provides a
1081 <filename>buildlink3.mk</filename> file, include that, otherwise 1081 <filename>buildlink3.mk</filename> file, include that, otherwise
1082 just add a (build) dependency on the appropriate compiler 1082 just add a (build) dependency on the appropriate compiler
1083 package.</para> 1083 package.</para>
1084 </sect2> 1084 </sect2>
1085</sect1> 1085</sect1>
1086 1086
1087<sect1 id="fixes.build"> 1087<sect1 id="fixes.build">
1088 <title>Fixing problems in the <emphasis>build</emphasis> phase</title> 1088 <title>Fixing problems in the <emphasis>build</emphasis> phase</title>
1089 1089
1090 <para>The most common failures when building a package are that 1090 <para>The most common failures when building a package are that
1091 some platforms do not provide certain header files, functions or 1091 some platforms do not provide certain header files, functions or
1092 libraries, or they provide the functions in a library that the 1092 libraries, or they provide the functions in a library that the
1093 original package author didn't know. To work around this, you 1093 original package author didn't know. To work around this, you
1094 can rewrite the source code in most cases so that it does not 1094 can rewrite the source code in most cases so that it does not
1095 use the missing functions or provides a replacement function.</para> 1095 use the missing functions or provides a replacement function.</para>
1096 1096
1097<sect2 id="fixes.build.cpp"> 1097<sect2 id="fixes.build.cpp">
1098<title>Compiling C and C++ code conditionally</title> 1098<title>Compiling C and C++ code conditionally</title>
1099 1099
1100 <para>If a package already comes with a GNU configure script, the 1100 <para>If a package already comes with a GNU configure script, the
1101 preferred way to fix the build failure is to change the 1101 preferred way to fix the build failure is to change the
1102 configure script, not the code. In the other cases, you can 1102 configure script, not the code. In the other cases, you can
1103 utilize the C preprocessor, which defines certain macros 1103 utilize the C preprocessor, which defines certain macros
1104 depending on the operating system and hardware architecture it 1104 depending on the operating system and hardware architecture it
1105 compiles for. These macros can be queried using for example 1105 compiles for. These macros can be queried using for example
1106 <varname>#if defined(__i386)</varname>. Almost every operating 1106 <varname>#if defined(__i386)</varname>. Almost every operating
1107 system, hardware architecture and compiler has its own macro. 1107 system, hardware architecture and compiler has its own macro.
1108 For example, if the macros <varname>__GNUC__</varname>, 1108 For example, if the macros <varname>__GNUC__</varname>,
1109 <varname>__i386__</varname> and <varname>__NetBSD__</varname> 1109 <varname>__i386__</varname> and <varname>__NetBSD__</varname>
1110 are all defined, you know that you are using NetBSD on an i386 1110 are all defined, you know that you are using NetBSD on an i386
1111 compatible CPU, and your compiler is GCC.</para> 1111 compatible CPU, and your compiler is GCC.</para>
1112 1112
1113 <para>The list of the following macros for hardware and 1113 <para>The list of the following macros for hardware and
1114 operating system depends on the compiler that is used. For 1114 operating system depends on the compiler that is used. For
1115 example, if you want to conditionally compile code on Solaris, 1115 example, if you want to conditionally compile code on Solaris,
1116 don't use <varname>__sun__</varname>, as the SunPro compiler 1116 don't use <varname>__sun__</varname>, as the SunPro compiler
1117 does not define it. Use <varname>__sun</varname> instead.</para> 1117 does not define it. Use <varname>__sun</varname> instead.</para>
1118 1118
1119<sect3 id="fixes.build.cpp.os"> 1119<sect3 id="fixes.build.cpp.os">
1120<title>C preprocessor macros to identify the operating system</title> 1120<title>C preprocessor macros to identify the operating system</title>
1121 1121
1122 <para>To distinguish between 4.4 BSD-derived systems and the 1122 <para>To distinguish between 4.4 BSD-derived systems and the
1123 rest of the world, you should use the following code.</para> 1123 rest of the world, you should use the following code.</para>
1124 1124
1125<programlisting> 1125<programlisting>
1126#include &lt;sys/param.h&gt; 1126#include &lt;sys/param.h&gt;
1127#if (defined(BSD) &amp;&amp; BSD &gt;= 199306) 1127#if (defined(BSD) &amp;&amp; BSD &gt;= 199306)
1128/* BSD-specific code goes here */ 1128/* BSD-specific code goes here */
1129#else 1129#else
1130/* non-BSD-specific code goes here */ 1130/* non-BSD-specific code goes here */
1131#endif 1131#endif
1132</programlisting> 1132</programlisting>
1133 1133
1134 <para>If this distinction is not fine enough, you can also test 1134 <para>If this distinction is not fine enough, you can also test
1135 for the following macros.</para> 1135 for the following macros.</para>
1136 1136
1137<programlisting> 1137<programlisting>
1138FreeBSD __FreeBSD__ 1138FreeBSD __FreeBSD__
1139DragonFly __DragonFly__ 1139DragonFly __DragonFly__
1140Interix __INTERIX 1140Interix __INTERIX
1141IRIX __sgi (TODO: get a definite source for this) 1141IRIX __sgi (TODO: get a definite source for this)
1142Linux linux, __linux, __linux__ 1142Linux linux, __linux, __linux__
1143NetBSD __NetBSD__ 1143NetBSD __NetBSD__
1144OpenBSD __OpenBSD__ 1144OpenBSD __OpenBSD__
1145Solaris sun, __sun 1145Solaris sun, __sun
1146</programlisting> 1146</programlisting>
1147 1147
1148</sect3> 1148</sect3>
1149<sect3 id="fixes.build.cpp.arch"> 1149<sect3 id="fixes.build.cpp.arch">
1150<title>C preprocessor macros to identify the hardware architecture</title> 1150<title>C preprocessor macros to identify the hardware architecture</title>
1151 1151
1152<programlisting> 1152<programlisting>
1153i386 i386, __i386, __i386__ 1153i386 i386, __i386, __i386__
1154MIPS __mips 1154MIPS __mips
1155SPARC sparc, __sparc 1155SPARC sparc, __sparc
1156</programlisting> 1156</programlisting>
1157 1157
1158</sect3> 1158</sect3>
1159<sect3 id="fixes.build.cpp.compiler"> 1159<sect3 id="fixes.build.cpp.compiler">
1160<title>C preprocessor macros to identify the compiler</title> 1160<title>C preprocessor macros to identify the compiler</title>
1161 1161
1162<programlisting> 1162<programlisting>
1163GCC __GNUC__ (major version), __GNUC_MINOR__ 1163GCC __GNUC__ (major version), __GNUC_MINOR__
1164MIPSpro _COMPILER_VERSION (0x741 for MIPSpro 7.41) 1164MIPSpro _COMPILER_VERSION (0x741 for MIPSpro 7.41)
1165SunPro __SUNPRO_C (0x570 for Sun C 5.7) 1165SunPro __SUNPRO_C (0x570 for Sun C 5.7)
1166SunPro C++ __SUNPRO_CC (0x580 for Sun C++ 5.8) 1166SunPro C++ __SUNPRO_CC (0x580 for Sun C++ 5.8)
1167</programlisting> 1167</programlisting>
1168 1168
1169</sect3> 1169</sect3>
1170</sect2> 1170</sect2>
1171<sect2 id="compiler-bugs"> 1171<sect2 id="compiler-bugs">
1172<title>How to handle compiler bugs</title> 1172<title>How to handle compiler bugs</title>
1173 1173
1174 <para>Some source files trigger bugs in the compiler, based on 1174 <para>Some source files trigger bugs in the compiler, based on
1175 combinations of compiler version and architecture and almost 1175 combinations of compiler version and architecture and almost
1176 always relation to optimisation being enabled. Common symptoms 1176 always relation to optimisation being enabled. Common symptoms
1177 are gcc internal errors or never finishing compiling a 1177 are gcc internal errors or never finishing compiling a
1178 file.</para> 1178 file.</para>
1179 1179
1180 <para>Typically, a workaround involves testing the 1180 <para>Typically, a workaround involves testing the
1181 <varname>MACHINE_ARCH</varname> and compiler version, disabling 1181 <varname>MACHINE_ARCH</varname> and compiler version, disabling
1182 optimisation for that combination of file, 1182 optimisation for that combination of file,
1183 <varname>MACHINE_ARCH</varname> and compiler, and documenting it 1183 <varname>MACHINE_ARCH</varname> and compiler, and documenting it
1184 in <filename>pkgsrc/doc/HACKS</filename>. See that file for a 1184 in <filename>pkgsrc/doc/HACKS</filename>. See that file for a
1185 number of examples.</para> 1185 number of examples.</para>
1186 1186
1187</sect2> 1187</sect2>
1188 1188
1189<sect2 id="undefined-reference"> 1189<sect2 id="undefined-reference">
1190<title>Undefined reference to <quote>...</quote></title> 1190<title>Undefined reference to <quote>...</quote></title>
1191 1191
1192 <para>This error message often means that a package did not 1192 <para>This error message often means that a package did not
1193 link to a shared library it needs. The following functions are 1193 link to a shared library it needs. The following functions are
1194 known to cause this error message over and over.</para> 1194 known to cause this error message over and over.</para>
1195 1195
1196 <informaltable id="undefined-reference-functions"> 1196 <informaltable id="undefined-reference-functions">
1197 <tgroup cols="3"> 1197 <tgroup cols="3">
1198 <thead><row><entry>Function</entry><entry>Library</entry><entry>Affected platforms</entry></row></thead> 1198 <thead><row><entry>Function</entry><entry>Library</entry><entry>Affected platforms</entry></row></thead>
1199 <tbody> 1199 <tbody>
1200 <row><entry>accept, bind, connect</entry><entry>-lsocket</entry><entry>Solaris</entry></row> 1200 <row><entry>accept, bind, connect</entry><entry>-lsocket</entry><entry>Solaris</entry></row>
1201 <row><entry>crypt</entry><entry>-lcrypt</entry><entry>DragonFly, NetBSD</entry></row> 1201 <row><entry>crypt</entry><entry>-lcrypt</entry><entry>DragonFly, NetBSD</entry></row>
1202 <row><entry>dlopen, dlsym</entry><entry>-ldl</entry><entry>Linux</entry></row> 1202 <row><entry>dlopen, dlsym</entry><entry>-ldl</entry><entry>Linux</entry></row>
1203 <row><entry>gethost*</entry><entry>-lnsl</entry><entry>Solaris</entry></row> 1203 <row><entry>gethost*</entry><entry>-lnsl</entry><entry>Solaris</entry></row>
1204 <row><entry>inet_aton</entry><entry>-lresolv</entry><entry>Solaris</entry></row> 1204 <row><entry>inet_aton</entry><entry>-lresolv</entry><entry>Solaris</entry></row>
1205 <row><entry>nanosleep, sem_*, timer_*</entry><entry>-lrt</entry><entry>Solaris</entry></row> 1205 <row><entry>nanosleep, sem_*, timer_*</entry><entry>-lrt</entry><entry>Solaris</entry></row>
1206 <row><entry>openpty</entry><entry>-lutil</entry><entry>Linux</entry></row> 1206 <row><entry>openpty</entry><entry>-lutil</entry><entry>Linux</entry></row>
1207 </tbody> 1207 </tbody>
1208 </tgroup> 1208 </tgroup>
1209 </informaltable> 1209 </informaltable>
1210 1210
1211 <para>To fix these linker errors, it is often sufficient to say 1211 <para>To fix these linker errors, it is often sufficient to say
1212 <literal>LIBS.<replaceable>OperatingSystem</replaceable>+= 1212 <literal>LIBS.<replaceable>OperatingSystem</replaceable>+=
1213 -l<replaceable>foo</replaceable></literal> to the package 1213 -l<replaceable>foo</replaceable></literal> to the package
1214 <filename>Makefile</filename> and then say <command>bmake clean; 1214 <filename>Makefile</filename> and then say <command>bmake clean;
1215 bmake</command>.</para> 1215 bmake</command>.</para>
1216 1216
1217<sect3 id="undefined-reference-sunpro"> 1217<sect3 id="undefined-reference-sunpro">
1218<title>Special issue: The SunPro compiler</title> 1218<title>Special issue: The SunPro compiler</title>
1219 1219
1220<para>When you are using the SunPro compiler, there is another 1220<para>When you are using the SunPro compiler, there is another
1221possibility. That compiler cannot handle the following code:</para> 1221possibility. That compiler cannot handle the following code:</para>
1222 1222
1223<programlisting> 1223<programlisting>
1224extern int extern_func(int); 1224extern int extern_func(int);
1225 1225
1226static inline int 1226static inline int
1227inline_func(int x) 1227inline_func(int x)
1228{ 1228{
1229 return extern_func(x); 1229 return extern_func(x);
1230} 1230}
1231 1231
1232int main(void) 1232int main(void)
1233{ 1233{
1234 return 0; 1234 return 0;
1235} 1235}
1236</programlisting> 1236</programlisting>
1237 1237
1238<para>It generates the code for <function>inline_func</function> even if 1238<para>It generates the code for <function>inline_func</function> even if
1239that function is never used. This code then refers to 1239that function is never used. This code then refers to
1240<function>extern_func</function>, which can usually not be resolved. To 1240<function>extern_func</function>, which can usually not be resolved. To
1241solve this problem you can try to tell the package to disable inlining 1241solve this problem you can try to tell the package to disable inlining
1242of functions.</para> 1242of functions.</para>
1243 1243
1244</sect3> 1244</sect3>
1245 1245
1246 </sect2> 1246 </sect2>
1247 1247
1248 <sect2 id="out-of-memory"> 1248 <sect2 id="out-of-memory">
1249 <title>Running out of memory</title> 1249 <title>Running out of memory</title>
1250 1250
1251 <para>Sometimes packages fail to build because the compiler runs 1251 <para>Sometimes packages fail to build because the compiler runs
1252 into an operating system specific soft limit. With the 1252 into an operating system specific soft limit. With the
1253 <varname>UNLIMIT_RESOURCES</varname> variable pkgsrc can be told 1253 <varname>UNLIMIT_RESOURCES</varname> variable pkgsrc can be told
1254 to unlimit the resources. Currently, the allowed values are 1254 to unlimit the resources. Currently, the allowed values are
1255 <quote>datasize</quote> and <quote>stacksize</quote> (or both). 1255 <quote>datasize</quote> and <quote>stacksize</quote> (or both).
1256 Setting this variable is similar to running the shell builtin 1256 Setting this variable is similar to running the shell builtin
1257 <command>ulimit</command> command to raise the maximum data 1257 <command>ulimit</command> command to raise the maximum data
1258 segment size or maximum stack size of a process, respectively, to 1258 segment size or maximum stack size of a process, respectively, to
1259 their hard limits.</para> 1259 their hard limits.</para>
1260 </sect2> 1260 </sect2>
1261</sect1> 1261</sect1>
1262 1262
1263<sect1 id="fixes.install"> 1263<sect1 id="fixes.install">
1264 <title>Fixing problems in the <emphasis>install</emphasis> phase</title> 1264 <title>Fixing problems in the <emphasis>install</emphasis> phase</title>
1265 1265
1266 <sect2 id="install-scripts"> 1266 <sect2 id="install-scripts">
1267 <title>Creating needed directories</title> 1267 <title>Creating needed directories</title>
1268 1268
1269 <para>The BSD-compatible <command>install</command> supplied 1269 <para>The BSD-compatible <command>install</command> supplied
1270 with some operating systems cannot create more than one 1270 with some operating systems cannot create more than one
1271 directory at a time. As such, you should call 1271 directory at a time. As such, you should call
1272 <literal>${INSTALL_*_DIR}</literal> like this:</para> 1272 <literal>${INSTALL_*_DIR}</literal> like this:</para>
1273 1273
1274 <programlisting> 1274 <programlisting>
1275${INSTALL_DATA_DIR} ${PREFIX}/dir1 1275${INSTALL_DATA_DIR} ${PREFIX}/dir1
1276${INSTALL_DATA_DIR} ${PREFIX}/dir2 1276${INSTALL_DATA_DIR} ${PREFIX}/dir2
1277 </programlisting> 1277 </programlisting>
1278 1278
1279 <para>You can also just append <quote><literal>dir1 1279 <para>You can also just append <quote><literal>dir1
1280 dir2</literal></quote> to the 1280 dir2</literal></quote> to the
1281 <varname>INSTALLATION_DIRS</varname> variable, which will 1281 <varname>INSTALLATION_DIRS</varname> variable, which will
1282 automatically do the right thing.</para> 1282 automatically do the right thing.</para>
1283 1283
1284 </sect2> 1284 </sect2>
1285 <sect2 id="where-to-install-documentation"> 1285 <sect2 id="where-to-install-documentation">
1286 <title>Where to install documentation</title> 1286 <title>Where to install documentation</title>
1287 1287
1288 <para>In general, documentation should be installed into 1288 <para>In general, documentation should be installed into
1289 <filename>${PREFIX}/share/doc/${PKGBASE}</filename> or 1289 <filename>${PREFIX}/share/doc/${PKGBASE}</filename> or
1290 <filename>${PREFIX}/share/doc/${PKGNAME}</filename> (the latter 1290 <filename>${PREFIX}/share/doc/${PKGNAME}</filename> (the latter
1291 includes the version number of the package).</para> 1291 includes the version number of the package).</para>
1292 1292
1293 <para>Many modern packages using GNU autoconf allow to set the 1293 <para>Many modern packages using GNU autoconf allow to set the
1294 directory where HTML documentation is installed with the 1294 directory where HTML documentation is installed with the
1295 <quote>--with-html-dir</quote> option. Sometimes using this flag 1295 <quote>--with-html-dir</quote> option. Sometimes using this flag
1296 is needed because otherwise the documentation ends up in 1296 is needed because otherwise the documentation ends up in
1297 <filename>${PREFIX}/share/doc/html</filename> or other 1297 <filename>${PREFIX}/share/doc/html</filename> or other
1298 places.</para> 1298 places.</para>
1299 1299
1300 <para>An exception to the above is that library API documentation 1300 <para>An exception to the above is that library API documentation
1301 generated with the <filename 1301 generated with the <filename
1302 role="pkg">textproc/gtk-doc</filename> tools, for use by special 1302 role="pkg">textproc/gtk-doc</filename> tools, for use by special
1303 browsers (devhelp) should be left at their default location, which 1303 browsers (devhelp) should be left at their default location, which
1304 is <filename>${PREFIX}/share/gtk-doc</filename>. Such 1304 is <filename>${PREFIX}/share/gtk-doc</filename>. Such
1305 documentation can be recognized from files ending in 1305 documentation can be recognized from files ending in
1306 <filename>.devhelp</filename> or <filename>.devhelp2</filename>. 1306 <filename>.devhelp</filename> or <filename>.devhelp2</filename>.
1307 (It is also acceptable to install such files in 1307 (It is also acceptable to install such files in
1308 <filename>${PREFIX}/share/doc/${PKGBASE}</filename> or 1308 <filename>${PREFIX}/share/doc/${PKGBASE}</filename> or
1309 <filename>${PREFIX}/share/doc/${PKGNAME}</filename>; the 1309 <filename>${PREFIX}/share/doc/${PKGNAME}</filename>; the
1310 <filename>.devhelp*</filename> file must be directly in that 1310 <filename>.devhelp*</filename> file must be directly in that
1311 directory then, no additional subdirectory level is allowed in 1311 directory then, no additional subdirectory level is allowed in
1312 this case. This is usually achieved by using 1312 this case. This is usually achieved by using
1313 <quote>--with-html-dir=${PREFIX}/share/doc</quote>. 1313 <quote>--with-html-dir=${PREFIX}/share/doc</quote>.
1314 <filename>${PREFIX}/share/gtk-doc</filename> is preferred 1314 <filename>${PREFIX}/share/gtk-doc</filename> is preferred
1315 though.)</para> 1315 though.)</para>
1316 1316
1317 </sect2> 1317 </sect2>
1318 1318
1319 <sect2 id="installing-score-files"> 1319 <sect2 id="installing-score-files">
1320 <title>Installing highscore files</title> 1320 <title>Installing highscore files</title>
1321 1321
1322 <para>Certain packages, most of them in the games category, install 1322 <para>Certain packages, most of them in the games category, install
1323 a score file that allows all users on the system to record their 1323 a score file that allows all users on the system to record their
1324 highscores. In order for this to work, the binaries need to be 1324 highscores. In order for this to work, the binaries need to be
1325 installed setgid and the score files owned by the appropriate 1325 installed setgid and the score files owned by the appropriate
1326 group and/or owner (traditionally the "games" user/group). The 1326 group and/or owner (traditionally the "games" user/group). The
1327 following variables, documented in more detail in 1327 following variables, documented in more detail in
1328 <filename>mk/defaults/mk.conf</filename>, control this 1328 <filename>mk/defaults/mk.conf</filename>, control this
1329 behaviour: <varname>SETGIDGAME</varname>, 1329 behaviour: <varname>SETGIDGAME</varname>,
1330 <varname>GAMEDATAMODE</varname>, <varname>GAMEGRP</varname>, 1330 <varname>GAMEDATAMODE</varname>, <varname>GAMEGRP</varname>,
1331 <varname>GAMEMODE</varname>, <varname>GAMEOWN</varname>.</para> 1331 <varname>GAMEMODE</varname>, <varname>GAMEOWN</varname>.</para>
1332 1332
1333 <para>Note that per default, setgid installation of games is 1333 <para>Note that per default, setgid installation of games is
1334 disabled; setting <varname>SETGIDGAME=YES</varname> will set all 1334 disabled; setting <varname>SETGIDGAME=YES</varname> will set all
1335 the other variables accordingly.</para> 1335 the other variables accordingly.</para>
1336 1336
1337 <para>A package should therefore never hard code file ownership or 1337 <para>A package should therefore never hard code file ownership or
1338 access permissions but rely on <varname>INSTALL_GAME</varname> and 1338 access permissions but rely on <varname>INSTALL_GAME</varname> and
1339 <varname>INSTALL_GAME_DATA</varname> to set these 1339 <varname>INSTALL_GAME_DATA</varname> to set these
1340 correctly.</para> 1340 correctly.</para>
1341 </sect2> 1341 </sect2>
1342 1342
1343 <sect2 id="destdir-support"> 1343 <sect2 id="destdir-support">
1344 <title>Adding DESTDIR support to packages</title> 1344 <title>Adding DESTDIR support to packages</title>
1345 1345
1346 <para><varname>DESTDIR</varname> support means that a package 1346 <para><varname>DESTDIR</varname> support means that a package
1347 installs into a staging directory, not the final location of the 1347 installs into a staging directory, not the final location of the
1348 files. Then a binary package is created which can be used for 1348 files. Then a binary package is created which can be used for
1349 installation as usual. There are two ways: Either the package must 1349 installation as usual. There are two ways: Either the package must
1350 install as root (<quote>destdir</quote>) or the package can 1350 install as root (<quote>destdir</quote>) or the package can
1351 install as non-root user (<quote>user-destdir</quote>).</para> 1351 install as non-root user (<quote>user-destdir</quote>).</para>
1352 1352
1353 <itemizedlist> 1353 <itemizedlist>
1354 <listitem><para><varname>PKG_DESTDIR_SUPPORT</varname> has to be 1354 <listitem><para><varname>PKG_DESTDIR_SUPPORT</varname> has to be
1355 set to <quote>destdir</quote> or <quote>user-destdir</quote>. If 1355 set to <quote>destdir</quote> or <quote>user-destdir</quote>. If
1356 bsd.prefs.mk is included in the Makefile, 1356 bsd.prefs.mk is included in the Makefile,
1357 <varname>PKG_DESTDIR_SUPPORT</varname> needs to be set before 1357 <varname>PKG_DESTDIR_SUPPORT</varname> needs to be set before
1358 the inclusion.</para></listitem> 1358 the inclusion.</para></listitem>
1359 1359
1360 <listitem><para>All installation operations have to be prefixed with 1360 <listitem><para>All installation operations have to be prefixed with
1361 <filename>${DESTDIR}</filename>.</para></listitem> 1361 <filename>${DESTDIR}</filename>.</para></listitem>
1362 1362
1363 <listitem><para>automake gets this DESTDIR mostly right 1363 <listitem><para>automake gets this DESTDIR mostly right
1364 automatically. Many manual rules and pre/post-install often are 1364 automatically. Many manual rules and pre/post-install often are
1365 incorrect; fix them.</para></listitem> 1365 incorrect; fix them.</para></listitem>
1366 1366
1367 <listitem><para>If files are installed with special owner/group 1367 <listitem><para>If files are installed with special owner/group
1368 use <varname>SPECIAL_PERMS</varname>.</para></listitem> 1368 use <varname>SPECIAL_PERMS</varname>.</para></listitem>
1369 1369
1370 <listitem><para>In general, packages should support 1370 <listitem><para>In general, packages should support
1371 <varname>UNPRIVILEGED</varname> to be able to use 1371 <varname>UNPRIVILEGED</varname> to be able to use
1372 DESTDIR.</para></listitem> 1372 DESTDIR.</para></listitem>
1373 1373
1374 </itemizedlist> 1374 </itemizedlist>
1375 </sect2> 1375 </sect2>
1376 1376
1377 1377
1378 <sect2 id="hardcoded-paths"> 1378 <sect2 id="hardcoded-paths">
1379 <title>Packages with hardcoded paths to other interpreters</title> 1379 <title>Packages with hardcoded paths to other interpreters</title>
1380 1380
1381 <para>Your package may also contain scripts with hardcoded paths to 1381 <para>Your package may also contain scripts with hardcoded paths to
1382 other interpreters besides (or as well as) perl. To correct the 1382 other interpreters besides (or as well as) perl. To correct the
1383 full pathname to the script interpreter, you need to set the 1383 full pathname to the script interpreter, you need to set the
1384 following definitions in your <filename>Makefile</filename> (we 1384 following definitions in your <filename>Makefile</filename> (we
1385 shall use <command>tclsh</command> in this example):</para> 1385 shall use <command>tclsh</command> in this example):</para>
1386 1386
1387 <programlisting> 1387 <programlisting>
1388REPLACE_INTERPRETER+= tcl 1388REPLACE_INTERPRETER+= tcl
1389REPLACE.tcl.old= .*/bin/tclsh 1389REPLACE.tcl.old= .*/bin/tclsh
1390REPLACE.tcl.new= ${PREFIX}/bin/tclsh 1390REPLACE.tcl.new= ${PREFIX}/bin/tclsh
1391REPLACE_FILES.tcl= # list of tcl scripts which need to be fixed, 1391REPLACE_FILES.tcl= # list of tcl scripts which need to be fixed,
1392# relative to ${WRKSRC}, just as in REPLACE_PERL 1392# relative to ${WRKSRC}, just as in REPLACE_PERL
1393 </programlisting> 1393 </programlisting>
1394 1394
1395 <note><para>Before March 2006, these variables were called 1395 <note><para>Before March 2006, these variables were called
1396 <varname>_REPLACE.*</varname> and 1396 <varname>_REPLACE.*</varname> and
1397 <varname>_REPLACE_FILES.*</varname>.</para></note> 1397 <varname>_REPLACE_FILES.*</varname>.</para></note>
1398 1398
1399 </sect2> 1399 </sect2>
1400 1400
1401 1401
1402 <sect2 id="perl-modules"> 1402 <sect2 id="perl-modules">
1403 <title>Packages installing perl modules</title> 1403 <title>Packages installing perl modules</title>
1404 1404
1405 <para>Makefiles of packages providing perl5 modules should include 1405 <para>Makefiles of packages providing perl5 modules should include
1406 the Makefile fragment 1406 the Makefile fragment
1407 <filename>../../lang/perl5/module.mk</filename>. It provides a 1407 <filename>../../lang/perl5/module.mk</filename>. It provides a
1408 <command>do-configure</command> target for the standard perl 1408 <command>do-configure</command> target for the standard perl
1409 configuration for such modules as well as various hooks to tune 1409 configuration for such modules as well as various hooks to tune
1410 this configuration. See comments in this file for 1410 this configuration. See comments in this file for
1411 details.</para> 1411 details.</para>
1412 1412
1413 <para>Perl5 modules will install into different places depending 1413 <para>Perl5 modules will install into different places depending
1414 on the version of perl used during the build process. To 1414 on the version of perl used during the build process. To
1415 address this, pkgsrc will append lines to the 1415 address this, pkgsrc will append lines to the
1416 <filename>PLIST</filename> corresponding to the files listed in 1416 <filename>PLIST</filename> corresponding to the files listed in
1417 the installed <filename>.packlist</filename> file generated by 1417 the installed <filename>.packlist</filename> file generated by
1418 most perl5 modules. This is invoked by defining 1418 most perl5 modules. This is invoked by defining
1419 <varname>PERL5_PACKLIST</varname> to a space-separated list of 1419 <varname>PERL5_PACKLIST</varname> to a space-separated list of
1420 paths to packlist files, e.g.:</para> 1420 paths to packlist files, e.g.:</para>
1421 1421
1422 <programlisting> 1422 <programlisting>
1423PERL5_PACKLIST= ${PERL5_SITEARCH}/auto/Pg/.packlist 1423PERL5_PACKLIST= ${PERL5_SITEARCH}/auto/Pg/.packlist
1424 </programlisting> 1424 </programlisting>
1425 1425
1426 <para>The variables <varname>PERL5_SITELIB</varname>, 1426 <para>The variables <varname>PERL5_SITELIB</varname>,
1427 <varname>PERL5_SITEARCH</varname>, and 1427 <varname>PERL5_SITEARCH</varname>, and
1428 <varname>PERL5_ARCHLIB</varname> represent the three locations 1428 <varname>PERL5_ARCHLIB</varname> represent the three locations
1429 in which perl5 modules may be installed, and may be used by 1429 in which perl5 modules may be installed, and may be used by
1430 perl5 packages that don't have a packlist. These three 1430 perl5 packages that don't have a packlist. These three
1431 variables are also substituted for in the 1431 variables are also substituted for in the
1432 <filename>PLIST</filename>.</para> 1432 <filename>PLIST</filename>.</para>
1433 </sect2> 1433 </sect2>
1434 1434
1435 1435
1436 <sect2 id="faq.info-files"> 1436 <sect2 id="faq.info-files">
1437 <title>Packages installing info files</title> 1437 <title>Packages installing info files</title>
1438 1438
1439 <para>Some packages install info files or use the 1439 <para>Some packages install info files or use the
1440 <quote>makeinfo</quote> or <quote>install-info</quote> 1440 <quote>makeinfo</quote> or <quote>install-info</quote>
1441 commands. <varname>INFO_FILES</varname> should be defined in 1441 commands. <varname>INFO_FILES</varname> should be defined in
1442 the package Makefile so that <filename>INSTALL</filename> and 1442 the package Makefile so that <filename>INSTALL</filename> and
1443 <filename>DEINSTALL</filename> scripts will be generated to 1443 <filename>DEINSTALL</filename> scripts will be generated to
1444 handle registration of the info files in the Info directory 1444 handle registration of the info files in the Info directory
1445 file. The <quote>install-info</quote> command used for the info 1445 file. The <quote>install-info</quote> command used for the info
1446 files registration is either provided by the system, or by a 1446 files registration is either provided by the system, or by a
1447 special purpose package automatically added as dependency if 1447 special purpose package automatically added as dependency if
1448 needed.</para> 1448 needed.</para>
1449 1449
1450 <para><varname>PKGINFODIR</varname> is the directory under 1450 <para><varname>PKGINFODIR</varname> is the directory under
1451 <filename>${PREFIX}</filename> where info files are primarily 1451 <filename>${PREFIX}</filename> where info files are primarily
1452 located. <varname>PKGINFODIR</varname> defaults to 1452 located. <varname>PKGINFODIR</varname> defaults to
1453 <quote>info</quote> and can be overridden by the user.</para> 1453 <quote>info</quote> and can be overridden by the user.</para>
1454 1454
1455 <para>The info files for the package should be listed in the 1455 <para>The info files for the package should be listed in the
1456 package <filename>PLIST</filename>; however any split info files 1456 package <filename>PLIST</filename>; however any split info files
1457 need not be listed.</para> 1457 need not be listed.</para>
1458 1458
1459 <para>A package which needs the <quote>makeinfo</quote> command 1459 <para>A package which needs the <quote>makeinfo</quote> command
1460 at build time must add <quote>makeinfo</quote> to 1460 at build time must add <quote>makeinfo</quote> to
1461 <varname>USE_TOOLS</varname> in its Makefile. If a minimum 1461 <varname>USE_TOOLS</varname> in its Makefile. If a minimum
1462 version of the <quote>makeinfo</quote> command is needed it 1462 version of the <quote>makeinfo</quote> command is needed it
1463 should be noted with the <varname>TEXINFO_REQD</varname> 1463 should be noted with the <varname>TEXINFO_REQD</varname>
1464 variable in the package <filename>Makefile</filename>. By 1464 variable in the package <filename>Makefile</filename>. By
1465 default, a minimum version of 3.12 is required. If the system 1465 default, a minimum version of 3.12 is required. If the system
1466 does not provide a <command>makeinfo</command> command or if it 1466 does not provide a <command>makeinfo</command> command or if it
1467 does not match the required minimum, a build dependency on the 1467 does not match the required minimum, a build dependency on the
1468 <filename role="pkg">devel/gtexinfo</filename> package will 1468 <filename role="pkg">devel/gtexinfo</filename> package will
1469 be added automatically.</para> 1469 be added automatically.</para>
1470 1470
1471 <para>The build and installation process of the software provided 1471 <para>The build and installation process of the software provided
1472 by the package should not use the 1472 by the package should not use the
1473 <command>install-info</command> command as the registration of 1473 <command>install-info</command> command as the registration of
1474 info files is the task of the package 1474 info files is the task of the package
1475 <filename>INSTALL</filename> script, and it must use the 1475 <filename>INSTALL</filename> script, and it must use the
1476 appropriate <command>makeinfo</command> command.</para> 1476 appropriate <command>makeinfo</command> command.</para>
1477 1477
1478 <para>To achieve this goal, the pkgsrc infrastructure creates 1478 <para>To achieve this goal, the pkgsrc infrastructure creates
1479 overriding scripts for the <command>install-info</command> and 1479 overriding scripts for the <command>install-info</command> and
1480 <command>makeinfo</command> commands in a directory listed early 1480 <command>makeinfo</command> commands in a directory listed early
1481 in <varname>PATH</varname>.</para> 1481 in <varname>PATH</varname>.</para>
1482 1482
1483 <para>The script overriding <command>install-info</command> has 1483 <para>The script overriding <command>install-info</command> has
1484 no effect except the logging of a message. The script overriding 1484 no effect except the logging of a message. The script overriding
1485 <command>makeinfo</command> logs a message and according to the 1485 <command>makeinfo</command> logs a message and according to the
1486 value of <varname>TEXINFO_REQD</varname> either runs the appropriate 1486 value of <varname>TEXINFO_REQD</varname> either runs the appropriate
1487 <command>makeinfo</command> command or exit on error.</para> 1487 <command>makeinfo</command> command or exit on error.</para>
1488 </sect2> 1488 </sect2>
1489 1489
1490 <sect2 id="manpages"> 1490 <sect2 id="manpages">
1491 <title>Packages installing man pages</title> 1491 <title>Packages installing man pages</title>
1492 1492
1493 <para>All packages that install manual pages should install them 1493 <para>All packages that install manual pages should install them
1494 into the same directory, so that there is one common place to look 1494 into the same directory, so that there is one common place to look
1495 for them. In pkgsrc, this place is 1495 for them. In pkgsrc, this place is
1496 <literal>${PREFIX}/${PKGMANDIR}</literal>, and this expression 1496 <literal>${PREFIX}/${PKGMANDIR}</literal>, and this expression
1497 should be used in packages. The default for 1497 should be used in packages. The default for
1498 <varname>PKGMANDIR</varname> is 1498 <varname>PKGMANDIR</varname> is
1499 <quote><filename>man</filename></quote>. Another often-used value 1499 <quote><filename>man</filename></quote>. Another often-used value
1500 is <quote><filename>share/man</filename></quote>.</para> 1500 is <quote><filename>share/man</filename></quote>.</para>
1501 1501
1502 <note><para>The support for a custom <varname>PKGMANDIR</varname> 1502 <note><para>The support for a custom <varname>PKGMANDIR</varname>
1503 is far from complete.</para></note> 1503 is far from complete.</para></note>
1504 1504
1505 <para>The <filename>PLIST</filename> files can just use 1505 <para>The <filename>PLIST</filename> files can just use
1506 <filename>man/</filename> as the top level directory for the man 1506 <filename>man/</filename> as the top level directory for the man
1507 page file entries, and the pkgsrc framework will convert as 1507 page file entries, and the pkgsrc framework will convert as
1508 needed. In all other places, the correct 1508 needed. In all other places, the correct
1509 <varname>PKGMANDIR</varname> must be used.</para> 1509 <varname>PKGMANDIR</varname> must be used.</para>
1510 1510
1511 <para>Packages that are 1511 <para>Packages that are
1512 configured with <varname>GNU_CONFIGURE</varname> set as 1512 configured with <varname>GNU_CONFIGURE</varname> set as
1513 <quote>yes</quote>, by default will use the 1513 <quote>yes</quote>, by default will use the
1514 <filename>./configure</filename> 1514 <filename>./configure</filename>
1515 --mandir switch to set where the man pages should be installed. 1515 --mandir switch to set where the man pages should be installed.
1516 The path is <varname>GNU_CONFIGURE_MANDIR</varname> which defaults 1516 The path is <varname>GNU_CONFIGURE_MANDIR</varname> which defaults
1517 to <varname>${PREFIX}/${PKGMANDIR}</varname>.</para> 1517 to <varname>${PREFIX}/${PKGMANDIR}</varname>.</para>
1518 1518
1519 <para>Packages that use <varname>GNU_CONFIGURE</varname> but do not 1519 <para>Packages that use <varname>GNU_CONFIGURE</varname> but do not
1520 use --mandir, can set <varname>CONFIGURE_HAS_MANDIR</varname> 1520 use --mandir, can set <varname>CONFIGURE_HAS_MANDIR</varname>
1521 to <quote>no</quote>. 1521 to <quote>no</quote>.
1522 Or if the <filename>./configure</filename> script uses 1522 Or if the <filename>./configure</filename> script uses
1523 a non-standard use of --mandir, you can set 1523 a non-standard use of --mandir, you can set
1524 <varname>GNU_CONFIGURE_MANDIR</varname> as needed.</para> 1524 <varname>GNU_CONFIGURE_MANDIR</varname> as needed.</para>
1525 1525
1526 <para>See <xref linkend="manpage-compression"/> for 1526 <para>See <xref linkend="manpage-compression"/> for
1527 information on installation of compressed manual pages.</para> 1527 information on installation of compressed manual pages.</para>
1528 1528
1529 </sect2> 1529 </sect2>
1530 1530
1531 <sect2 id="gconf-data-files"> 1531 <sect2 id="gconf-data-files">
1532 <title>Packages installing GConf data files</title> 1532 <title>Packages installing GConf data files</title>
1533 1533
1534 <para>If a package installs <filename>.schemas</filename> or 1534 <para>If a package installs <filename>.schemas</filename> or
1535 <filename>.entries</filename> files, used by GConf, 1535 <filename>.entries</filename> files, used by GConf,
1536 you need to take some extra steps to make sure they get registered 1536 you need to take some extra steps to make sure they get registered
1537 in the database:</para> 1537 in the database:</para>
1538 1538
1539 <orderedlist> 1539 <orderedlist>
1540 <listitem> 1540 <listitem>
1541 <para>Include <filename>../../devel/GConf/schemas.mk</filename> 1541 <para>Include <filename>../../devel/GConf/schemas.mk</filename>
1542 instead of its <filename>buildlink3.mk</filename> file. This 1542 instead of its <filename>buildlink3.mk</filename> file. This
1543 takes care of rebuilding the GConf database at installation and 1543 takes care of rebuilding the GConf database at installation and
1544 deinstallation time, and tells the package where to install 1544 deinstallation time, and tells the package where to install
1545 GConf data files using some standard configure arguments. It 1545 GConf data files using some standard configure arguments. It
1546 also disallows any access to the database directly from the 1546 also disallows any access to the database directly from the
1547 package.</para> 1547 package.</para>
1548 </listitem> 1548 </listitem>
1549 1549
1550 <listitem> 1550 <listitem>
1551 <para>Ensure that the package installs its 1551 <para>Ensure that the package installs its
1552 <filename>.schemas</filename> files under 1552 <filename>.schemas</filename> files under
1553 <filename>${PREFIX}/share/gconf/schemas</filename>. If they get 1553 <filename>${PREFIX}/share/gconf/schemas</filename>. If they get
1554 installed under <filename>${PREFIX}/etc</filename>, you will 1554 installed under <filename>${PREFIX}/etc</filename>, you will
1555 need to manually patch the package.</para> 1555 need to manually patch the package.</para>
1556 </listitem> 1556 </listitem>
1557 1557
1558 <listitem> 1558 <listitem>
1559 <para>Check the PLIST and remove any entries under the etc/gconf 1559 <para>Check the PLIST and remove any entries under the etc/gconf
1560 directory, as they will be handled automatically. See 1560 directory, as they will be handled automatically. See
1561 <xref linkend="faq.conf"/> for more information.</para> 1561 <xref linkend="faq.conf"/> for more information.</para>
1562 </listitem> 1562 </listitem>
1563 1563
1564 <listitem> 1564 <listitem>
1565 <para>Define the <varname>GCONF_SCHEMAS</varname> variable in 1565 <para>Define the <varname>GCONF_SCHEMAS</varname> variable in
1566 your <filename>Makefile</filename> with a list of all 1566 your <filename>Makefile</filename> with a list of all
1567 <filename>.schemas</filename> files installed by the package, if 1567 <filename>.schemas</filename> files installed by the package, if
1568 any. Names must not contain any directories in them.</para> 1568 any. Names must not contain any directories in them.</para>
1569 </listitem> 1569 </listitem>
1570 1570
1571 <listitem> 1571 <listitem>
1572 <para>Define the <varname>GCONF_ENTRIES</varname> variable in 1572 <para>Define the <varname>GCONF_ENTRIES</varname> variable in
1573 your <filename>Makefile</filename> with a 1573 your <filename>Makefile</filename> with a
1574 list of all <filename>.entries</filename> files installed by the 1574 list of all <filename>.entries</filename> files installed by the
1575 package, if any. Names must not contain any directories in 1575 package, if any. Names must not contain any directories in
1576 them.</para> 1576 them.</para>
1577 </listitem> 1577 </listitem>
1578 </orderedlist> 1578 </orderedlist>
1579 </sect2> 1579 </sect2>
1580 1580
1581 1581
1582 <sect2 id="scrollkeeper-data-files"> 1582 <sect2 id="scrollkeeper-data-files">
1583 <title>Packages installing scrollkeeper/rarian data files</title> 1583 <title>Packages installing scrollkeeper/rarian data files</title>
1584 1584
1585 <para>If a package installs <filename>.omf</filename> files, used by 1585 <para>If a package installs <filename>.omf</filename> files, used by
1586 scrollkeeper/rarian, you need to take some extra steps to make sure they 1586 scrollkeeper/rarian, you need to take some extra steps to make sure they
1587 get registered in the database:</para> 1587 get registered in the database:</para>
1588 1588
1589 <orderedlist> 1589 <orderedlist>
1590 <listitem> 1590 <listitem>
1591 <para>Include 1591 <para>Include
1592 <filename>../../mk/omf-scrollkeeper.mk</filename> 1592 <filename>../../mk/omf-scrollkeeper.mk</filename>
1593 instead of rarian's <filename>buildlink3.mk</filename> file. This 1593 instead of rarian's <filename>buildlink3.mk</filename> file. This
1594 takes care of rebuilding the scrollkeeper database at 1594 takes care of rebuilding the scrollkeeper database at
1595 installation and deinstallation time, and disallows any access 1595 installation and deinstallation time, and disallows any access
1596 to it directly from the package.</para> 1596 to it directly from the package.</para>
1597 </listitem> 1597 </listitem>
1598 1598
1599 <listitem> 1599 <listitem>
1600 <para>Check the PLIST and remove any entries under the 1600 <para>Check the PLIST and remove any entries under the
1601 <filename>libdata/scrollkeeper</filename> directory, as they 1601 <filename>libdata/scrollkeeper</filename> directory, as they
1602 will be handled automatically.</para> 1602 will be handled automatically.</para>
1603 </listitem> 1603 </listitem>
1604 1604
1605 <listitem> 1605 <listitem>
1606 <para>Remove the <filename>share/omf</filename> directory from 1606 <para>Remove the <filename>share/omf</filename> directory from
1607 the PLIST. It will be handled by rarian. (<command>make 1607 the PLIST. It will be handled by rarian. (<command>make
1608 print-PLIST</command> does this automatically.)</para> 1608 print-PLIST</command> does this automatically.)</para>
1609 </listitem> 1609 </listitem>
1610 </orderedlist> 1610 </orderedlist>
1611 </sect2> 1611 </sect2>
1612 1612
1613 1613
1614 <sect2 id="x11-fonts"> 1614 <sect2 id="x11-fonts">
1615 <title>Packages installing X11 fonts</title> 1615 <title>Packages installing X11 fonts</title>
1616 1616
1617 <para>If a package installs font files, you will need to rebuild 1617 <para>If a package installs font files, you will need to rebuild
1618 the fonts database in the directory where they get installed at 1618 the fonts database in the directory where they get installed at
1619 installation and deinstallation time. This can be automatically 1619 installation and deinstallation time. This can be automatically
1620 done by using the pkginstall framework.</para> 1620 done by using the pkginstall framework.</para>
1621 1621
1622 <para>You can list the directories where fonts are installed in the 1622 <para>You can list the directories where fonts are installed in the
1623 <varname>FONTS_DIRS.<replaceable>type</replaceable></varname> 1623 <varname>FONTS_DIRS.<replaceable>type</replaceable></varname>
1624 variables, where <replaceable>type</replaceable> can be one of 1624 variables, where <replaceable>type</replaceable> can be one of
1625 <quote>ttf</quote>, <quote>type1</quote> or <quote>x11</quote>. 1625 <quote>ttf</quote>, <quote>type1</quote> or <quote>x11</quote>.
1626 Also make sure that the database file 1626 Also make sure that the database file
1627 <filename>fonts.dir</filename> is not listed in the PLIST.</para> 1627 <filename>fonts.dir</filename> is not listed in the PLIST.</para>
1628 1628
1629 <para>Note that you should not create new directories for fonts; 1629 <para>Note that you should not create new directories for fonts;
1630 instead use the standard ones to avoid that the user needs to 1630 instead use the standard ones to avoid that the user needs to
1631 manually configure his X server to find them.</para> 1631 manually configure his X server to find them.</para>
1632 </sect2> 1632 </sect2>
1633 1633
1634 1634
1635 <sect2 id="gtk2-modules"> 1635 <sect2 id="gtk2-modules">
1636 <title>Packages installing GTK2 modules</title> 1636 <title>Packages installing GTK2 modules</title>
1637 1637
1638 <para>If a package installs GTK2 immodules or loaders, you need to 1638 <para>If a package installs GTK2 immodules or loaders, you need to
1639 take some extra steps to get them registered in the GTK2 database 1639 take some extra steps to get them registered in the GTK2 database
1640 properly:</para> 1640 properly:</para>
1641 1641
1642 <orderedlist> 1642 <orderedlist>
1643 <listitem><para>Include 1643 <listitem><para>Include
1644 <filename>../../x11/gtk2/modules.mk</filename> instead of its 1644 <filename>../../x11/gtk2/modules.mk</filename> instead of its
1645 <filename>buildlink3.mk</filename> file. This takes care of 1645 <filename>buildlink3.mk</filename> file. This takes care of
1646 rebuilding the database at installation and deinstallation time.</para> 1646 rebuilding the database at installation and deinstallation time.</para>
1647 </listitem> 1647 </listitem>
1648 1648
1649 <listitem><para>Set <varname>GTK2_IMMODULES=YES</varname> if 1649 <listitem><para>Set <varname>GTK2_IMMODULES=YES</varname> if
1650 your package installs GTK2 immodules.</para> 1650 your package installs GTK2 immodules.</para>
1651 </listitem> 1651 </listitem>
1652 1652
1653 <listitem><para>Set <varname>GTK2_LOADERS=YES</varname> if your package installs 1653 <listitem><para>Set <varname>GTK2_LOADERS=YES</varname> if your package installs
1654 GTK2 loaders.</para> 1654 GTK2 loaders.</para>
1655 </listitem> 1655 </listitem>
1656 1656
1657 <listitem><para>Patch the package to not touch any of the GTK2 1657 <listitem><para>Patch the package to not touch any of the GTK2
1658 databases directly. These are:</para> 1658 databases directly. These are:</para>
1659 1659
1660 <itemizedlist> 1660 <itemizedlist>
1661 <listitem><para><filename>libdata/gtk-2.0/gdk-pixbuf.loaders</filename></para></listitem> 1661 <listitem><para><filename>libdata/gtk-2.0/gdk-pixbuf.loaders</filename></para></listitem>
1662 <listitem><para><filename>libdata/gtk-2.0/gtk.immodules</filename></para></listitem> 1662 <listitem><para><filename>libdata/gtk-2.0/gtk.immodules</filename></para></listitem>
1663 </itemizedlist> 1663 </itemizedlist>
1664 1664
1665 </listitem> 1665 </listitem>
1666 1666
1667 <listitem><para>Check the <filename>PLIST</filename> and remove 1667 <listitem><para>Check the <filename>PLIST</filename> and remove
1668 any entries under the <filename>libdata/gtk-2.0</filename> 1668 any entries under the <filename>libdata/gtk-2.0</filename>
1669 directory, as they will be handled automatically.</para> 1669 directory, as they will be handled automatically.</para>
1670 </listitem> 1670 </listitem>
1671 </orderedlist> 1671 </orderedlist>
1672 </sect2> 1672 </sect2>
1673 1673
1674 1674
1675 <sect2 id="sgml-xml-data"> 1675 <sect2 id="sgml-xml-data">
1676 <title>Packages installing SGML or XML data</title> 1676 <title>Packages installing SGML or XML data</title>
1677 1677
1678 <para>If a package installs SGML or XML data files that need to be 1678 <para>If a package installs SGML or XML data files that need to be
1679 registered in system-wide catalogs (like DTDs, sub-catalogs, 1679 registered in system-wide catalogs (like DTDs, sub-catalogs,
1680 etc.), you need to take some extra steps:</para> 1680 etc.), you need to take some extra steps:</para>
1681 1681
1682 <orderedlist> 1682 <orderedlist>
1683 <listitem> 1683 <listitem>
1684 <para>Include 1684 <para>Include
1685 <filename>../../textproc/xmlcatmgr/catalogs.mk</filename> in 1685 <filename>../../textproc/xmlcatmgr/catalogs.mk</filename> in
1686 your <filename>Makefile</filename>, which takes care of 1686 your <filename>Makefile</filename>, which takes care of
1687 registering those files in system-wide catalogs at 1687 registering those files in system-wide catalogs at
1688 installation and deinstallation time.</para> 1688 installation and deinstallation time.</para>
1689 </listitem> 1689 </listitem>
1690 1690
1691 <listitem> 1691 <listitem>
1692 <para>Set <varname>SGML_CATALOGS</varname> to the full path of 1692 <para>Set <varname>SGML_CATALOGS</varname> to the full path of
1693 any SGML catalogs installed by the package.</para> 1693 any SGML catalogs installed by the package.</para>
1694 </listitem> 1694 </listitem>
1695 1695
1696 <listitem> 1696 <listitem>
1697 <para>Set <varname>XML_CATALOGS</varname> to the full path of 1697 <para>Set <varname>XML_CATALOGS</varname> to the full path of
1698 any XML catalogs installed by the package.</para> 1698 any XML catalogs installed by the package.</para>
1699 </listitem> 1699 </listitem>
1700 1700
1701 <listitem> 1701 <listitem>
1702 <para>Set <varname>SGML_ENTRIES</varname> to individual entries 1702 <para>Set <varname>SGML_ENTRIES</varname> to individual entries
1703 to be added to the SGML catalog. These come in groups of 1703 to be added to the SGML catalog. These come in groups of
1704 three strings; see xmlcatmgr(1) for more information 1704 three strings; see xmlcatmgr(1) for more information
1705 (specifically, arguments recognized by the 'add' action). 1705 (specifically, arguments recognized by the 'add' action).
1706 Note that you will normally not use this variable.</para> 1706 Note that you will normally not use this variable.</para>
1707 </listitem> 1707 </listitem>
1708 1708
1709 <listitem> 1709 <listitem>
1710 <para>Set <varname>XML_ENTRIES</varname> to individual entries 1710 <para>Set <varname>XML_ENTRIES</varname> to individual entries
1711 to be added to the XML catalog. These come in groups of three 1711 to be added to the XML catalog. These come in groups of three
1712 strings; see xmlcatmgr(1) for more information (specifically, 1712 strings; see xmlcatmgr(1) for more information (specifically,
1713 arguments recognized by the 'add' action). Note that you will 1713 arguments recognized by the 'add' action). Note that you will
1714 normally not use this variable.</para> 1714 normally not use this variable.</para>
1715 </listitem> 1715 </listitem>
1716 </orderedlist> 1716 </orderedlist>
1717 </sect2> 1717 </sect2>
1718 1718
1719 1719
1720 <sect2 id="mime-database"> 1720 <sect2 id="mime-database">
1721 <title>Packages installing extensions to the MIME database</title> 1721 <title>Packages installing extensions to the MIME database</title>
1722 1722
1723 <para>If a package provides extensions to the MIME database by 1723 <para>If a package provides extensions to the MIME database by
1724 installing <filename>.xml</filename> files inside 1724 installing <filename>.xml</filename> files inside
1725 <filename>${PREFIX}/share/mime/packages</filename>, you 1725 <filename>${PREFIX}/share/mime/packages</filename>, you
1726 need to take some extra steps to ensure that the database is kept 1726 need to take some extra steps to ensure that the database is kept
1727 consistent with respect to these new files:</para> 1727 consistent with respect to these new files:</para>
1728 1728
1729 <orderedlist> 1729 <orderedlist>
1730 <listitem> 1730 <listitem>
1731 <para>Include 1731 <para>Include
1732 <filename>../../databases/shared-mime-info/mimedb.mk</filename> 1732 <filename>../../databases/shared-mime-info/mimedb.mk</filename>
1733 (avoid using the <filename>buildlink3.mk</filename> file from 1733 (avoid using the <filename>buildlink3.mk</filename> file from
1734 this same directory, which is reserved for inclusion from 1734 this same directory, which is reserved for inclusion from
1735 other <filename>buildlink3.mk</filename> files). It takes 1735 other <filename>buildlink3.mk</filename> files). It takes
1736 care of rebuilding the MIME database at installation and 1736 care of rebuilding the MIME database at installation and
1737 deinstallation time, and disallows any access to it directly 1737 deinstallation time, and disallows any access to it directly
1738 from the package.</para> 1738 from the package.</para>
1739 </listitem> 1739 </listitem>
1740 1740
1741 <listitem> 1741 <listitem>
1742 <para>Check the PLIST and remove any entries under the 1742 <para>Check the PLIST and remove any entries under the
1743 <filename>share/mime</filename> directory, 1743 <filename>share/mime</filename> directory,
1744 <emphasis>except</emphasis> for files saved under 1744 <emphasis>except</emphasis> for files saved under
1745 <filename>share/mime/packages</filename>. The former are 1745 <filename>share/mime/packages</filename>. The former are
1746 handled automatically by 1746 handled automatically by
1747 the update-mime-database program, but the latter are 1747 the update-mime-database program, but the latter are
1748 package-dependent and must be removed by the package that 1748 package-dependent and must be removed by the package that
1749 installed them in the first place.</para> 1749 installed them in the first place.</para>
1750 </listitem> 1750 </listitem>
1751 1751
1752 <listitem> 1752 <listitem>
1753 <para>Remove any <filename>share/mime/*</filename> directories 1753 <para>Remove any <filename>share/mime/*</filename> directories
1754 from the PLIST. They will be handled by the shared-mime-info 1754 from the PLIST. They will be handled by the shared-mime-info
1755 package.</para> 1755 package.</para>
1756 </listitem> 1756 </listitem>
1757 </orderedlist> 1757 </orderedlist>
1758 </sect2> 1758 </sect2>
1759 1759
1760 1760
1761 <sect2 id="intltool"> 1761 <sect2 id="intltool">
1762 <title>Packages using intltool</title> 1762 <title>Packages using intltool</title>
1763 1763
1764 <para>If a package uses intltool during its build, add 1764 <para>If a package uses intltool during its build, add
1765 <literal>intltool</literal> to the <varname>USE_TOOLS</varname>, 1765 <literal>intltool</literal> to the <varname>USE_TOOLS</varname>,
1766 which forces it to use the intltool package provided by pkgsrc, 1766 which forces it to use the intltool package provided by pkgsrc,
1767 instead of the one bundled with the distribution file.</para> 1767 instead of the one bundled with the distribution file.</para>
1768 1768
1769 <para>This tracks intltool's build-time dependencies and uses the 1769 <para>This tracks intltool's build-time dependencies and uses the
1770 latest available version; this way, the package benefits of any 1770 latest available version; this way, the package benefits of any
1771 bug fixes that may have appeared since it was released.</para> 1771 bug fixes that may have appeared since it was released.</para>
1772 </sect2> 1772 </sect2>
1773 1773
1774 1774
1775 <sect2 id="startup-scripts"> 1775 <sect2 id="startup-scripts">
1776 <title>Packages installing startup scripts</title> 1776 <title>Packages installing startup scripts</title>
1777 <para>If a package contains a rc.d script, it won't be copied into 1777 <para>If a package contains a rc.d script, it won't be copied into
1778 the startup directory by default, but you can enable it, by adding 1778 the startup directory by default, but you can enable it, by adding
1779 the option <varname>PKG_RCD_SCRIPTS=YES</varname> in 1779 the option <varname>PKG_RCD_SCRIPTS=YES</varname> in
1780 &mk.conf;. This option will copy the scripts 1780 &mk.conf;. This option will copy the scripts
1781 into <filename>/etc/rc.d</filename> when a package is installed, and 1781 into <filename>/etc/rc.d</filename> when a package is installed, and
1782 it will automatically remove the scripts when the package is 1782 it will automatically remove the scripts when the package is
1783 deinstalled.</para> 1783 deinstalled.</para>
1784 </sect2> 1784 </sect2>
1785 1785
1786 <sect2 id="tex-packages"> 1786 <sect2 id="tex-packages">
1787 <title>Packages installing TeX modules</title> 1787 <title>Packages installing TeX modules</title>
1788 1788
1789 <para>If a package installs TeX packages into the texmf tree, 1789 <para>If a package installs TeX packages into the texmf tree,
1790 the <filename>ls-R</filename> database of the tree needs to be 1790 the <filename>ls-R</filename> database of the tree needs to be
1791 updated.</para> 1791 updated.</para>
1792 <note><para>Except the main TeX packages such as kpathsea, 1792 <note><para>Except the main TeX packages such as kpathsea,
1793 packages should install files 1793 packages should install files
1794 into <filename>${PREFIX}/share/texmf-dist</filename>, 1794 into <filename>${PREFIX}/share/texmf-dist</filename>,
1795 not <filename>${PREFIX}/share/texmf</filename>.</para></note> 1795 not <filename>${PREFIX}/share/texmf</filename>.</para></note>
1796 1796
1797 <orderedlist> 1797 <orderedlist>
1798 <listitem><para>Include 1798 <listitem><para>Include
1799 <filename>../../print/kpathsea/texmf.mk</filename>. This 1799 <filename>../../print/kpathsea/texmf.mk</filename>. This
1800 takes care of rebuilding the <filename>ls-R</filename> 1800 takes care of rebuilding the <filename>ls-R</filename>
1801 database at installation and deinstallation time.</para> 1801 database at installation and deinstallation time.</para>
1802 </listitem> 1802 </listitem>
1803 1803
1804 <listitem><para>If your package installs files into a texmf 1804 <listitem><para>If your package installs files into a texmf
1805 tree other than the one 1805 tree other than the one
1806 at <filename>${PREFIX}/share/texmf-dist</filename>, 1806 at <filename>${PREFIX}/share/texmf-dist</filename>,
1807 set <varname>TEX_TEXMF_DIRS</varname> to the list of all texmf 1807 set <varname>TEX_TEXMF_DIRS</varname> to the list of all texmf
1808 trees that need database update.</para> 1808 trees that need database update.</para>
1809 <para>If your package also installs font map files that need 1809 <para>If your package also installs font map files that need
1810 to be registered using <command>updmap</command>, 1810 to be registered using <command>updmap</command>,
1811 include <filename>../../print/texlive-tetex/map.mk</filename> and 1811 include <filename>../../print/texlive-tetex/map.mk</filename> and
1812 set <varname>TEX_MAP_FILES</varname> and/or 1812 set <varname>TEX_MAP_FILES</varname> and/or
1813 <varname>TEX_MIXEDMAP_FILES</varname> to the list of all 1813 <varname>TEX_MIXEDMAP_FILES</varname> to the list of all
1814 such font map files. Then <command>updmap</command> will 1814 such font map files. Then <command>updmap</command> will
1815 be run automatically at installation/deinstallation to 1815 be run automatically at installation/deinstallation to
1816 enable/disable font map files for TeX output 1816 enable/disable font map files for TeX output
1817 drivers.</para> 1817 drivers.</para>
1818 </listitem> 1818 </listitem>
1819 1819
1820 <listitem><para>Make sure that none of <filename>ls-R</filename> 1820 <listitem><para>Make sure that none of <filename>ls-R</filename>
1821 databases are included in <filename>PLIST</filename>, as 1821 databases are included in <filename>PLIST</filename>, as
1822 they will be removed only by the teTeX-bin package.</para> 1822 they will be removed only by the teTeX-bin package.</para>
1823 </listitem> 1823 </listitem>
1824 </orderedlist> 1824 </orderedlist>
1825 </sect2> 1825 </sect2>
1826 1826
1827 <sect2 id="emulation-packages"> 1827 <sect2 id="emulation-packages">
1828 <title>Packages supporting running binaries in 1828 <title>Packages supporting running binaries in
1829 emulation</title> 1829 emulation</title>
1830 1830
1831 <para>There are some packages that provide libraries and 1831 <para>There are some packages that provide libraries and
1832 executables for running binaries from a one operating system 1832 executables for running binaries from a one operating system
1833 on a different one (if the latter supports it). One example 1833 on a different one (if the latter supports it). One example
1834 is running Linux binaries on NetBSD.</para> 1834 is running Linux binaries on NetBSD.</para>
1835 1835
1836 <para>The <filename role="pkg">pkgtools/rpm2pkg</filename> 1836 <para>The <filename role="pkg">pkgtools/rpm2pkg</filename>
1837 helps in extracting and packaging Linux rpm packages.</para> 1837 helps in extracting and packaging Linux rpm packages.</para>
1838 1838
1839 <para>The <varname>CHECK_SHLIBS</varname> can be set to no to 1839 <para>The <varname>CHECK_SHLIBS</varname> can be set to no to
1840 avoid the <command>check-shlibs</command> target, which tests 1840 avoid the <command>check-shlibs</command> target, which tests
1841 if all libraries for each installed executable can be found by 1841 if all libraries for each installed executable can be found by
1842 the dynamic linker. Since the standard dynamic linker is run, 1842 the dynamic linker. Since the standard dynamic linker is run,
1843 this fails for emulation packages, because the libraries used 1843 this fails for emulation packages, because the libraries used
1844 by the emulation are not in the standard directories.</para> 1844 by the emulation are not in the standard directories.</para>
1845 </sect2> 1845 </sect2>
1846 1846
1847 <sect2 id="hicolor-theme"> 1847 <sect2 id="hicolor-theme">
1848 <title>Packages installing hicolor theme icons</title> 1848 <title>Packages installing hicolor theme icons</title>
1849 1849
1850 <para>If a package installs images under the 1850 <para>If a package installs images under the
1851 <filename>share/icons/hicolor</filename> and/or updates the 1851 <filename>share/icons/hicolor</filename> and/or updates the
1852 <filename>share/icons/hicolor/icon-theme.cache</filename> 1852 <filename>share/icons/hicolor/icon-theme.cache</filename>
1853 database, you need to take some extra steps to make sure that the 1853 database, you need to take some extra steps to make sure that the
1854 shared theme directory is handled appropriately and that the cache 1854 shared theme directory is handled appropriately and that the cache
1855 database is rebuilt:</para> 1855 database is rebuilt:</para>
1856 1856
1857 <orderedlist> 1857 <orderedlist>
1858 <listitem> 1858 <listitem>
1859 <para>Include 1859 <para>Include
1860 <filename>../../graphics/hicolor-icon-theme/buildlink3.mk</filename>.</para> 1860 <filename>../../graphics/hicolor-icon-theme/buildlink3.mk</filename>.</para>
1861 </listitem> 1861 </listitem>
1862 1862
1863 <listitem> 1863 <listitem>
1864 <para>Check the <filename>PLIST</filename> and remove the 1864 <para>Check the <filename>PLIST</filename> and remove the
1865 entry that refers to the theme cache.</para> 1865 entry that refers to the theme cache.</para>
1866 </listitem> 1866 </listitem>
1867 1867
1868 <listitem> 1868 <listitem>
1869 <para>Ensure that the PLIST does not remove the shared icon 1869 <para>Ensure that the PLIST does not remove the shared icon
1870 directories from the <filename>share/icons/hicolor</filename> 1870 directories from the <filename>share/icons/hicolor</filename>
1871 hierarchy because they will be handled automatically.</para> 1871 hierarchy because they will be handled automatically.</para>
1872 </listitem> 1872 </listitem>
1873 </orderedlist> 1873 </orderedlist>
1874 1874
1875 <para>The best way to verify that the PLIST is correct with 1875 <para>The best way to verify that the PLIST is correct with
1876 respect to the last two points is to regenerate it using 1876 respect to the last two points is to regenerate it using
1877 <command>make print-PLIST</command>.</para> 1877 <command>make print-PLIST</command>.</para>
1878 </sect2> 1878 </sect2>
1879 1879
1880 1880
1881 <sect2 id="desktop-files"> 1881 <sect2 id="desktop-files">
1882 <title>Packages installing desktop files</title> 1882 <title>Packages installing desktop files</title>
1883 1883
1884 <para>If a package installs <filename>.desktop</filename> files 1884 <para>If a package installs <filename>.desktop</filename> files
1885 under <filename>share/applications</filename> and these include 1885 under <filename>share/applications</filename> and these include
1886 MIME information, you need to take extra steps to ensure that they 1886 MIME information, you need to take extra steps to ensure that they
1887 are registered into the MIME database:</para> 1887 are registered into the MIME database:</para>
1888 1888
1889 <orderedlist> 1889 <orderedlist>
1890 <listitem> 1890 <listitem>
1891 <para>Include 1891 <para>Include
1892 <filename>../../sysutils/desktop-file-utils/desktopdb.mk</filename>.</para> 1892 <filename>../../sysutils/desktop-file-utils/desktopdb.mk</filename>.</para>
1893 </listitem> 1893 </listitem>
1894 1894
1895 <listitem> 1895 <listitem>
1896 <para>Check the PLIST and remove the entry that refers to the 1896 <para>Check the PLIST and remove the entry that refers to the
1897 <filename>share/applications/mimeinfo.cache</filename> file. 1897 <filename>share/applications/mimeinfo.cache</filename> file.
1898 It will be handled automatically.</para> 1898 It will be handled automatically.</para>
1899 </listitem> 1899 </listitem>
1900 </orderedlist> 1900 </orderedlist>
1901 1901
1902 <para>The best way to verify that the PLIST is correct with 1902 <para>The best way to verify that the PLIST is correct with
1903 respect to the last point is to regenerate it using <command>make 1903 respect to the last point is to regenerate it using <command>make
1904 print-PLIST</command>.</para> 1904 print-PLIST</command>.</para>
1905 </sect2> 1905 </sect2>
1906</sect1> 1906</sect1>
1907 1907
1908<sect1 id="punting"> 1908<sect1 id="punting">
1909 <title>Marking packages as having problems</title> 1909 <title>Marking packages as having problems</title>
1910 1910
1911 <para>In some cases one does not have the time to solve a problem 1911 <para>In some cases one does not have the time to solve a problem
1912 immediately. There are currently two ways to declare that one knows 1912 immediately. In this case, one can plainly mark a package as broken. For
1913 that a package has problems.</para> 1913 this, one just sets the variable <varname>BROKEN</varname> to the
1914 <itemizedlist> 1914 reason why the package is broken (similar to the
1915 <listitem><para>The first way is to plainly mark it as broken. For 1915 <varname>RESTRICTED</varname> variable). A user trying to build
1916 this, one just sets the variable <varname>BROKEN</varname> to the 1916 the package will immediately be shown this message, and the build
1917 reason why the package is broken (similar to the 1917 will not be even tried.</para>
1918 <varname>RESTRICTED</varname> variable). A user trying to build 1918 <para><varname>BROKEN</varname> packages are removed from pkgsrc in irregular
1919 the package will immediately be shown this message, and the build 
1920 will not be even tried.</para></listitem> 
1921 
1922 <listitem><para>After each pkgsrc freeze period (a time when the 
1923 tree is stabilized and a new pkgsrc branch is cut), the packages 
1924 that were not building in the official branch build on the latest 
1925 NetBSD release will be marked as broken on that branch. This is 
1926 done by setting the <varname>BROKEN_IN</varname> variable to the 
1927 branch name (or appending the branch name to it). If a user tries 
1928 to build such a package and the build fails, the user gets a 
1929 message that says that the package was broken on the respective 
1930 branch(es).</para></listitem> 
1931 </itemizedlist> 
1932 <para>Both types of packages are removed from pkgsrc in irregular 
1933 intervals.</para> 1919 intervals.</para>
1934</sect1> 1920</sect1>
1935 1921
1936</chapter> 1922</chapter>

cvs diff -r1.14 -r1.15 pkgsrc/emulators/simulavr/Makefile (switch to unified diff)

--- pkgsrc/emulators/simulavr/Makefile 2007/03/07 17:31:22 1.14
+++ pkgsrc/emulators/simulavr/Makefile 2009/08/25 12:32:55 1.15
@@ -1,31 +1,29 @@ @@ -1,31 +1,29 @@
1# $NetBSD: Makefile,v 1.14 2007/03/07 17:31:22 joerg Exp $ 1# $NetBSD: Makefile,v 1.15 2009/08/25 12:32:55 wiz Exp $
2# 2#
3 3
4DISTNAME= simulavr-0.1.2.1 4DISTNAME= simulavr-0.1.2.1
5PKGREVISION= 3 5PKGREVISION= 3
6CATEGORIES= emulators 6CATEGORIES= emulators
7MASTER_SITES= http://download.savannah.nongnu.org/releases/simulavr/ 7MASTER_SITES= http://download.savannah.nongnu.org/releases/simulavr/
8EXTRACT_SUFX= .tar.bz2 8EXTRACT_SUFX= .tar.bz2
9 9
10MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
11HOMEPAGE= http://www.nongnu.org/simulavr/ 11HOMEPAGE= http://www.nongnu.org/simulavr/
12COMMENT= Simulator for Atmel AVR microcontrollers 12COMMENT= Simulator for Atmel AVR microcontrollers
13 13
14BUILD_DEPENDS+= avr-binutils-[0-9]*:../../cross/avr-binutils 14BUILD_DEPENDS+= avr-binutils-[0-9]*:../../cross/avr-binutils
15BUILD_DEPENDS+= avr-gcc-[0-9]*:../../cross/avr-gcc 15BUILD_DEPENDS+= avr-gcc-[0-9]*:../../cross/avr-gcc
16BUILD_DEPENDS+= doxygen-[0-9]*:../../devel/doxygen 16BUILD_DEPENDS+= doxygen-[0-9]*:../../devel/doxygen
17 17
18BROKEN_IN= pkgsrc-2006Q4 
19 
20CONFIGURE_ARGS+= --disable-tests 18CONFIGURE_ARGS+= --disable-tests
21CONFIGURE_ENV+= ac_cv_prog_has_texi2dvi=yes ac_cv_prog_has_texi2html=yes 19CONFIGURE_ENV+= ac_cv_prog_has_texi2dvi=yes ac_cv_prog_has_texi2html=yes
22USE_TOOLS+= makeinfo 20USE_TOOLS+= makeinfo
23 21
24USE_PKGLOCALEDIR= yes 22USE_PKGLOCALEDIR= yes
25GNU_CONFIGURE= yes 23GNU_CONFIGURE= yes
26INFO_FILES= yes 24INFO_FILES= yes
27 25
28# gcc 2.95 gives warnings that it cannot inline all functions. 26# gcc 2.95 gives warnings that it cannot inline all functions.
29BUILDLINK_TRANSFORM+= rm:-Werror 27BUILDLINK_TRANSFORM+= rm:-Werror
30 28
31.include "../../mk/bsd.pkg.mk" 29.include "../../mk/bsd.pkg.mk"

cvs diff -r1.29 -r1.30 pkgsrc/emulators/twin/Makefile (switch to unified diff)

--- pkgsrc/emulators/twin/Makefile 2007/11/17 12:04:12 1.29
+++ pkgsrc/emulators/twin/Makefile 2009/08/25 12:32:55 1.30
@@ -1,38 +1,36 @@ @@ -1,38 +1,36 @@
1# $NetBSD: Makefile,v 1.29 2007/11/17 12:04:12 rillig Exp $ 1# $NetBSD: Makefile,v 1.30 2009/08/25 12:32:55 wiz Exp $
2# 2#
3 3
4DISTNAME= twin-src-3.1.14 4DISTNAME= twin-src-3.1.14
5PKGNAME= twin-3.1.14 5PKGNAME= twin-3.1.14
6PKGREVISION= 3 6PKGREVISION= 3
7CATEGORIES= emulators 7CATEGORIES= emulators
8MASTER_SITES= ftp://ftp.willows.com/pub/twin/ 8MASTER_SITES= ftp://ftp.willows.com/pub/twin/
9 9
10MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
11HOMEPAGE= http://www.willows.com/ 11HOMEPAGE= http://www.willows.com/
12COMMENT= Cross-platform implementation of the Win32 API 12COMMENT= Cross-platform implementation of the Win32 API
13 13
14BROKEN_IN= pkgsrc-2005Q4 pkgsrc-2006Q1 pkgsrc-2006Q4 
15 
16WRKSRC= ${WRKDIR}/twin 14WRKSRC= ${WRKDIR}/twin
17GNU_CONFIGURE= yes 15GNU_CONFIGURE= yes
18USE_TOOLS+= gmake lex yacc 16USE_TOOLS+= gmake lex yacc
19BUILD_TARGET= depend world 17BUILD_TARGET= depend world
20CONFIGURE_ARGS+= --enable-debugger 18CONFIGURE_ARGS+= --enable-debugger
21 19
22pre-build: 20pre-build:
23 ${CP} ${WRKSRC}/windows/Execfreebsd.c ${WRKSRC}/windows/Execnetbsd.c 21 ${CP} ${WRKSRC}/windows/Execfreebsd.c ${WRKSRC}/windows/Execnetbsd.c
24 22
25post-install: 23post-install:
26 ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/twin 24 ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/twin
27 ${INSTALL_DATA} ${WRKSRC}/documentation/* ${PREFIX}/share/doc/twin/ 25 ${INSTALL_DATA} ${WRKSRC}/documentation/* ${PREFIX}/share/doc/twin/
28 ${INSTALL_DATA} ${WRKSRC}/include/*.h ${PREFIX}/include/ 26 ${INSTALL_DATA} ${WRKSRC}/include/*.h ${PREFIX}/include/
29 ${INSTALL_DATA} ${WRKSRC}/include/*.h.in ${PREFIX}/include/ 27 ${INSTALL_DATA} ${WRKSRC}/include/*.h.in ${PREFIX}/include/
30 ${INSTALL_DATA} ${WRKSRC}/documentation/rc.1 ${PREFIX}/${PKGMANDIR}/man1 28 ${INSTALL_DATA} ${WRKSRC}/documentation/rc.1 ${PREFIX}/${PKGMANDIR}/man1
31 ${INSTALL_DATA} ${WRKSRC}/documentation/debugger.1 ${PREFIX}/${PKGMANDIR}/man1 29 ${INSTALL_DATA} ${WRKSRC}/documentation/debugger.1 ${PREFIX}/${PKGMANDIR}/man1
32 ${INSTALL_PROGRAM} ${WRKSRC}/tools/rc/rc ${PREFIX}/bin 30 ${INSTALL_PROGRAM} ${WRKSRC}/tools/rc/rc ${PREFIX}/bin
33 31
34BUILDLINK_DEPMETHOD.libXt?= build 32BUILDLINK_DEPMETHOD.libXt?= build
35 33
36.include "../../x11/libX11/buildlink3.mk" 34.include "../../x11/libX11/buildlink3.mk"
37.include "../../x11/libXt/buildlink3.mk" 35.include "../../x11/libXt/buildlink3.mk"
38.include "../../mk/bsd.pkg.mk" 36.include "../../mk/bsd.pkg.mk"

cvs diff -r1.21 -r1.22 pkgsrc/graphics/denemo/Makefile (switch to unified diff)

--- pkgsrc/graphics/denemo/Makefile 2009/07/22 09:01:30 1.21
+++ pkgsrc/graphics/denemo/Makefile 2009/08/25 12:32:55 1.22
@@ -1,23 +1,21 @@ @@ -1,23 +1,21 @@
1# $NetBSD: Makefile,v 1.21 2009/07/22 09:01:30 wiz Exp $ 1# $NetBSD: Makefile,v 1.22 2009/08/25 12:32:55 wiz Exp $
2# 2#
3 3
4DISTNAME= denemo-0.7.6 4DISTNAME= denemo-0.7.6
5CATEGORIES= graphics print 5CATEGORIES= graphics print
6MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=denemo/} 6MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=denemo/}
7 7
8MAINTAINER= rh@NetBSD.org 8MAINTAINER= rh@NetBSD.org
9HOMEPAGE= http://denemo.sourceforge.net/ 9HOMEPAGE= http://denemo.sourceforge.net/
10COMMENT= GUI musical score editor written in C/GTK+ 10COMMENT= GUI musical score editor written in C/GTK+
11 11
12PKG_DESTDIR_SUPPORT= user-destdir 12PKG_DESTDIR_SUPPORT= user-destdir
13 13
14DEPENDS+= lilypond-[0-9]*:../../print/lilypond 14DEPENDS+= lilypond-[0-9]*:../../print/lilypond
15 15
16BROKEN_IN= pkgsrc-2006Q4 
17 
18GNU_CONFIGURE= YES 16GNU_CONFIGURE= YES
19USE_TOOLS+= pkg-config 17USE_TOOLS+= pkg-config
20 18
21.include "../../textproc/libxml2/buildlink3.mk" 19.include "../../textproc/libxml2/buildlink3.mk"
22.include "../../x11/gtk2/buildlink3.mk" 20.include "../../x11/gtk2/buildlink3.mk"
23.include "../../mk/bsd.pkg.mk" 21.include "../../mk/bsd.pkg.mk"

cvs diff -r1.7 -r1.8 pkgsrc/lang/jdk-openjit/Attic/Makefile (switch to unified diff)

--- pkgsrc/lang/jdk-openjit/Attic/Makefile 2007/01/31 00:04:11 1.7
+++ pkgsrc/lang/jdk-openjit/Attic/Makefile 2009/08/25 12:32:55 1.8
@@ -1,12 +1,10 @@ @@ -1,12 +1,10 @@
1# $NetBSD: Makefile,v 1.7 2007/01/31 00:04:11 wiz Exp $ 1# $NetBSD: Makefile,v 1.8 2009/08/25 12:32:55 wiz Exp $
2 2
3PKGNAME= jdk-openjit-${OPENJIT_VERSION} 3PKGNAME= jdk-openjit-${OPENJIT_VERSION}
4PKGREVISION= 1 4PKGREVISION= 1
5 5
6BROKEN_IN= pkgsrc-2005Q4 pkgsrc-2006Q1 pkgsrc-2006Q4 
7 
8PKG_JVMS_ACCEPTED= jdk 6PKG_JVMS_ACCEPTED= jdk
9CLASSDIR= classes 7CLASSDIR= classes
10JRELIB= lib/${MACHINE_ARCH}/green_threads 8JRELIB= lib/${MACHINE_ARCH}/green_threads
11 9
12.include "../../lang/jdk-openjit/Makefile.common" 10.include "../../lang/jdk-openjit/Makefile.common"

cvs diff -r1.64 -r1.65 pkgsrc/net/arla/Attic/Makefile (switch to unified diff)

--- pkgsrc/net/arla/Attic/Makefile 2008/11/10 17:21:37 1.64
+++ pkgsrc/net/arla/Attic/Makefile 2009/08/25 12:32:55 1.65
@@ -1,79 +1,77 @@ @@ -1,79 +1,77 @@
1# $NetBSD: Makefile,v 1.64 2008/11/10 17:21:37 wiz Exp $ 1# $NetBSD: Makefile,v 1.65 2009/08/25 12:32:55 wiz Exp $
2 2
3DISTNAME= arla-0.43 3DISTNAME= arla-0.43
4PKGREVISION= 2 4PKGREVISION= 2
5CATEGORIES= net security 5CATEGORIES= net security
6MASTER_SITES= ftp://ftp.stacken.kth.se/pub/arla/ 6MASTER_SITES= ftp://ftp.stacken.kth.se/pub/arla/
7 7
8MAINTAINER= wennmach@NetBSD.org 8MAINTAINER= wennmach@NetBSD.org
9HOMEPAGE= http://www.stacken.kth.se/project/arla/ 9HOMEPAGE= http://www.stacken.kth.se/project/arla/
10COMMENT= Free AFS implementation from KTH 10COMMENT= Free AFS implementation from KTH
11 11
12BROKEN_IN= pkgsrc-2006Q4 
13 
14CONFLICTS+= heimdal-[0-9]* 12CONFLICTS+= heimdal-[0-9]*
15CONFLICTS+= lwp-[0-9]* 13CONFLICTS+= lwp-[0-9]*
16CONFLICTS+= openafs-[0-9]* 14CONFLICTS+= openafs-[0-9]*
17CONFLICTS+= rx-[0-9]* 15CONFLICTS+= rx-[0-9]*
18CONFLICTS+= kth-krb4-[0-9]* 16CONFLICTS+= kth-krb4-[0-9]*
19 17
20OSVERSION_SPECIFIC= yes 18OSVERSION_SPECIFIC= yes
21INFO_FILES= yes 19INFO_FILES= yes
22 20
23USE_LIBTOOL= yes 21USE_LIBTOOL= yes
24GNU_CONFIGURE= yes 22GNU_CONFIGURE= yes
25 23
26BUILD_DEFS+= BSDSRCDIR 24BUILD_DEFS+= BSDSRCDIR
27BUILD_DEFS+= ARLA_CACHE 25BUILD_DEFS+= ARLA_CACHE
28 26
29.include "options.mk" 27.include "options.mk"
30.include "../../mk/bsd.prefs.mk" 28.include "../../mk/bsd.prefs.mk"
31 29
32.if !exists(/usr/src/sys/lib/libkern/libkern.h) 30.if !exists(/usr/src/sys/lib/libkern/libkern.h)
33. if exists(${BSDSRCDIR}/sys/lib/libkern/libkern.h) 31. if exists(${BSDSRCDIR}/sys/lib/libkern/libkern.h)
34CONFIGURE_ARGS+= --with-sys=${BSDSRCDIR}/sys 32CONFIGURE_ARGS+= --with-sys=${BSDSRCDIR}/sys
35. else 33. else
36PKG_FAIL_REASON+= "${PKGNAME} requires kernel sources available under \$$BSDSRCDIR/sys (or /usr/src/sys)" 34PKG_FAIL_REASON+= "${PKGNAME} requires kernel sources available under \$$BSDSRCDIR/sys (or /usr/src/sys)"
37. endif 35. endif
38.endif 36.endif
39 37
40CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR:Q} 38CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR:Q}
41CONFIGURE_ARGS+= --with-arlacachedir=${ARLA_CACHE:Q} 39CONFIGURE_ARGS+= --with-arlacachedir=${ARLA_CACHE:Q}
42CONFIGURE_ARGS+= --enable-shared=no 40CONFIGURE_ARGS+= --enable-shared=no
43 41
44# Enable one or more of the following kernel compile options as required: 42# Enable one or more of the following kernel compile options as required:
45# (these options must match the compile options of the kernel) 43# (these options must match the compile options of the kernel)
46#CONFIGURE_ENV+= KERNEL_CPPFLAGS="-DMULTIPROCESSOR -DDEBUG -DDIAGNOSTIC" 44#CONFIGURE_ENV+= KERNEL_CPPFLAGS="-DMULTIPROCESSOR -DDEBUG -DDIAGNOSTIC"
47 45
48MESSAGE_SUBST+= ARLA_CACHE=${ARLA_CACHE:Q} 46MESSAGE_SUBST+= ARLA_CACHE=${ARLA_CACHE:Q}
49PLIST_SUBST+= ARLA_CACHE=${ARLA_CACHE:Q} 47PLIST_SUBST+= ARLA_CACHE=${ARLA_CACHE:Q}
50FILES_SUBST+= ARLA_CACHE=${ARLA_CACHE:Q} 48FILES_SUBST+= ARLA_CACHE=${ARLA_CACHE:Q}
51 49
52SUBST_CLASSES+= paths 50SUBST_CLASSES+= paths
53SUBST_FILES.paths= ${WRKDIR}/lkm.conf 51SUBST_FILES.paths= ${WRKDIR}/lkm.conf
54SUBST_SED.paths+= -e 's,@PREFIX@,${PREFIX},g' 52SUBST_SED.paths+= -e 's,@PREFIX@,${PREFIX},g'
55SUBST_STAGE.paths= post-patch 53SUBST_STAGE.paths= post-patch
56 54
57INSTALL_MAKE_FLAGS+= ${MAKE_FLAGS} 55INSTALL_MAKE_FLAGS+= ${MAKE_FLAGS}
58INSTALL_MAKE_FLAGS+= lkmdir=${PREFIX:Q}/lkm 56INSTALL_MAKE_FLAGS+= lkmdir=${PREFIX:Q}/lkm
59INSTALL_MAKE_FLAGS+= sysconfdir=${EGDIR:Q} 57INSTALL_MAKE_FLAGS+= sysconfdir=${EGDIR:Q}
60 58
61EGDIR= ${PREFIX}/share/examples/arla 59EGDIR= ${PREFIX}/share/examples/arla
62EGFILES= CellServDB DynRootDB SuidCells ThisCell arla.conf 60EGFILES= CellServDB DynRootDB SuidCells ThisCell arla.conf
63 61
64.for f in ${EGFILES} 62.for f in ${EGFILES}
65CONF_FILES+= ${EGDIR}/${f} ${PKG_SYSCONFDIR}/${f} 63CONF_FILES+= ${EGDIR}/${f} ${PKG_SYSCONFDIR}/${f}
66.endfor 64.endfor
67 65
68RCD_SCRIPTS= arlad 66RCD_SCRIPTS= arlad
69OWN_DIRS_PERMS= ${ARLA_CACHE} ${ROOT_USER} ${ROOT_GROUP} 0700 67OWN_DIRS_PERMS= ${ARLA_CACHE} ${ROOT_USER} ${ROOT_GROUP} 0700
70 68
71post-extract: 69post-extract:
72 ${CP} ${FILESDIR}/lkm.conf ${WRKDIR}/lkm.conf 70 ${CP} ${FILESDIR}/lkm.conf ${WRKDIR}/lkm.conf
73 71
74post-install: 72post-install:
75 ${RM} -f ${EGDIR}/*.default 73 ${RM} -f ${EGDIR}/*.default
76 ${INSTALL_DATA} ${WRKDIR}/lkm.conf ${EGDIR} 74 ${INSTALL_DATA} ${WRKDIR}/lkm.conf ${EGDIR}
77 ${INSTALL_DATA} ${FILESDIR}/fstab ${EGDIR} 75 ${INSTALL_DATA} ${FILESDIR}/fstab ${EGDIR}
78 76
79.include "../../mk/bsd.pkg.mk" 77.include "../../mk/bsd.pkg.mk"

cvs diff -r1.196 -r1.197 pkgsrc/pkgtools/pkglint/files/Attic/makevars.map (switch to unified diff)

--- pkgsrc/pkgtools/pkglint/files/Attic/makevars.map 2009/07/22 09:13:49 1.196
+++ pkgsrc/pkgtools/pkglint/files/Attic/makevars.map 2009/08/25 12:32:56 1.197
@@ -1,732 +1,731 @@ @@ -1,732 +1,731 @@
1# $NetBSD: makevars.map,v 1.196 2009/07/22 09:13:49 wiz Exp $ 1# $NetBSD: makevars.map,v 1.197 2009/08/25 12:32:56 wiz Exp $
2# 2#
3 3
4# This file contains the guessed type of some variables, according to 4# This file contains the guessed type of some variables, according to
5# their current use in pkgsrc. 5# their current use in pkgsrc.
6# 6#
7# The type YesNo is used for variables that are checked using 7# The type YesNo is used for variables that are checked using
8# .if defined(VAR) && !empty(VAR:M[Yy][Ee][Ss]) 8# .if defined(VAR) && !empty(VAR:M[Yy][Ee][Ss])
9# 9#
10# The type Yes is used for variables that are checked using 10# The type Yes is used for variables that are checked using
11# .if defined(VAR) 11# .if defined(VAR)
12# 12#
13# Type type List is used for lists of things. There are two types of lists, 13# Type type List is used for lists of things. There are two types of lists,
14# InternalList and List, which are described in the pkgsrc guide, chapter 14# InternalList and List, which are described in the pkgsrc guide, chapter
15# "Makefiles". 15# "Makefiles".
16 16
17# 17#
18# Some commonly used ACLs. For further documentation, see the chapter 18# Some commonly used ACLs. For further documentation, see the chapter
19# ``The pkglint type system'' in the pkglint developer documentation. 19# ``The pkglint type system'' in the pkglint developer documentation.
20# 20#
21 21
22# A package-defined variable may be set in Makefile, Makefile.common or 22# A package-defined variable may be set in Makefile, Makefile.common or
23# options.mk, since these are commonly used in pkgsrc. Due to the 23# options.mk, since these are commonly used in pkgsrc. Due to the
24# special nature of buildlink3.mk and builtin.mk files, these files may 24# special nature of buildlink3.mk and builtin.mk files, these files may
25# not define those variables. All other .mk files may, allowing for 25# not define those variables. All other .mk files may, allowing for
26# application.mk or similar helper files. 26# application.mk or similar helper files.
27acl package = [m:su, c:dsu, b:, builtin.mk:, *.mk:dsu] 27acl package = [m:su, c:dsu, b:, builtin.mk:, *.mk:dsu]
28 28
29# A package_list may be appended to in all "normal" Makefile fragments. 29# A package_list may be appended to in all "normal" Makefile fragments.
30# This excludes buildlink3.mk and builtin.mk, since they are very 30# This excludes buildlink3.mk and builtin.mk, since they are very
31# special-purpose. Because at the beginning, all lists are empty, in the 31# special-purpose. Because at the beginning, all lists are empty, in the
32# primary Makefile a direct assignment may be used instead of appending. 32# primary Makefile a direct assignment may be used instead of appending.
33# Since Makefile.common files are usually used by packages that know 33# Since Makefile.common files are usually used by packages that know
34# what they are doing, they may set variables directly, too. This rule 34# what they are doing, they may set variables directly, too. This rule
35# can be removed to show a lot of possible problems in pkgsrc. 35# can be removed to show a lot of possible problems in pkgsrc.
36acl package_list = [m:asu, c:asu, b:, builtin.mk:, *.mk:au] 36acl package_list = [m:asu, c:asu, b:, builtin.mk:, *.mk:au]
37acl bl_list = [b:a, builtin.mk:a] 37acl bl_list = [b:a, builtin.mk:a]
38 38
39# A user-defined or system-defined variable must not be set by any 39# A user-defined or system-defined variable must not be set by any
40# package file. It also must not be used in buildlink3.mk and 40# package file. It also must not be used in buildlink3.mk and
41# builtin.mk files or at load-time, since the system/user preferences 41# builtin.mk files or at load-time, since the system/user preferences
42# may not have been loaded when these files are included. 42# may not have been loaded when these files are included.
43acl user = [b:, builtin.mk:, *:u] 43acl user = [b:, builtin.mk:, *:u]
44acl system = [b:, builtin.mk:u, *:u] 44acl system = [b:, builtin.mk:u, *:u]
45acl cmdline = [b:, builtin.mk:, *:pu] 45acl cmdline = [b:, builtin.mk:, *:pu]
46 46
47# The following variables are taken from mk/defaults/mk.conf, 1.118 47# The following variables are taken from mk/defaults/mk.conf, 1.118
48 48
49ALLOW_VULNERABLE_PACKAGES Yes [$user] 49ALLOW_VULNERABLE_PACKAGES Yes [$user]
50MANINSTALL List of { maninstall catinstall } [$user] 50MANINSTALL List of { maninstall catinstall } [$user]
51MANZ Yes [$user] 51MANZ Yes [$user]
52GZIP List of ShellWord [$user] 52GZIP List of ShellWord [$user]
53MKCRYPTO YesNo [$user] 53MKCRYPTO YesNo [$user]
54OBJHOSTNAME Yes [$user] 54OBJHOSTNAME Yes [$user]
55OBJMACHINE Yes [$user] 55OBJMACHINE Yes [$user]
56PKG_SUFX Filename [$user] 56PKG_SUFX Filename [$user]
57PKGSRC_LOCKTYPE { none sleep once } [$user] 57PKGSRC_LOCKTYPE { none sleep once } [$user]
58PKGSRC_SLEEPSECS Integer [$user] 58PKGSRC_SLEEPSECS Integer [$user]
59USETBL Yes [$user] 59USETBL Yes [$user]
60ABI { 32 64 } [$user] 60ABI { 32 64 } [$user]
61PKG_DEVELOPER Yes [$user] 61PKG_DEVELOPER Yes [$user]
62USE_ABI_DEPENDS YesNo [$user] 62USE_ABI_DEPENDS YesNo [$user]
63PKG_REGISTER_SHELLS { YES NO } [$user] 63PKG_REGISTER_SHELLS { YES NO } [$user]
64PKGSRC_COMPILER List of { \ 64PKGSRC_COMPILER List of { \
65 ccache ccc distcc f2c gcc hp icc \ 65 ccache ccc distcc f2c gcc hp icc \
66 ido gcc mipspro mipspro-ucode pcc \ 66 ido gcc mipspro mipspro-ucode pcc \
67 sunpro xlc \ 67 sunpro xlc \
68 } [$user] 68 } [$user]
69PKGSRC_MESSAGE_RECIPIENTS List of Mail_Address [$user] 69PKGSRC_MESSAGE_RECIPIENTS List of Mail_Address [$user]
70PKGSRC_SHOW_BUILD_DEFS YesNo [$user] 70PKGSRC_SHOW_BUILD_DEFS YesNo [$user]
71PKGSRC_SHOW_PATCH_ERRORMSG YesNo [$user] 71PKGSRC_SHOW_PATCH_ERRORMSG YesNo [$user]
72PKGSRC_RUN_TEST YesNo [$user] 72PKGSRC_RUN_TEST YesNo [$user]
73PREFER_PKGSRC List of Identifier [$user] 73PREFER_PKGSRC List of Identifier [$user]
74PREFER_NATIVE List of Identifier [$user] 74PREFER_NATIVE List of Identifier [$user]
75PREFER_NATIVE_PTHREADS YesNo [$user] 75PREFER_NATIVE_PTHREADS YesNo [$user]
76LOCALBASE Pathname [$user] 76LOCALBASE Pathname [$user]
77CROSSBASE Pathname [$user] 77CROSSBASE Pathname [$user]
78VARBASE Pathname [$user] 78VARBASE Pathname [$user]
79X11_TYPE { modular native } [$user] 79X11_TYPE { modular native } [$user]
80X11BASE Pathname [$user] 80X11BASE Pathname [$user]
81MOTIFBASE Pathname [$user] 81MOTIFBASE Pathname [$user]
82PKGINFODIR Pathname [$user] 82PKGINFODIR Pathname [$user]
83PKGMANDIR Pathname [$user] 83PKGMANDIR Pathname [$user]
84USE_XPKGWEDGE YesNo [$user] 84USE_XPKGWEDGE YesNo [$user]
85BSDSRCDIR Pathname [$user] 85BSDSRCDIR Pathname [$user]
86BSDXSRCDIR Pathname [$user] 86BSDXSRCDIR Pathname [$user]
87DISTDIR Pathname [$user] 87DISTDIR Pathname [$user]
88DIST_PATH Pathlist [$user] 88DIST_PATH Pathlist [$user]
89DEFAULT_VIEW Unchecked [$user] 89DEFAULT_VIEW Unchecked [$user]
90FETCH_CMD ShellCommand [$user] 90FETCH_CMD ShellCommand [$user]
91FETCH_RESUME_ARGS List of ShellWord [$user] 91FETCH_RESUME_ARGS List of ShellWord [$user]
92FETCH_OUTPUT_ARGS List of ShellWord [$user] 92FETCH_OUTPUT_ARGS List of ShellWord [$user]
93LIBTOOLIZE_PLIST YesNo [$user] 93LIBTOOLIZE_PLIST YesNo [$user]
94PKG_INSTALLATION_PREFS List of { overwrite pkgviews } [$user] 94PKG_INSTALLATION_PREFS List of { overwrite pkgviews } [$user]
95PKG_RESUME_TRANSFERS YesNo [$user] 95PKG_RESUME_TRANSFERS YesNo [$user]
96PKG_SYSCONFBASE Pathname [$user] 96PKG_SYSCONFBASE Pathname [$user]
97RCD_SCRIPTS_DIR Pathname [$user] 97RCD_SCRIPTS_DIR Pathname [$user]
98PACKAGES Pathname [$user] 98PACKAGES Pathname [$user]
99PKGVULNDIR Pathname [$user] 99PKGVULNDIR Pathname [$user]
100PASSIVE_FETCH Yes [$user] 100PASSIVE_FETCH Yes [$user]
101PATCH_FUZZ_FACTOR { -F0 -F1 -F2 -F3 } [$user] 101PATCH_FUZZ_FACTOR { -F0 -F1 -F2 -F3 } [$user]
102ACCEPTABLE_LICENSES List of Identifier [$user] 102ACCEPTABLE_LICENSES List of Identifier [$user]
103SPECIFIC_PKGS Yes [$user] 103SPECIFIC_PKGS Yes [$user]
104SITE_SPECIFIC_PKGS List of PkgPath [$user] 104SITE_SPECIFIC_PKGS List of PkgPath [$user]
105HOST_SPECIFIC_PKGS List of PkgPath [$user] 105HOST_SPECIFIC_PKGS List of PkgPath [$user]
106GROUP_SPECIFIC_PKGS List of PkgPath [$user] 106GROUP_SPECIFIC_PKGS List of PkgPath [$user]
107USER_SPECIFIC_PKGS List of PkgPath [$user] 107USER_SPECIFIC_PKGS List of PkgPath [$user]
108FAILOVER_FETCH Yes [$user] 108FAILOVER_FETCH Yes [$user]
109MASTER_SORT List of Unchecked [$user] 109MASTER_SORT List of Unchecked [$user]
110MASTER_SORT_REGEX List of Unchecked [$user] 110MASTER_SORT_REGEX List of Unchecked [$user]
111PATCH_DEBUG Yes [$user] 111PATCH_DEBUG Yes [$user]
112PKG_FC ShellCommand [$user] 112PKG_FC ShellCommand [$user]
113IMAKE ShellCommand [$user] 113IMAKE ShellCommand [$user]
114IMAKEOPTS List of ShellWord [$user] 114IMAKEOPTS List of ShellWord [$user]
115PRE_ROOT_CMD ShellCommand [$user] 115PRE_ROOT_CMD ShellCommand [$user]
116SETGIDGAME YesNo [$user] 116SETGIDGAME YesNo [$user]
117SU_CMD ShellCommand [$user] 117SU_CMD ShellCommand [$user]
118SU_CMD_PATH_APPEND Pathlist [$user] 118SU_CMD_PATH_APPEND Pathlist [$user]
119FATAL_OBJECT_FMT_SKEW YesNo [$user] 119FATAL_OBJECT_FMT_SKEW YesNo [$user]
120WARN_NO_OBJECT_FMT YesNo [$user] 120WARN_NO_OBJECT_FMT YesNo [$user]
121SMART_MESSAGES Yes [$user] 121SMART_MESSAGES Yes [$user]
122BINPKG_SITES List of URL [$user] 122BINPKG_SITES List of URL [$user]
123BIN_INSTALL_FLAG List of ShellWord [$user] 123BIN_INSTALL_FLAG List of ShellWord [$user]
124LOCALPATCHES Pathname [$user] 124LOCALPATCHES Pathname [$user]
125 125
126# some other variables, sorted alphabetically 126# some other variables, sorted alphabetically
127 127
128.CURDIR Pathname [$system] 128.CURDIR Pathname [$system]
129.TARGET Pathname [$system] 129.TARGET Pathname [$system]
130ALL_ENV List of ShellWord 130ALL_ENV List of ShellWord
131ALTERNATIVES_FILE Filename 131ALTERNATIVES_FILE Filename
132ALTERNATIVES_SRC List of Pathname 132ALTERNATIVES_SRC List of Pathname
133APACHE_MODULE Yes [$package] 133APACHE_MODULE Yes [$package]
134AR ShellCommand [$system] 134AR ShellCommand [$system]
135AS ShellCommand [$system] 135AS ShellCommand [$system]
136AUTOCONF_REQD List of Version [$package_list] 136AUTOCONF_REQD List of Version [$package_list]
137AUTOMAKE_OVERRIDE List of Pathmask 137AUTOMAKE_OVERRIDE List of Pathmask
138AUTOMAKE_REQD List of Version [$package_list] 138AUTOMAKE_REQD List of Version [$package_list]
139AUTO_MKDIRS YesNo [$package] 139AUTO_MKDIRS YesNo [$package]
140BATCH Yes [$user] 140BATCH Yes [$user]
141BDB185_DEFAULT Unchecked [] 141BDB185_DEFAULT Unchecked []
142BDBBASE Pathname [$system] 142BDBBASE Pathname [$system]
143BDB_ACCEPTED List of { db1 db2 db3 db4 } [$package] 143BDB_ACCEPTED List of { db1 db2 db3 db4 } [$package]
144BDB_DEFAULT { db1 db2 db3 db4 } [] 144BDB_DEFAULT { db1 db2 db3 db4 } []
145BDB_LIBS List of LdFlag [$system] 145BDB_LIBS List of LdFlag [$system]
146BDB_TYPE { db1 db2 db3 db4 } [$system] 146BDB_TYPE { db1 db2 db3 db4 } [$system]
147BINGRP UserGroupName [$system] 147BINGRP UserGroupName [$system]
148BINMODE FileMode [$system] 148BINMODE FileMode [$system]
149BINOWN UserGroupName [$system] 149BINOWN UserGroupName [$system]
150BOOTSTRAP_DEPENDS InternalList of DependencyWithPath [c:a,m:a,o:a,*.mk:a] 150BOOTSTRAP_DEPENDS InternalList of DependencyWithPath [c:a,m:a,o:a,*.mk:a]
151BROKEN Message [] 151BROKEN Message []
152BROKEN_GETTEXT_DETECTION YesNo [$package] 152BROKEN_GETTEXT_DETECTION YesNo [$package]
153BROKEN_IN List of BrokenIn [m:s] 
154BSD_MAKE_ENV List of ShellWord [$system] 153BSD_MAKE_ENV List of ShellWord [$system]
155BUILDLINK_ABI_DEPENDS.* InternalList of Dependency [*:a] 154BUILDLINK_ABI_DEPENDS.* InternalList of Dependency [*:a]
156BUILDLINK_API_DEPENDS.* InternalList of Dependency [*:a] 155BUILDLINK_API_DEPENDS.* InternalList of Dependency [*:a]
157BUILDLINK_CONTENTS_FILTER List of ShellWord [] 156BUILDLINK_CONTENTS_FILTER List of ShellWord []
158# ^^ ShellCommand 157# ^^ ShellCommand
159BUILDLINK_CFLAGS List of CFlag [$system] 158BUILDLINK_CFLAGS List of CFlag [$system]
160BUILDLINK_CFLAGS.* List of CFlag [$bl_list] 159BUILDLINK_CFLAGS.* List of CFlag [$bl_list]
161BUILDLINK_CPPFLAGS List of CFlag [$system] 160BUILDLINK_CPPFLAGS List of CFlag [$system]
162BUILDLINK_CPPFLAGS.* List of CFlag [$bl_list] 161BUILDLINK_CPPFLAGS.* List of CFlag [$bl_list]
163BUILDLINK_CONTENTS_FILTER.* ShellCommand [b:s] 162BUILDLINK_CONTENTS_FILTER.* ShellCommand [b:s]
164BUILDLINK_DEPENDS InternalList of Identifier [b:a] 163BUILDLINK_DEPENDS InternalList of Identifier [b:a]
165BUILDLINK_DEPMETHOD.* List of BuildlinkDepmethod [b:ad,m:as,c:a,*.mk:a] 164BUILDLINK_DEPMETHOD.* List of BuildlinkDepmethod [b:ad,m:as,c:a,*.mk:a]
166# ^^ FIXME: b:d may lead to unexpected behavior. 165# ^^ FIXME: b:d may lead to unexpected behavior.
167BUILDLINK_DEPTH BuildlinkDepth [b:ps, builtin.mk:ps] 166BUILDLINK_DEPTH BuildlinkDepth [b:ps, builtin.mk:ps]
168BUILDLINK_DIR Pathname [$system] 167BUILDLINK_DIR Pathname [$system]
169BUILDLINK_FILES.* List of Pathmask [$bl_list] 168BUILDLINK_FILES.* List of Pathmask [$bl_list]
170BUILDLINK_FILES_CMD.* List of ShellWord [] 169BUILDLINK_FILES_CMD.* List of ShellWord []
171# ^^ ShellCommand 170# ^^ ShellCommand
172BUILDLINK_INCDIRS.* List of Pathname [b:ad] # b:d? 171BUILDLINK_INCDIRS.* List of Pathname [b:ad] # b:d?
173BUILDLINK_JAVA_PREFIX.* Pathname [b:s] 172BUILDLINK_JAVA_PREFIX.* Pathname [b:s]
174BUILDLINK_LDADD.* List of LdFlag [builtin.mk:adsu, b:, m:u, c:u, *.mk:u] 173BUILDLINK_LDADD.* List of LdFlag [builtin.mk:adsu, b:, m:u, c:u, *.mk:u]
175BUILDLINK_LDFLAGS List of LdFlag [$system] 174BUILDLINK_LDFLAGS List of LdFlag [$system]
176BUILDLINK_LDFLAGS.* List of LdFlag [$bl_list] 175BUILDLINK_LDFLAGS.* List of LdFlag [$bl_list]
177BUILDLINK_LIBDIRS.* List of Pathname [$bl_list] 176BUILDLINK_LIBDIRS.* List of Pathname [$bl_list]
178BUILDLINK_LIBS.* List of LdFlag [b:a] 177BUILDLINK_LIBS.* List of LdFlag [b:a]
179BUILDLINK_PACKAGES BuildlinkPackages [b:aps] 178BUILDLINK_PACKAGES BuildlinkPackages [b:aps]
180BUILDLINK_PASSTHRU_DIRS List of Pathname [m:a,c:a,b:a,h:a] 179BUILDLINK_PASSTHRU_DIRS List of Pathname [m:a,c:a,b:a,h:a]
181BUILDLINK_PASSTHRU_RPATHDIRS List of Pathname [m:a,c:a,b:a,h:a] 180BUILDLINK_PASSTHRU_RPATHDIRS List of Pathname [m:a,c:a,b:a,h:a]
182BUILDLINK_PKGSRCDIR.* RelativePkgDir [b:dp] 181BUILDLINK_PKGSRCDIR.* RelativePkgDir [b:dp]
183BUILDLINK_PREFIX.* Pathname [builtin.mk:su, b:, m:u, c:u, *.mk:u] 182BUILDLINK_PREFIX.* Pathname [builtin.mk:su, b:, m:u, c:u, *.mk:u]
184BUILDLINK_RPATHDIRS.* List of Pathname [b:a] 183BUILDLINK_RPATHDIRS.* List of Pathname [b:a]
185BUILDLINK_TARGETS List of Identifier [] 184BUILDLINK_TARGETS List of Identifier []
186BUILDLINK_FNAME_TRANSFORM.* SedCommands [m:a,builtin.mk:a,h:a,b:a] 185BUILDLINK_FNAME_TRANSFORM.* SedCommands [m:a,builtin.mk:a,h:a,b:a]
187BUILDLINK_TRANSFORM List of WrapperTransform [*:a] 186BUILDLINK_TRANSFORM List of WrapperTransform [*:a]
188BUILDLINK_TREE List of Identifier [b:a] 187BUILDLINK_TREE List of Identifier [b:a]
189BUILD_DEFS List of Varname [m:a,c:a,o:a] 188BUILD_DEFS List of Varname [m:a,c:a,o:a]
190BUILD_DEPENDS InternalList of DependencyWithPath [c:a,m:a,o:a,*.mk:a] 189BUILD_DEPENDS InternalList of DependencyWithPath [c:a,m:a,o:a,*.mk:a]
191BUILD_DIRS List of WrksrcSubdirectory [$package_list] 190BUILD_DIRS List of WrksrcSubdirectory [$package_list]
192BUILD_ENV List of ShellWord [$package_list] 191BUILD_ENV List of ShellWord [$package_list]
193BUILD_MAKE_CMD ShellCommand [$system] 192BUILD_MAKE_CMD ShellCommand [$system]
194BUILD_MAKE_FLAGS List of ShellWord [$package_list] 193BUILD_MAKE_FLAGS List of ShellWord [$package_list]
195BUILD_TARGET List of Identifier [$package] 194BUILD_TARGET List of Identifier [$package]
196BUILD_USES_MSGFMT Yes [$package] 195BUILD_USES_MSGFMT Yes [$package]
197BUILTIN_PKG Identifier [builtin.mk:psu] 196BUILTIN_PKG Identifier [builtin.mk:psu]
198BUILTIN_PKG.* PkgName [builtin.mk:psu] 197BUILTIN_PKG.* PkgName [builtin.mk:psu]
199BUILTIN_FIND_FILES_VAR List of Varname [builtin.mk:s] 198BUILTIN_FIND_FILES_VAR List of Varname [builtin.mk:s]
200BUILTIN_FIND_FILES.* List of Pathname [builtin.mk:s] 199BUILTIN_FIND_FILES.* List of Pathname [builtin.mk:s]
201BUILTIN_FIND_GREP.* String [builtin.mk:s] 200BUILTIN_FIND_GREP.* String [builtin.mk:s]
202BUILTIN_FIND_LIBS List of Pathname [builtin.mk:s] 201BUILTIN_FIND_LIBS List of Pathname [builtin.mk:s]
203BUILTIN_IMAKE_CHECK List of Unchecked [builtin.mk:s] 202BUILTIN_IMAKE_CHECK List of Unchecked [builtin.mk:s]
204BUILTIN_IMAKE_CHECK.* YesNo [] 203BUILTIN_IMAKE_CHECK.* YesNo []
205BUILTIN_X11_TYPE Unchecked [$system] 204BUILTIN_X11_TYPE Unchecked [$system]
206BUILTIN_X11_VERSION Unchecked [$system] 205BUILTIN_X11_VERSION Unchecked [$system]
207CATEGORIES List of Category [m:as,c:ads] 206CATEGORIES List of Category [m:as,c:ads]
208CC_VERSION Message [$system] 207CC_VERSION Message [$system]
209CC ShellCommand [$system] 208CC ShellCommand [$system]
210CFLAGS* List of CFlag [$package_list] 209CFLAGS* List of CFlag [$package_list]
211# ^^ may also be changed by the user 210# ^^ may also be changed by the user
212CHECK_BUILTIN YesNo [builtin.mk:d,m:s] 211CHECK_BUILTIN YesNo [builtin.mk:d,m:s]
213CHECK_FILES_SKIP List of Pathmask [m:a,c:a] 212CHECK_FILES_SKIP List of Pathmask [m:a,c:a]
214CHECK_FILES_SUPPORTED YesNo [$package] 213CHECK_FILES_SUPPORTED YesNo [$package]
215CHECK_HEADERS YesNo [$user] 214CHECK_HEADERS YesNo [$user]
216CHECK_HEADERS_SKIP List of Pathmask [$package_list] 215CHECK_HEADERS_SKIP List of Pathmask [$package_list]
217CHECK_INTERPRETER YesNo [$user] 216CHECK_INTERPRETER YesNo [$user]
218CHECK_INTERPRETER_SKIP List of Pathmask [$package_list] 217CHECK_INTERPRETER_SKIP List of Pathmask [$package_list]
219CHECK_PERMS YesNo [$user] 218CHECK_PERMS YesNo [$user]
220CHECK_PERMS_SKIP List of Pathmask [$package_list] 219CHECK_PERMS_SKIP List of Pathmask [$package_list]
221#CHECK_PERMS_AUTOFIX YesNo [$package] 220#CHECK_PERMS_AUTOFIX YesNo [$package]
222# ^^ experimental 221# ^^ experimental
223CHECK_PORTABILITY YesNo [$user] 222CHECK_PORTABILITY YesNo [$user]
224CHECK_PORTABILITY_SKIP List of Pathmask [$package_list] 223CHECK_PORTABILITY_SKIP List of Pathmask [$package_list]
225CHECK_SHLIBS YesNo [m:s] 224CHECK_SHLIBS YesNo [m:s]
226CHECK_SHLIBS_SUPPORTED YesNo [m:s] 225CHECK_SHLIBS_SUPPORTED YesNo [m:s]
227CHECK_WRKREF_SKIP List of Pathmask [$package_list] 226CHECK_WRKREF_SKIP List of Pathmask [$package_list]
228CMAKE_ARG_PATH Pathname [$package] 227CMAKE_ARG_PATH Pathname [$package]
229CMAKE_ARGS List of ShellWord [$package_list] 228CMAKE_ARGS List of ShellWord [$package_list]
230COMMENT Comment [m:as,c:as] 229COMMENT Comment [m:as,c:as]
231COMPILER_RPATH_FLAG { -Wl,-rpath } [$system] 230COMPILER_RPATH_FLAG { -Wl,-rpath } [$system]
232CONFIGURE_ARGS List of ShellWord [$package_list] 231CONFIGURE_ARGS List of ShellWord [$package_list]
233CONFIGURE_DIRS List of WrksrcSubdirectory [$package_list] 232CONFIGURE_DIRS List of WrksrcSubdirectory [$package_list]
234CONFIGURE_ENV List of ShellWord [$package_list] 233CONFIGURE_ENV List of ShellWord [$package_list]
235CONFIGURE_HAS_INFODIR YesNo [$package] 234CONFIGURE_HAS_INFODIR YesNo [$package]
236CONFIGURE_HAS_MANDIR YesNo [$package] 235CONFIGURE_HAS_MANDIR YesNo [$package]
237CONFIGURE_SCRIPT Pathname [$package] 236CONFIGURE_SCRIPT Pathname [$package]
238CONFIG_GUESS_OVERRIDE List of Pathmask [m:as,c:as] 237CONFIG_GUESS_OVERRIDE List of Pathmask [m:as,c:as]
239CONFIG_STATUS_OVERRIDE List of Pathmask [m:as,c:as] 238CONFIG_STATUS_OVERRIDE List of Pathmask [m:as,c:as]
240CONFIG_SHELL Pathname [m:s,c:s] 239CONFIG_SHELL Pathname [m:s,c:s]
241CONFIG_SUB_OVERRIDE List of Pathmask [m:as,c:as] 240CONFIG_SUB_OVERRIDE List of Pathmask [m:as,c:as]
242CONFLICTS InternalList of Dependency [$package_list] 241CONFLICTS InternalList of Dependency [$package_list]
243CONF_FILES List of ShellWord [$package_list] 242CONF_FILES List of ShellWord [$package_list]
244CONF_FILES_MODE { 0644 0640 0600 0400 } [$package] 243CONF_FILES_MODE { 0644 0640 0600 0400 } [$package]
245CONF_FILES_PERMS List of ShellWord [$package_list] 244CONF_FILES_PERMS List of ShellWord [$package_list]
246COPY { -c } [$system] 245COPY { -c } [$system]
247# ^^ the flag that tells ${INSTALL} to copy a file 246# ^^ the flag that tells ${INSTALL} to copy a file
248CPP ShellCommand [$system] 247CPP ShellCommand [$system]
249CPPFLAGS* List of CFlag [$package_list] 248CPPFLAGS* List of CFlag [$package_list]
250CRYPTO Yes [m:s] 249CRYPTO Yes [m:s]
251CXX ShellCommand [$system] 250CXX ShellCommand [$system]
252CXXFLAGS* List of CFlag [$package_list] 251CXXFLAGS* List of CFlag [$package_list]
253DEINSTALL_FILE Pathname [m:s] 252DEINSTALL_FILE Pathname [m:s]
254DEINSTALL_SRC List of Pathname [m:s,c:ds] 253DEINSTALL_SRC List of Pathname [m:s,c:ds]
255DEINSTALL_TEMPLATES List of Pathname [m:as,c:ads] 254DEINSTALL_TEMPLATES List of Pathname [m:as,c:ads]
256DELAYED_ERROR_MSG ShellCommand [$system] 255DELAYED_ERROR_MSG ShellCommand [$system]
257DELAYED_WARNING_MSG ShellCommand [$system] 256DELAYED_WARNING_MSG ShellCommand [$system]
258DEPENDS InternalList of DependencyWithPath [$package_list] 257DEPENDS InternalList of DependencyWithPath [$package_list]
259DEPENDS_TARGET List of Identifier [$user] 258DEPENDS_TARGET List of Identifier [$user]
260DESCR_SRC List of Pathname [m:s,c:ds] 259DESCR_SRC List of Pathname [m:s,c:ds]
261DESTDIR Pathname [$system] 260DESTDIR Pathname [$system]
262DEVOSSAUDIO Pathname [$system] 261DEVOSSAUDIO Pathname [$system]
263DEVOSSSOUND Pathname [$system] 262DEVOSSSOUND Pathname [$system]
264DISTFILES List of Filename [$package_list] 263DISTFILES List of Filename [$package_list]
265DISTINFO_FILE RelativePkgPath [$package] 264DISTINFO_FILE RelativePkgPath [$package]
266DISTNAME Filename [$package] 265DISTNAME Filename [$package]
267DIST_SUBDIR Pathname [$package] 266DIST_SUBDIR Pathname [$package]
268DJB_BUILD_ARGS List of ShellWord 267DJB_BUILD_ARGS List of ShellWord
269DJB_BUILD_TARGETS List of Identifier 268DJB_BUILD_TARGETS List of Identifier
270DJB_CONFIG_CMDS List of ShellWord [o:s] 269DJB_CONFIG_CMDS List of ShellWord [o:s]
271# ^^ ShellCommand, terminated by a semicolon 270# ^^ ShellCommand, terminated by a semicolon
272DJB_CONFIG_DIRS List of WrksrcSubdirectory 271DJB_CONFIG_DIRS List of WrksrcSubdirectory
273DJB_CONFIG_HOME Filename 272DJB_CONFIG_HOME Filename
274DJB_CONFIG_PREFIX Pathname 273DJB_CONFIG_PREFIX Pathname
275DJB_INSTALL_TARGETS List of Identifier 274DJB_INSTALL_TARGETS List of Identifier
276DJB_MAKE_TARGETS YesNo 275DJB_MAKE_TARGETS YesNo
277DJB_RESTRICTED YesNo [m:s] 276DJB_RESTRICTED YesNo [m:s]
278DJB_SLASHPACKAGE YesNo 277DJB_SLASHPACKAGE YesNo
279DLOPEN_REQUIRE_PTHREADS YesNo 278DLOPEN_REQUIRE_PTHREADS YesNo
280DL_AUTO_VARS Yes [m:s,c:s,o:s] 279DL_AUTO_VARS Yes [m:s,c:s,o:s]
281DL_LIBS List of LdFlag 280DL_LIBS List of LdFlag
282DOCOWN UserGroupName [$system] 281DOCOWN UserGroupName [$system]
283DOCGRP UserGroupName [$system] 282DOCGRP UserGroupName [$system]
284DOCMODE FileMode [$system] 283DOCMODE FileMode [$system]
285DOWNLOADED_DISTFILE Pathname [$system] 284DOWNLOADED_DISTFILE Pathname [$system]
286DO_NADA ShellCommand [$system] 285DO_NADA ShellCommand [$system]
287DYNAMIC_SITES_CMD ShellCommand [$package] 286DYNAMIC_SITES_CMD ShellCommand [$package]
288DYNAMIC_SITES_SCRIPT Pathname [$package] 287DYNAMIC_SITES_SCRIPT Pathname [$package]
289ECHO ShellCommand [$system] 288ECHO ShellCommand [$system]
290ECHO_MSG ShellCommand [$system] 289ECHO_MSG ShellCommand [$system]
291ECHO_N ShellCommand [$system] 290ECHO_N ShellCommand [$system]
292EGDIR Pathname [$package] 291EGDIR Pathname [$package]
293# ^^ This variable is not defined by the system, but has been established 292# ^^ This variable is not defined by the system, but has been established
294# as a convention. 293# as a convention.
295EMACS_BIN Pathname [$system] 294EMACS_BIN Pathname [$system]
296EMACS_ETCPREFIX Pathname [$system] 295EMACS_ETCPREFIX Pathname [$system]
297EMACS_FLAVOR { emacs xemacs } [$system] 296EMACS_FLAVOR { emacs xemacs } [$system]
298EMACS_INFOPREFIX Pathname [$system] 297EMACS_INFOPREFIX Pathname [$system]
299EMACS_LISPPREFIX Pathname [$system] 298EMACS_LISPPREFIX Pathname [$system]
300EMACS_MODULES List of Identifier [m:as,c:as] 299EMACS_MODULES List of Identifier [m:as,c:as]
301EMACS_PKGNAME_PREFIX Identifier [$system] 300EMACS_PKGNAME_PREFIX Identifier [$system]
302# ^^ or the empty string. 301# ^^ or the empty string.
303EMACS_TYPE { emacs xemacs } [$system] 302EMACS_TYPE { emacs xemacs } [$system]
304EMACS_USE_LEIM Yes 303EMACS_USE_LEIM Yes
305EMACS_VERSIONS_ACCEPTED List of { emacs22 emacs22nox emacs21 emacs21nox emacs20 xemacs215 xemacs214 } [m:s] 304EMACS_VERSIONS_ACCEPTED List of { emacs22 emacs22nox emacs21 emacs21nox emacs20 xemacs215 xemacs214 } [m:s]
306EMACS_VERSION_MAJOR Integer [$system] 305EMACS_VERSION_MAJOR Integer [$system]
307EMACS_VERSION_MINOR Integer [$system] 306EMACS_VERSION_MINOR Integer [$system]
308EMACS_VERSION_REQD List of { emacs22 emacs22nox emacs21 emacs21nox emacs20 xemacs215 xemacs214 } [m:as] 307EMACS_VERSION_REQD List of { emacs22 emacs22nox emacs21 emacs21nox emacs20 xemacs215 xemacs214 } [m:as]
309EMULDIR Pathname [$system] 308EMULDIR Pathname [$system]
310EMULSUBDIR Pathname [$system] 309EMULSUBDIR Pathname [$system]
311OPSYS_EMULDIR Pathname [$system] 310OPSYS_EMULDIR Pathname [$system]
312EMULSUBDIRSLASH Pathname [$system] 311EMULSUBDIRSLASH Pathname [$system]
313EMUL_ARCH { i386 none } [$system] 312EMUL_ARCH { i386 none } [$system]
314EMUL_DISTRO Identifier [$system] 313EMUL_DISTRO Identifier [$system]
315EMUL_IS_NATIVE Yes [$system] 314EMUL_IS_NATIVE Yes [$system]
316EMUL_MODULES.* List of Identifier [$package] 315EMUL_MODULES.* List of Identifier [$package]
317EMUL_OPSYS { linux } [$system] 316EMUL_OPSYS { linux } [$system]
318EMUL_PKG_FMT { plain rpm } [$package] 317EMUL_PKG_FMT { plain rpm } [$package]
319EMUL_PLATFORM EmulPlatform [$user] 318EMUL_PLATFORM EmulPlatform [$user]
320EMUL_PLATFORMS List of EmulPlatform [$package] 319EMUL_PLATFORMS List of EmulPlatform [$package]
321EMUL_PREFER List of EmulPlatform [$user] 320EMUL_PREFER List of EmulPlatform [$user]
322EMUL_REQD InternalList of Dependency [$package] 321EMUL_REQD InternalList of Dependency [$package]
323EMUL_TYPE.* { native builtin suse suse-9.1 suse-9.x suse-10.0 suse-10.x } [$user] 322EMUL_TYPE.* { native builtin suse suse-9.1 suse-9.x suse-10.0 suse-10.x } [$user]
324ERROR_CAT ShellCommand [$system] 323ERROR_CAT ShellCommand [$system]
325ERROR_MSG ShellCommand [$system] 324ERROR_MSG ShellCommand [$system]
326EVAL_PREFIX InternalList of ShellWord [m:a,c:a] 325EVAL_PREFIX InternalList of ShellWord [m:a,c:a]
327# ^^ FIXME: Looks like a type mismatch. 326# ^^ FIXME: Looks like a type mismatch.
328EXPORT_SYMBOLS_LDFLAGS List of LdFlag [$system] 327EXPORT_SYMBOLS_LDFLAGS List of LdFlag [$system]
329EXTRACT_CMD ShellCommand [$system] 328EXTRACT_CMD ShellCommand [$system]
330EXTRACT_ELEMENTS List of Pathmask [$package_list] 329EXTRACT_ELEMENTS List of Pathmask [$package_list]
331EXTRACT_ONLY List of Pathname [$package_list] 330EXTRACT_ONLY List of Pathname [$package_list]
332EXTRACT_OPTS List of ShellWord [m:as,c:as] 331EXTRACT_OPTS List of ShellWord [m:as,c:as]
333EXTRACT_OPTS_BIN List of ShellWord [m:as,c:as] 332EXTRACT_OPTS_BIN List of ShellWord [m:as,c:as]
334EXTRACT_OPTS_LHA List of ShellWord [m:as,c:as] 333EXTRACT_OPTS_LHA List of ShellWord [m:as,c:as]
335EXTRACT_OPTS_PAX List of ShellWord [m:as,c:as] 334EXTRACT_OPTS_PAX List of ShellWord [m:as,c:as]
336EXTRACT_OPTS_RAR List of ShellWord [m:as,c:as] 335EXTRACT_OPTS_RAR List of ShellWord [m:as,c:as]
337EXTRACT_OPTS_TAR List of ShellWord [m:as,c:as] 336EXTRACT_OPTS_TAR List of ShellWord [m:as,c:as]
338EXTRACT_OPTS_ZIP List of ShellWord [m:as,c:as] 337EXTRACT_OPTS_ZIP List of ShellWord [m:as,c:as]
339EXTRACT_OPTS_ZOO List of ShellWord [m:as,c:as] 338EXTRACT_OPTS_ZOO List of ShellWord [m:as,c:as]
340EXTRACT_SUFX DistSuffix [$package] 339EXTRACT_SUFX DistSuffix [$package]
341EXTRACT_USING { bsdtar gtar nbtar pax } [$package] 340EXTRACT_USING { bsdtar gtar nbtar pax } [$package]
342FAIL_MSG ShellCommand [$system] 341FAIL_MSG ShellCommand [$system]
343FAMBASE Pathname [$system] 342FAMBASE Pathname [$system]
344FAM_ACCEPTED List of { fam gamin } [$package] 343FAM_ACCEPTED List of { fam gamin } [$package]
345FAM_DEFAULT { fam gamin } [$user] 344FAM_DEFAULT { fam gamin } [$user]
346FAM_TYPE { fam gamin } [$system] 345FAM_TYPE { fam gamin } [$system]
347FETCH_BEFORE_ARGS List of ShellWord [m:as] 346FETCH_BEFORE_ARGS List of ShellWord [m:as]
348FETCH_MESSAGE List of ShellWord [$package_list] 347FETCH_MESSAGE List of ShellWord [$package_list]
349FILESDIR RelativePkgPath [$package] 348FILESDIR RelativePkgPath [$package]
350FILES_SUBST List of ShellWord [$package_list] 349FILES_SUBST List of ShellWord [$package_list]
351FILES_SUBST_SED List of ShellWord 350FILES_SUBST_SED List of ShellWord
352FIX_RPATH List of Varname [$package_list] 351FIX_RPATH List of Varname [$package_list]
353FONTS_DIRS.* List of Pathname [m:as,c:a] 352FONTS_DIRS.* List of Pathname [m:as,c:a]
354GAMEDATAMODE FileMode [$system] 353GAMEDATAMODE FileMode [$system]
355GAMEGRP UserGroupName [$system] 354GAMEGRP UserGroupName [$system]
356GAMEMODE FileMode [$system] 355GAMEMODE FileMode [$system]
357GAMEOWN UserGroupName [$system] 356GAMEOWN UserGroupName [$system]
358GCC_REQD List of Version [$package_list] 357GCC_REQD List of Version [$package_list]
359GENERATE_PLIST List of ShellWord [$package_list] 358GENERATE_PLIST List of ShellWord [$package_list]
360# ^^ List of Shellcommand, terminated with a semicolon 359# ^^ List of Shellcommand, terminated with a semicolon
361GNU_ARCH { mips } 360GNU_ARCH { mips }
362GNU_CONFIGURE Yes [c:s,m:s] 361GNU_CONFIGURE Yes [c:s,m:s]
363GNU_CONFIGURE_MANDIR Pathname [m:s,c:s] 362GNU_CONFIGURE_MANDIR Pathname [m:s,c:s]
364GNU_CONFIGURE_PREFIX Pathname [m:s] 363GNU_CONFIGURE_PREFIX Pathname [m:s]
365GNU_PROGRAM_PREFIX Identifier [$user] 364GNU_PROGRAM_PREFIX Identifier [$user]
366HAS_CONFIGURE Yes [m:s,c:s] 365HAS_CONFIGURE Yes [m:s,c:s]
367HEADER_TEMPLATES List of Pathname [$package_list] 366HEADER_TEMPLATES List of Pathname [$package_list]
368HOMEPAGE URL [$package] 367HOMEPAGE URL [$package]
369INCOMPAT_CURSES InternalList of PlatformTriple [m:as] 368INCOMPAT_CURSES InternalList of PlatformTriple [m:as]
370INCOMPAT_ICONV InternalList of PlatformTriple 369INCOMPAT_ICONV InternalList of PlatformTriple
371INFO_DIR Pathname 370INFO_DIR Pathname
372# ^^ relative to PREFIX 371# ^^ relative to PREFIX
373INFO_FILES Yes [$package] 372INFO_FILES Yes [$package]
374INSTALL ShellCommand [$system] 373INSTALL ShellCommand [$system]
375INSTALLATION_DIRS List of PrefixPathname [$package_list] 374INSTALLATION_DIRS List of PrefixPathname [$package_list]
376INSTALLATION_DIRS_FROM_PLIST Yes [$package] 375INSTALLATION_DIRS_FROM_PLIST Yes [$package]
377INSTALL_DATA ShellCommand [$system] 376INSTALL_DATA ShellCommand [$system]
378INSTALL_DATA_DIR ShellCommand [$system] 377INSTALL_DATA_DIR ShellCommand [$system]
379INSTALL_DIRS List of WrksrcSubdirectory [$package_list] 378INSTALL_DIRS List of WrksrcSubdirectory [$package_list]
380INSTALL_ENV List of ShellWord [$package_list] 379INSTALL_ENV List of ShellWord [$package_list]
381INSTALL_FILE Pathname [m:s] 380INSTALL_FILE Pathname [m:s]
382INSTALL_GAME ShellCommand [$system] 381INSTALL_GAME ShellCommand [$system]
383INSTALL_GAME_DATA ShellCommand [$system] 382INSTALL_GAME_DATA ShellCommand [$system]
384INSTALL_LIB ShellCommand [$system] 383INSTALL_LIB ShellCommand [$system]
385INSTALL_LIB_DIR ShellCommand [$system] 384INSTALL_LIB_DIR ShellCommand [$system]
386INSTALL_MAKE_FLAGS List of ShellWord [$package_list] 385INSTALL_MAKE_FLAGS List of ShellWord [$package_list]
387INSTALL_MAN ShellCommand [$system] 386INSTALL_MAN ShellCommand [$system]
388INSTALL_MAN_DIR ShellCommand [$system] 387INSTALL_MAN_DIR ShellCommand [$system]
389INSTALL_PROGRAM ShellCommand [$system] 388INSTALL_PROGRAM ShellCommand [$system]
390INSTALL_PROGRAM_DIR ShellCommand [$system] 389INSTALL_PROGRAM_DIR ShellCommand [$system]
391INSTALL_SCRIPT ShellCommand [$system] 390INSTALL_SCRIPT ShellCommand [$system]
392INSTALL_SCRIPTS_ENV List of ShellWord 391INSTALL_SCRIPTS_ENV List of ShellWord
393INSTALL_SCRIPT_DIR ShellCommand [$system] 392INSTALL_SCRIPT_DIR ShellCommand [$system]
394INSTALL_SRC List of Pathname [m:s,c:ds] 393INSTALL_SRC List of Pathname [m:s,c:ds]
395INSTALL_TARGET List of Identifier [$package] 394INSTALL_TARGET List of Identifier [$package]
396INSTALL_TEMPLATES List of Pathname [m:as,c:ads] 395INSTALL_TEMPLATES List of Pathname [m:as,c:ads]
397INSTALL_UNSTRIPPED YesNo [m:s,c:s] 396INSTALL_UNSTRIPPED YesNo [m:s,c:s]
398INTERACTIVE_STAGE List of { fetch extract configure build install } [$package] 397INTERACTIVE_STAGE List of { fetch extract configure build install } [$package]
399IS_BUILTIN.* YesNo_Indirectly [builtin.mk:psu] 398IS_BUILTIN.* YesNo_Indirectly [builtin.mk:psu]
400JAVA_BINPREFIX Pathname [$system] 399JAVA_BINPREFIX Pathname [$system]
401JAVA_CLASSPATH ShellWord [$package] 400JAVA_CLASSPATH ShellWord [$package]
402JAVA_HOME Pathname [$package] 401JAVA_HOME Pathname [$package]
403JAVA_NAME Filename [$package] 402JAVA_NAME Filename [$package]
404JAVA_UNLIMIT List of { cmdsize datasize stacksize } [$package_list] 403JAVA_UNLIMIT List of { cmdsize datasize stacksize } [$package_list]
405JAVA_WRAPPERS InternalList of Filename [$package_list] 404JAVA_WRAPPERS InternalList of Filename [$package_list]
406JAVA_WRAPPER_BIN.* Pathname [$package] 405JAVA_WRAPPER_BIN.* Pathname [$package]
407KRB5BASE Pathname [$system] 406KRB5BASE Pathname [$system]
408KRB5_ACCEPTED List of { heimdal mit-krb5 } 407KRB5_ACCEPTED List of { heimdal mit-krb5 }
409KRB5_DEFAULT { heimdal mit-krb5 } [$user] 408KRB5_DEFAULT { heimdal mit-krb5 } [$user]
410KRB5_TYPE Unchecked [$system] 409KRB5_TYPE Unchecked [$system]
411LD ShellCommand [$system] 410LD ShellCommand [$system]
412LDFLAGS* List of LdFlag [$package_list] 411LDFLAGS* List of LdFlag [$package_list]
413LIBGRP UserGroupName [$system] 412LIBGRP UserGroupName [$system]
414LIBMODE FileMode [$system] 413LIBMODE FileMode [$system]
415LIBOWN UserGroupName [$system] 414LIBOWN UserGroupName [$system]
416LIBOSSAUDIO Pathname [$system] 415LIBOSSAUDIO Pathname [$system]
417LIBS* List of LdFlag [$package_list] 416LIBS* List of LdFlag [$package_list]
418LIBTOOL ShellCommand [$system] 417LIBTOOL ShellCommand [$system]
419LIBTOOL_OVERRIDE List of Pathmask [m:as] 418LIBTOOL_OVERRIDE List of Pathmask [m:as]
420LICENCE License [m:s,c:s,o:s] 419LICENCE License [m:s,c:s,o:s]
421LICENSE License [m:s,c:s,o:s] 420LICENSE License [m:s,c:s,o:s]
422LICENSE_FILE Pathname [$package] 421LICENSE_FILE Pathname [$package]
423LINKER_RPATH_FLAG ShellWord [$system] 422LINKER_RPATH_FLAG ShellWord [$system]
424LOWER_OPSYS Identifier [$system] 423LOWER_OPSYS Identifier [$system]
425LTCONFIG_OVERRIDE List of Pathmask [m:as,c:a] 424LTCONFIG_OVERRIDE List of Pathmask [m:as,c:a]
426MACHINE_ARCH Identifier [$system] 425MACHINE_ARCH Identifier [$system]
427MACHINE_GNU_PLATFORM PlatformTriple [$system] 426MACHINE_GNU_PLATFORM PlatformTriple [$system]
428MAINTAINER Mail_Address [m:s,c:d] 427MAINTAINER Mail_Address [m:s,c:d]
429MAKE ShellCommand [$system] 428MAKE ShellCommand [$system]
430MAKEFLAGS List of ShellWord [$package_list] 429MAKEFLAGS List of ShellWord [$package_list]
431MAKEVARS List of Varname [builtin.mk:a,b:a,h:a] 430MAKEVARS List of Varname [builtin.mk:a,b:a,h:a]
432MAKE_DIRS List of Pathname [$package_list] 431MAKE_DIRS List of Pathname [$package_list]
433MAKE_DIRS_PERMS List of ShellWord [$package_list] 432MAKE_DIRS_PERMS List of ShellWord [$package_list]
434MAKE_ENV List of ShellWord [$package_list] 433MAKE_ENV List of ShellWord [$package_list]
435MAKE_FILE Pathname [$package] 434MAKE_FILE Pathname [$package]
436MAKE_FLAGS List of ShellWord [$package_list] 435MAKE_FLAGS List of ShellWord [$package_list]
437MAKE_JOBS Integer [$user] 436MAKE_JOBS Integer [$user]
438MAKE_JOBS_SAFE YesNo [$package] 437MAKE_JOBS_SAFE YesNo [$package]
439MAKE_PROGRAM ShellCommand [$system] 438MAKE_PROGRAM ShellCommand [$system]
440MANCOMPRESSED YesNo [m:s,c:ds] 439MANCOMPRESSED YesNo [m:s,c:ds]
441MANCOMPRESSED_IF_MANZ Yes [m:s,c:ds] 440MANCOMPRESSED_IF_MANZ Yes [m:s,c:ds]
442MANGRP UserGroupName [$system] 441MANGRP UserGroupName [$system]
443MANMODE FileMode [$system] 442MANMODE FileMode [$system]
444MANOWN UserGroupName [$system] 443MANOWN UserGroupName [$system]
445MASTER_SITES List of URL [$package_list] 444MASTER_SITES List of URL [$package_list]
446MASTER_SITE_APACHE List of URL [$system] 445MASTER_SITE_APACHE List of URL [$system]
447MASTER_SITE_BACKUP List of URL [$system] 446MASTER_SITE_BACKUP List of URL [$system]
448MASTER_SITE_CYGWIN List of URL [$system] 447MASTER_SITE_CYGWIN List of URL [$system]
449MASTER_SITE_DEBIAN List of URL [$system] 448MASTER_SITE_DEBIAN List of URL [$system]
450MASTER_SITE_FREEBSD List of URL [$system] 449MASTER_SITE_FREEBSD List of URL [$system]
451MASTER_SITE_FREEBSD_LOCAL List of URL [$system] 450MASTER_SITE_FREEBSD_LOCAL List of URL [$system]
452MASTER_SITE_GENTOO List of URL [$system] 451MASTER_SITE_GENTOO List of URL [$system]
453MASTER_SITE_GNOME List of URL [$system] 452MASTER_SITE_GNOME List of URL [$system]
454MASTER_SITE_GNU List of URL [$system] 453MASTER_SITE_GNU List of URL [$system]
455MASTER_SITE_GNUSTEP List of URL [$system] 454MASTER_SITE_GNUSTEP List of URL [$system]
456MASTER_SITE_IFARCHIVE List of URL [$system] 455MASTER_SITE_IFARCHIVE List of URL [$system]
457MASTER_SITE_KDE List of URL [$system] 456MASTER_SITE_KDE List of URL [$system]
458MASTER_SITE_LOCAL List of URL [$system] 457MASTER_SITE_LOCAL List of URL [$system]
459MASTER_SITE_MOZILLA List of URL [$system] 458MASTER_SITE_MOZILLA List of URL [$system]
460MASTER_SITE_MYSQL List of URL [$system] 459MASTER_SITE_MYSQL List of URL [$system]
461MASTER_SITE_OPENOFFICE List of URL [$system] 460MASTER_SITE_OPENOFFICE List of URL [$system]
462MASTER_SITE_PERL_CPAN List of URL [$system] 461MASTER_SITE_PERL_CPAN List of URL [$system]
463MASTER_SITE_R_CRAN List of URL [$system] 462MASTER_SITE_R_CRAN List of URL [$system]
464MASTER_SITE_SOURCEFORGE List of URL [$system] 463MASTER_SITE_SOURCEFORGE List of URL [$system]
465MASTER_SITE_SOURCEFORGE_JP List of URL [$system] 464MASTER_SITE_SOURCEFORGE_JP List of URL [$system]
466MASTER_SITE_SUNSITE List of URL [$system] 465MASTER_SITE_SUNSITE List of URL [$system]
467MASTER_SITE_SUSE List of URL [$system] 466MASTER_SITE_SUSE List of URL [$system]
468MASTER_SITE_TEX_CTAN List of URL [$system] 467MASTER_SITE_TEX_CTAN List of URL [$system]
469MASTER_SITE_XCONTRIB List of URL [$system] 468MASTER_SITE_XCONTRIB List of URL [$system]
470MASTER_SITE_XEMACS List of URL [$system] 469MASTER_SITE_XEMACS List of URL [$system]
471MESSAGE_SRC List of Pathname [$package_list] 470MESSAGE_SRC List of Pathname [$package_list]
472MESSAGE_SUBST List of ShellWord [c:a,m:a,o:a] 471MESSAGE_SUBST List of ShellWord [c:a,m:a,o:a]
473META_PACKAGE Yes [$package] 472META_PACKAGE Yes [$package]
474MISSING_FEATURES List of Identifier [$system] 473MISSING_FEATURES List of Identifier [$system]
475MYSQL_VERSIONS_ACCEPTED List of { 40 41 50 } [m:s] 474MYSQL_VERSIONS_ACCEPTED List of { 40 41 50 } [m:s]
476MYSQL_VERSION_DEFAULT Version [$user] 475MYSQL_VERSION_DEFAULT Version [$user]
477NM ShellCommand [$system] 476NM ShellCommand [$system]
478NONBINMODE FileMode [$system] 477NONBINMODE FileMode [$system]
479NOT_FOR_COMPILER List of { ccc gcc icc ido mipspro mipspro-ucode sunpro xlc } [$package] 478NOT_FOR_COMPILER List of { ccc gcc icc ido mipspro mipspro-ucode sunpro xlc } [$package]
480NOT_FOR_PLATFORM InternalList of PlatformTriple [$package_list] 479NOT_FOR_PLATFORM InternalList of PlatformTriple [$package_list]
481NOT_FOR_UNPRIVILEGED YesNo [$package] 480NOT_FOR_UNPRIVILEGED YesNo [$package]
482NO_BIN_ON_CDROM Restricted [m:s,c:s] 481NO_BIN_ON_CDROM Restricted [m:s,c:s]
483NO_BIN_ON_FTP Restricted [m:s,c:s] 482NO_BIN_ON_FTP Restricted [m:s,c:s]
484NO_BUILD Yes [m:s,c:s,Makefile.*:ds] 483NO_BUILD Yes [m:s,c:s,Makefile.*:ds]
485NO_CHECKSUM Yes [$package] 484NO_CHECKSUM Yes [$package]
486NO_CONFIGURE Yes [$package] 485NO_CONFIGURE Yes [$package]
487NO_EXPORT_CPP Yes [m:s] 486NO_EXPORT_CPP Yes [m:s]
488NO_EXTRACT Yes [$package] 487NO_EXTRACT Yes [$package]
489NO_INSTALL_MANPAGES Yes [$package] 488NO_INSTALL_MANPAGES Yes [$package]
490# ^^ only has an effect for Imake packages. 489# ^^ only has an effect for Imake packages.
491NO_PKGTOOLS_REQD_CHECK Yes [m:s] 490NO_PKGTOOLS_REQD_CHECK Yes [m:s]
492NO_SRC_ON_CDROM Restricted [m:s,c:s] 491NO_SRC_ON_CDROM Restricted [m:s,c:s]
493NO_SRC_ON_FTP Restricted [m:s,c:s] 492NO_SRC_ON_FTP Restricted [m:s,c:s]
494ONLY_FOR_COMPILER List of { ccc gcc icc ido mipspro mipspro-ucode sunpro xlc } [$package_list] 493ONLY_FOR_COMPILER List of { ccc gcc icc ido mipspro mipspro-ucode sunpro xlc } [$package_list]
495ONLY_FOR_PLATFORM InternalList of PlatformTriple [$package_list] 494ONLY_FOR_PLATFORM InternalList of PlatformTriple [$package_list]
496ONLY_FOR_UNPRIVILEGED YesNo [$package] 495ONLY_FOR_UNPRIVILEGED YesNo [$package]
497OPSYS Identifier [$system] 496OPSYS Identifier [$system]
498OPSYSVARS List of Varname [m:a,c:a] 497OPSYSVARS List of Varname [m:a,c:a]
499OSVERSION_SPECIFIC Yes [m:s,c:s] 498OSVERSION_SPECIFIC Yes [m:s,c:s]
500OS_VERSION Version [$system] 499OS_VERSION Version [$system]
501OVERRIDE_DIRDEPTH* Integer [$package] 500OVERRIDE_DIRDEPTH* Integer [$package]
502OVERRIDE_GNU_CONFIG_SCRIPTS Yes [$package] 501OVERRIDE_GNU_CONFIG_SCRIPTS Yes [$package]
503OWNER Mail_Address [m:s,c:d] 502OWNER Mail_Address [m:s,c:d]
504OWN_DIRS List of Pathname [$package_list] 503OWN_DIRS List of Pathname [$package_list]
505OWN_DIRS_PERMS List of ShellWord [$package_list] 504OWN_DIRS_PERMS List of ShellWord [$package_list]
506PAMBASE Pathname [$system] 505PAMBASE Pathname [$system]
507PAM_ACCEPTED List of { linux-pam openpam solaris-pam } 506PAM_ACCEPTED List of { linux-pam openpam solaris-pam }
508PAM_DEFAULT { linux-pam openpam solaris-pam } [$user] 507PAM_DEFAULT { linux-pam openpam solaris-pam } [$user]
509PAM_TYPE { linux-pam openpam solaris-pam } [$system] 508PAM_TYPE { linux-pam openpam solaris-pam } [$system]
510PATCHDIR RelativePkgPath [m:s,c:ds] 509PATCHDIR RelativePkgPath [m:s,c:ds]
511PATCHFILES List of Filename [$package_list] 510PATCHFILES List of Filename [$package_list]
512PATCH_ARGS List of ShellWord 511PATCH_ARGS List of ShellWord
513PATCH_DIST_ARGS List of ShellWord [m:as] 512PATCH_DIST_ARGS List of ShellWord [m:as]
514PATCH_DIST_CAT ShellCommand 513PATCH_DIST_CAT ShellCommand
515PATCH_DIST_STRIP* ShellWord [m:s, c:s, b:, builtin.mk:, *.mk:s] 514PATCH_DIST_STRIP* ShellWord [m:s, c:s, b:, builtin.mk:, *.mk:s]
516PATCH_SITES List of URL [m:s,o:s,c:s] 515PATCH_SITES List of URL [m:s,o:s,c:s]
517PATCH_STRIP ShellWord 516PATCH_STRIP ShellWord
518PERL5_USE_PACKLIST YesNo [$package] 517PERL5_USE_PACKLIST YesNo [$package]
519PERL5_PACKLIST List of Perl5Packlist [m:s,o:sa] 518PERL5_PACKLIST List of Perl5Packlist [m:s,o:sa]
520PERL5_PACKLIST_DIR Pathname [] 519PERL5_PACKLIST_DIR Pathname []
521PGSQL_PREFIX Pathname [$system] 520PGSQL_PREFIX Pathname [$system]
522PGSQL_VERSIONS_ACCEPTED List of { 73 74 80 } 521PGSQL_VERSIONS_ACCEPTED List of { 73 74 80 }
523PGSQL_VERSION_DEFAULT Version [$user] 522PGSQL_VERSION_DEFAULT Version [$user]
524PG_LIB_EXT { dylib so } [$system] 523PG_LIB_EXT { dylib so } [$system]
525PGSQL_TYPE { postgresql81-client postgresql80-client } [$system] 524PGSQL_TYPE { postgresql81-client postgresql80-client } [$system]
526PGPKGSRCDIR Pathname [$system] 525PGPKGSRCDIR Pathname [$system]
527PHASE_MSG ShellCommand [$system] 526PHASE_MSG ShellCommand [$system]
528PKGBASE Identifier [$system] 527PKGBASE Identifier [$system]
529PKGCONFIG_OVERRIDE List of Pathmask [m:as,c:a] 528PKGCONFIG_OVERRIDE List of Pathmask [m:as,c:a]
530PKGDIR RelativePkgDir [$package] 529PKGDIR RelativePkgDir [$package]
531PKGDIRMODE FileMode [$system] 530PKGDIRMODE FileMode [$system]
532PKGLOCALEDIR Pathname [$system] 531PKGLOCALEDIR Pathname [$system]
533PKGNAME PkgName [$package] 532PKGNAME PkgName [$package]
534PKGNAME_NOREV PkgName [$system] 533PKGNAME_NOREV PkgName [$system]
535PKGPATH Pathname [$system] 534PKGPATH Pathname [$system]
536PKGREPOSITORY Unchecked [] 535PKGREPOSITORY Unchecked []
537PKGREVISION PkgRevision [m:s] 536PKGREVISION PkgRevision [m:s]
538PKGSRCDIR Pathname [$system] 537PKGSRCDIR Pathname [$system]
539PKGTOOLS_ENV List of ShellWord 538PKGTOOLS_ENV List of ShellWord
540PKGVERSION Version [$system] 539PKGVERSION Version [$system]
541PKGWILDCARD Filemask [$system] 540PKGWILDCARD Filemask [$system]
542PKG_ADMIN ShellCommand [$system] 541PKG_ADMIN ShellCommand [$system]
543PKG_APACHE { apache13 apache2 apache22 } [$system] 542PKG_APACHE { apache13 apache2 apache22 } [$system]
544PKG_APACHE_ACCEPTED List of { apache13 apache2 apache22 } 543PKG_APACHE_ACCEPTED List of { apache13 apache2 apache22 }
545PKG_APACHE_DEFAULT { apache13 apache2 apache22 } [$user] 544PKG_APACHE_DEFAULT { apache13 apache2 apache22 } [$user]
546PKG_CONFIG Yes [$user] 545PKG_CONFIG Yes [$user]
547# ^^ No, this is not the popular command from GNOME, but the setting 546# ^^ No, this is not the popular command from GNOME, but the setting
548# whether the pkgsrc user wants configuration files automatically 547# whether the pkgsrc user wants configuration files automatically
549# installed or not. 548# installed or not.
550PKG_CREATE ShellCommand [$system] 549PKG_CREATE ShellCommand [$system]
551PKG_DBDIR Pathname [$system] 550PKG_DBDIR Pathname [$system]
552PKG_DEBUG_LEVEL Integer [$cmdline] 551PKG_DEBUG_LEVEL Integer [$cmdline]
553PKG_DEFAULT_OPTIONS List of Option [$user] 552PKG_DEFAULT_OPTIONS List of Option [$user]
554PKG_DELETE ShellCommand [$system] 553PKG_DELETE ShellCommand [$system]
555PKG_DESTDIR_SUPPORT List of { destdir user-destdir } [m:s,c:s] 554PKG_DESTDIR_SUPPORT List of { destdir user-destdir } [m:s,c:s]
556PKG_FAIL_REASON List of ShellWord [$package_list] 555PKG_FAIL_REASON List of ShellWord [$package_list]
557PKG_GECOS.* Message [m:s] 556PKG_GECOS.* Message [m:s]
558PKG_GID.* Integer [m:s] 557PKG_GID.* Integer [m:s]
559PKG_GROUPS List of ShellWord [m:as] 558PKG_GROUPS List of ShellWord [m:as]
560PKG_GROUPS_VARS List of Varname [$package_list] 559PKG_GROUPS_VARS List of Varname [$package_list]
561PKG_HOME.* Pathname [m:s] 560PKG_HOME.* Pathname [m:s]
562PKG_HACKS List of Identifier [h:a] 561PKG_HACKS List of Identifier [h:a]
563PKG_INFO ShellCommand [$system] 562PKG_INFO ShellCommand [$system]
564PKG_INSTALLATION_TYPES List of { overwrite pkgviews } [m:s,c:s] 563PKG_INSTALLATION_TYPES List of { overwrite pkgviews } [m:s,c:s]
565PKG_JAVA_HOME Pathname [$system] 564PKG_JAVA_HOME Pathname [$system]
566PKG_JVM { \ 565PKG_JVM { \
567 blackdown-jdk13 \ 566 blackdown-jdk13 \
568 jdk jdk14 \ 567 jdk jdk14 \
569 kaffe \ 568 kaffe \
570 sun-jdk13 sun-jdk14 sun-jdk15 \ 569 sun-jdk13 sun-jdk14 sun-jdk15 \
571 } [$system] 570 } [$system]
572PKG_JVMS_ACCEPTED List of { \ 571PKG_JVMS_ACCEPTED List of { \
573 blackdown-jdk13 \ 572 blackdown-jdk13 \
574 jdk jdk14 \ 573 jdk jdk14 \
575 kaffe \ 574 kaffe \
576 sun-jdk13 sun-jdk14 sun-jdk15 \ 575 sun-jdk13 sun-jdk14 sun-jdk15 \
577 } [m:s,c:ds] 576 } [m:s,c:ds]
578PKG_JVM_DEFAULT { \ 577PKG_JVM_DEFAULT { \
579 blackdown-jdk13 \ 578 blackdown-jdk13 \
580 jdk jdk14 \ 579 jdk jdk14 \
581 kaffe \ 580 kaffe \
582 sun-jdk13 sun-jdk14 sun-jdk15 \ 581 sun-jdk13 sun-jdk14 sun-jdk15 \
583 } [$user] 582 } [$user]
584PKG_LEGACY_OPTIONS List of Option 583PKG_LEGACY_OPTIONS List of Option
585PKG_LIBTOOL Pathname [m:s] 584PKG_LIBTOOL Pathname [m:s]
586PKG_OPTIONS InternalList of Option [bsd.options.mk:s,*:pu] 585PKG_OPTIONS InternalList of Option [bsd.options.mk:s,*:pu]
587PKG_OPTIONS.* InternalList of Option [$user] 586PKG_OPTIONS.* InternalList of Option [$user]
588PKG_OPTIONS_DEPRECATED_WARNINGS List of ShellWord 587PKG_OPTIONS_DEPRECATED_WARNINGS List of ShellWord
589PKG_OPTIONS_GROUP.* InternalList of Option [o:s,m:s] 588PKG_OPTIONS_GROUP.* InternalList of Option [o:s,m:s]
590PKG_OPTIONS_LEGACY_OPTS InternalList of Unchecked [m:a,c:a,o:a] 589PKG_OPTIONS_LEGACY_OPTS InternalList of Unchecked [m:a,c:a,o:a]
591PKG_OPTIONS_LEGACY_VARS InternalList of Unchecked [m:a,c:a,o:a] 590PKG_OPTIONS_LEGACY_VARS InternalList of Unchecked [m:a,c:a,o:a]
592PKG_OPTIONS_NONEMPTY_SETS InternalList of Identifier 591PKG_OPTIONS_NONEMPTY_SETS InternalList of Identifier
593PKG_OPTIONS_OPTIONAL_GROUPS InternalList of Identifier [o:as] 592PKG_OPTIONS_OPTIONAL_GROUPS InternalList of Identifier [o:as]
594PKG_OPTIONS_REQUIRED_GROUPS InternalList of Identifier [o:s,m:s] 593PKG_OPTIONS_REQUIRED_GROUPS InternalList of Identifier [o:s,m:s]
595PKG_OPTIONS_SET.* InternalList of Option 594PKG_OPTIONS_SET.* InternalList of Option
596PKG_OPTIONS_VAR PkgOptionsVar [o:s,m:s,c:s, bsd.options.mk:p] 595PKG_OPTIONS_VAR PkgOptionsVar [o:s,m:s,c:s, bsd.options.mk:p]
597PKG_PRESERVE Yes [m:s] 596PKG_PRESERVE Yes [m:s]
598PKG_SHELL Pathname [m:s,c:s] 597PKG_SHELL Pathname [m:s,c:s]
599PKG_SHELL.* Pathname [m:s,c:s] 598PKG_SHELL.* Pathname [m:s,c:s]
600PKG_SHLIBTOOL Pathname 599PKG_SHLIBTOOL Pathname
601PKG_SKIP_REASON List of ShellWord [$package_list] 600PKG_SKIP_REASON List of ShellWord [$package_list]
602PKG_SUGGESTED_OPTIONS List of Option [o:as,m:as,c:s] 601PKG_SUGGESTED_OPTIONS List of Option [o:as,m:as,c:s]
603PKG_SUPPORTED_OPTIONS List of Option [o:as,m:as,c:s] 602PKG_SUPPORTED_OPTIONS List of Option [o:as,m:as,c:s]
604PKG_SYSCONFDIR* Pathname [$package] 603PKG_SYSCONFDIR* Pathname [$package]
605PKG_SYSCONFDIR_PERMS List of ShellWord [$package_list] 604PKG_SYSCONFDIR_PERMS List of ShellWord [$package_list]
606PKG_SYSCONFBASEDIR Pathname [$system] 605PKG_SYSCONFBASEDIR Pathname [$system]
607PKG_SYSCONFSUBDIR Pathname [$package] 606PKG_SYSCONFSUBDIR Pathname [$package]
608PKG_SYSCONFVAR Identifier 607PKG_SYSCONFVAR Identifier
609# ^^ FIXME: name/type mismatch. 608# ^^ FIXME: name/type mismatch.
610PKG_UID Integer [m:s] 609PKG_UID Integer [m:s]
611PKG_USERS List of ShellWord [m:as] 610PKG_USERS List of ShellWord [m:as]
612PKG_USERS_VARS List of Varname [$package] 611PKG_USERS_VARS List of Varname [$package]
613PKG_USE_KERBEROS Yes [m:s,c:s] 612PKG_USE_KERBEROS Yes [m:s,c:s]
614#PLIST.* # has special handling code 613#PLIST.* # has special handling code
615PLIST_VARS List of Identifier [$package_list] 614PLIST_VARS List of Identifier [$package_list]
616PLIST_SRC List of RelativePkgPath [$package_list] 615PLIST_SRC List of RelativePkgPath [$package_list]
617PLIST_SUBST List of ShellWord [$package_list] 616PLIST_SUBST List of ShellWord [$package_list]
618PLIST_TYPE { dynamic static } 617PLIST_TYPE { dynamic static }
619PREPEND_PATH List of Pathname 618PREPEND_PATH List of Pathname
620PREFIX Pathname [*:u] # ??? 619PREFIX Pathname [*:u] # ???
621PRINT_PLIST_AWK AwkCommand [*:a] 620PRINT_PLIST_AWK AwkCommand [*:a]
622PRIVILEGED_STAGES List of { install package clean } 621PRIVILEGED_STAGES List of { install package clean }
623PTHREAD_AUTO_VARS YesNo [m:s] 622PTHREAD_AUTO_VARS YesNo [m:s]
624PTHREAD_CFLAGS List of CFlag [$system] 623PTHREAD_CFLAGS List of CFlag [$system]
625PTHREAD_LDFLAGS List of LdFlag [$system] 624PTHREAD_LDFLAGS List of LdFlag [$system]
626PTHREAD_LIBS List of LdFlag [$system] 625PTHREAD_LIBS List of LdFlag [$system]
627PTHREAD_OPTS List of { native optional require } [m:as,c:a,b:a] 626PTHREAD_OPTS List of { native optional require } [m:as,c:a,b:a]
628PTHREAD_TYPE Identifier [$system] 627PTHREAD_TYPE Identifier [$system]
629# ^^ or "native" or "none". 628# ^^ or "native" or "none".
630PYPKGPREFIX { py23 py24 py25 } [*:pu, pyversion.mk:s, *:] 629PYPKGPREFIX { py23 py24 py25 } [*:pu, pyversion.mk:s, *:]
631PYTHON_FOR_BUILD_ONLY Yes [$package] 630PYTHON_FOR_BUILD_ONLY Yes [$package]
632PYTHON_PATCH_SCRIPTS List of Pathmask [$package_list] 631PYTHON_PATCH_SCRIPTS List of Pathmask [$package_list]
633PYTHON_VERSIONS_ACCEPTED List of Version [$package] 632PYTHON_VERSIONS_ACCEPTED List of Version [$package]
634PYTHON_VERSIONS_INCOMPATIBLE List of Version [$package] 633PYTHON_VERSIONS_INCOMPATIBLE List of Version [$package]
635PYTHON_VERSION_DEFAULT Version [$user] 634PYTHON_VERSION_DEFAULT Version [$user]
636RANLIB ShellCommand [$system] 635RANLIB ShellCommand [$system]
637RCD_SCRIPTS List of Filename [$package_list] 636RCD_SCRIPTS List of Filename [$package_list]
638RCD_SCRIPT_SRC.* List of Pathname [m:s] 637RCD_SCRIPT_SRC.* List of Pathname [m:s]
639REPLACE.* String [m:s] 638REPLACE.* String [m:s]
640REPLACE_AWK List of Pathmask [$package_list] 639REPLACE_AWK List of Pathmask [$package_list]
641REPLACE_BASH List of Pathmask [$package_list] 640REPLACE_BASH List of Pathmask [$package_list]
642REPLACE_EMACS List of Pathmask 641REPLACE_EMACS List of Pathmask
643REPLACE_FILES.* List of Pathmask [m:as,c:as] 642REPLACE_FILES.* List of Pathmask [m:as,c:as]
644REPLACE_INTERPRETER List of Identifier [m:a,c:a] 643REPLACE_INTERPRETER List of Identifier [m:a,c:a]
645REPLACE_KSH List of Pathmask [$package_list] 644REPLACE_KSH List of Pathmask [$package_list]
646REPLACE_LOCALEDIR_PATTERNS List of Filemask [$package_list] 645REPLACE_LOCALEDIR_PATTERNS List of Filemask [$package_list]
647REPLACE_PERL List of Pathmask [$package_list] 646REPLACE_PERL List of Pathmask [$package_list]
648REPLACE_PYTHON List of Pathmask [$package_list] 647REPLACE_PYTHON List of Pathmask [$package_list]
649REPLACE_SH List of Pathmask [$package_list] 648REPLACE_SH List of Pathmask [$package_list]
650REQD_DIRS List of Pathname [$package_list] 649REQD_DIRS List of Pathname [$package_list]
651REQD_DIRS_PERMS List of ShellWord [$package_list] 650REQD_DIRS_PERMS List of ShellWord [$package_list]
652REQD_FILES List of Pathname [$package_list] 651REQD_FILES List of Pathname [$package_list]
653REQD_FILES_MODE { 0644 0640 0600 0400 } [$package] 652REQD_FILES_MODE { 0644 0640 0600 0400 } [$package]
654REQD_FILES_PERMS List of ShellWord [$package_list] 653REQD_FILES_PERMS List of ShellWord [$package_list]
655RESTRICTED Message [$package] 654RESTRICTED Message [$package]
656ROOT_USER UserGroupName [$user] 655ROOT_USER UserGroupName [$user]
657ROOT_GROUP UserGroupName [$user] 656ROOT_GROUP UserGroupName [$user]
658RUN ShellCommand [$system] 657RUN ShellCommand [$system]
659SCRIPTS_ENV List of ShellWord [m:a,c:a] 658SCRIPTS_ENV List of ShellWord [m:a,c:a]
660SETUID_ROOT_PERMS List of ShellWord [$user] 659SETUID_ROOT_PERMS List of ShellWord [$user]
661SHAREGRP UserGroupName [$system] 660SHAREGRP UserGroupName [$system]
662SHAREMODE FileMode [$system] 661SHAREMODE FileMode [$system]
663SHAREOWN UserGroupName [$system] 662SHAREOWN UserGroupName [$system]
664SHCOMMENT ShellCommand [$system] 663SHCOMMENT ShellCommand [$system]
665SHLIB_HANDLING { YES NO no } 664SHLIB_HANDLING { YES NO no }
666SHLIBTOOL ShellCommand [] 665SHLIBTOOL ShellCommand []
667SHLIBTOOL_OVERRIDE List of Pathmask [m:as,c:a] 666SHLIBTOOL_OVERRIDE List of Pathmask [m:as,c:a]
668SITES.* List of URL [m:asu,c:asu,o:asu] 667SITES.* List of URL [m:asu,c:asu,o:asu]
669SPECIAL_PERMS List of ShellWord [$package_list] 668SPECIAL_PERMS List of ShellWord [$package_list]
670STEP_MSG ShellCommand [$system] 669STEP_MSG ShellCommand [$system]
671SUBDIR List of Filename [Makefile:a,*:] 670SUBDIR List of Filename [Makefile:a,*:]
672SUBST_CLASSES List of Identifier [m:a,c:a,h:a,Makefile.*:a] 671SUBST_CLASSES List of Identifier [m:a,c:a,h:a,Makefile.*:a]
673SUBST_FILES.* List of Pathmask [m:as,c:as,h:as,o:as,Makefile.*:as] 672SUBST_FILES.* List of Pathmask [m:as,c:as,h:as,o:as,Makefile.*:as]
674SUBST_FILTER_CMD.* ShellCommand [m:s,c:s,h:s,o:s,Makefile.*:s] 673SUBST_FILTER_CMD.* ShellCommand [m:s,c:s,h:s,o:s,Makefile.*:s]
675SUBST_MESSAGE.* Message [m:s,c:s,h:s,o:s,Makefile.*:s] 674SUBST_MESSAGE.* Message [m:s,c:s,h:s,o:s,Makefile.*:s]
676SUBST_SED.* SedCommands [m:as,c:as,h:as,o:as,Makefile.*:as] 675SUBST_SED.* SedCommands [m:as,c:as,h:as,o:as,Makefile.*:as]
677SUBST_STAGE.* Stage [$package] 676SUBST_STAGE.* Stage [$package]
678SUBST_VARS.* List of Varname [$package_list] 677SUBST_VARS.* List of Varname [$package_list]
679SVR4_PKGNAME SVR4PkgName [$package] 678SVR4_PKGNAME SVR4PkgName [$package]
680TEST_DIRS List of WrksrcSubdirectory [$package_list] 679TEST_DIRS List of WrksrcSubdirectory [$package_list]
681TEST_ENV List of ShellWord [$package_list] 680TEST_ENV List of ShellWord [$package_list]
682TEST_TARGET List of Identifier [m:s,c:ds] 681TEST_TARGET List of Identifier [m:s,c:ds]
683TEX_ACCEPTED List of { teTeX1 teTeX2 teTeX3 } [m:s,c:s] 682TEX_ACCEPTED List of { teTeX1 teTeX2 teTeX3 } [m:s,c:s]
684TEX_DEPMETHOD { build run } [m:s,c:s] 683TEX_DEPMETHOD { build run } [m:s,c:s]
685TEXINFO_REQD List of Version [$package_list] 684TEXINFO_REQD List of Version [$package_list]
686TOOLS_ALIASES List of Filename [$system] 685TOOLS_ALIASES List of Filename [$system]
687TOOLS_BROKEN List of Tool [$system] 686TOOLS_BROKEN List of Tool [$system]
688TOOLS_CREATE List of Tool [$system] 687TOOLS_CREATE List of Tool [$system]
689TOOLS_DEPENDS.* InternalList of DependencyWithPath [$system] 688TOOLS_DEPENDS.* InternalList of DependencyWithPath [$system]
690TOOLS_GNU_MISSING List of Tool [$system] 689TOOLS_GNU_MISSING List of Tool [$system]
691TOOLS_NOOP List of Tool [$system] 690TOOLS_NOOP List of Tool [$system]
692TOOLS_PATH.* Pathname [$system] 691TOOLS_PATH.* Pathname [$system]
693TOOLS_PLATFORM.* ShellCommand [$system] 692TOOLS_PLATFORM.* ShellCommand [$system]
694TOUCH_FLAGS List of ShellWord [$system] 693TOUCH_FLAGS List of ShellWord [$system]
695UNLIMIT_RESOURCES List of { datasize stacksize memorysize } [m:as,c:a] 694UNLIMIT_RESOURCES List of { datasize stacksize memorysize } [m:as,c:a]
696UNPRIVILEGED_USER UserGroupName [$user] 695UNPRIVILEGED_USER UserGroupName [$user]
697UNPRIVILEGED_GROUP UserGroupName [$user] 696UNPRIVILEGED_GROUP UserGroupName [$user]
698UNWRAP_FILES List of Pathmask [$package_list] 697UNWRAP_FILES List of Pathmask [$package_list]
699UPDATE_TARGET List of Identifier [$user] 698UPDATE_TARGET List of Identifier [$user]
700USE_BSD_MAKEFILE Yes [$package] 699USE_BSD_MAKEFILE Yes [$package]
701USE_BUILTIN.* YesNo_Indirectly [builtin.mk:s] 700USE_BUILTIN.* YesNo_Indirectly [builtin.mk:s]
702USE_CMAKE Yes [$package] 701USE_CMAKE Yes [$package]
703USE_CROSSBASE Yes [m:s] 702USE_CROSSBASE Yes [m:s]
704USE_FEATURES List of Identifier [$package] 703USE_FEATURES List of Identifier [$package]
705USE_GNU_CONFIGURE_HOST YesNo [$package] 704USE_GNU_CONFIGURE_HOST YesNo [$package]
706USE_GNU_ICONV Yes [m:s,c:s,o:s] 705USE_GNU_ICONV Yes [m:s,c:s,o:s]
707USE_GNU_READLINE Yes [m:s,c:s,o:s] 706USE_GNU_READLINE Yes [m:s,c:s,o:s]
708USE_IMAKE Yes [m:s] 707USE_IMAKE Yes [m:s]
709USE_JAVA { run yes } [$package] 708USE_JAVA { run yes } [$package]
710USE_JAVA2 { YES yes no 1.4 1.5 } [$package] 709USE_JAVA2 { YES yes no 1.4 1.5 } [$package]
711USE_LANGUAGES List of { c c99 c++ fortran java objc } [m:s,c:s,o:s] 710USE_LANGUAGES List of { c c99 c++ fortran java objc } [m:s,c:s,o:s]
712USE_LIBTOOL Yes [$package] 711USE_LIBTOOL Yes [$package]
713USE_MAKEINFO Yes [$package] 712USE_MAKEINFO Yes [$package]
714USE_MSGFMT_PLURALS Yes [$package] 713USE_MSGFMT_PLURALS Yes [$package]
715USE_NCURSES Yes [$package] 714USE_NCURSES Yes [$package]
716USE_OLD_DES_API YesNo [$package] 715USE_OLD_DES_API YesNo [$package]
717USE_PKGINSTALL Yes [$package] 716USE_PKGINSTALL Yes [$package]
718USE_PKGLOCALEDIR YesNo [$package] 717USE_PKGLOCALEDIR YesNo [$package]
719USE_PKGSRC_GCC Yes [$user] 718USE_PKGSRC_GCC Yes [$user]
720USE_TOOLS List of Tool [*:a] 719USE_TOOLS List of Tool [*:a]
721USE_X11 Yes [$package] 720USE_X11 Yes [$package]
722USE_X11BASE Yes [$package] 721USE_X11BASE Yes [$package]
723WARNING_MSG ShellCommand [$system] 722WARNING_MSG ShellCommand [$system]
724WARNING_CAT ShellCommand [$system] 723WARNING_CAT ShellCommand [$system]
725WRAPPER_REORDER_CMDS List of WrapperReorder [b:a,c:a,m:a] 724WRAPPER_REORDER_CMDS List of WrapperReorder [b:a,c:a,m:a]
726WRAPPER_TRANSFORM_CMDS List of WrapperTransform [b:a,c:a,m:a] 725WRAPPER_TRANSFORM_CMDS List of WrapperTransform [b:a,c:a,m:a]
727WRKDIR Pathname [$system] 726WRKDIR Pathname [$system]
728WRKSRC WrkdirSubdirectory [$package] 727WRKSRC WrkdirSubdirectory [$package]
729X11_PKGSRCDIR.* Pathname [$system] 728X11_PKGSRCDIR.* Pathname [$system]
730X11PREFIX Pathname [$system] 729X11PREFIX Pathname [$system]
731XAW_TYPE { 3d neXtaw standard xpm } [$user] 730XAW_TYPE { 3d neXtaw standard xpm } [$user]
732XMKMF_FLAGS List of ShellWord 731XMKMF_FLAGS List of ShellWord

cvs diff -r1.12 -r1.13 pkgsrc/security/botan/Attic/Makefile (switch to unified diff)

--- pkgsrc/security/botan/Attic/Makefile 2008/01/05 05:06:52 1.12
+++ pkgsrc/security/botan/Attic/Makefile 2009/08/25 12:32:56 1.13
@@ -1,33 +1,31 @@ @@ -1,33 +1,31 @@
1# $NetBSD: Makefile,v 1.12 2008/01/05 05:06:52 obache Exp $ 1# $NetBSD: Makefile,v 1.13 2009/08/25 12:32:56 wiz Exp $
2 2
3DISTNAME= Botan-1.4.11 3DISTNAME= Botan-1.4.11
4PKGNAME= botan-1.4.11 4PKGNAME= botan-1.4.11
5PKGREVISION= 1 5PKGREVISION= 1
6CATEGORIES= security 6CATEGORIES= security
7MASTER_SITES= http://files.randombit.net/botan/archive/v1.4/ 7MASTER_SITES= http://files.randombit.net/botan/archive/v1.4/
8EXTRACT_SUFX= .tgz 8EXTRACT_SUFX= .tgz
9 9
10MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
11HOMEPAGE= http://botan.randombit.net/ 11HOMEPAGE= http://botan.randombit.net/
12COMMENT= Portable, easy to use, and efficient C++ crypto library 12COMMENT= Portable, easy to use, and efficient C++ crypto library
13 13
14BROKEN_IN= pkgsrc-2006Q4 
15 
16USE_TOOLS+= perl 14USE_TOOLS+= perl
17 15
18USE_LANGUAGES= c++ 16USE_LANGUAGES= c++
19REPLACE_PERL+= ./configure.pl 17REPLACE_PERL+= ./configure.pl
20HAS_CONFIGURE= yes 18HAS_CONFIGURE= yes
21CONFIG_SHELL= perl 19CONFIG_SHELL= perl
22CONFIGURE_SCRIPT= ./configure.pl 20CONFIGURE_SCRIPT= ./configure.pl
23CONFIGURE_ARGS+= --prefix=${PREFIX:Q} 21CONFIGURE_ARGS+= --prefix=${PREFIX:Q}
24 22
25MAKE_FLAGS+= INSTALL_CMD_EXEC=${INSTALL_PROGRAM:Q} 23MAKE_FLAGS+= INSTALL_CMD_EXEC=${INSTALL_PROGRAM:Q}
26MAKE_FLAGS+= INSTALL_CMD_DATA=${INSTALL_DATA:Q} 24MAKE_FLAGS+= INSTALL_CMD_DATA=${INSTALL_DATA:Q}
27MAKE_FLAGS+= LIB_OPT=${CXXFLAGS:Q} 25MAKE_FLAGS+= LIB_OPT=${CXXFLAGS:Q}
28 26
29CXXFLAGS.DragonFly+= -D_DRAGONFLY_SOURCE 27CXXFLAGS.DragonFly+= -D_DRAGONFLY_SOURCE
30CXXFLAGS.NetBSD+= -D_NETBSD_SOURCE 28CXXFLAGS.NetBSD+= -D_NETBSD_SOURCE
31BUILDLINK_TRANSFORM+= rm:-mcpu=i686 29BUILDLINK_TRANSFORM+= rm:-mcpu=i686
32 30
33.include "../../mk/bsd.pkg.mk" 31.include "../../mk/bsd.pkg.mk"

cvs diff -r1.8 -r1.9 pkgsrc/sysutils/nvnet/Makefile (switch to unified diff)

--- pkgsrc/sysutils/nvnet/Makefile 2009/05/19 08:59:34 1.8
+++ pkgsrc/sysutils/nvnet/Makefile 2009/08/25 12:32:56 1.9
@@ -1,42 +1,40 @@ @@ -1,42 +1,40 @@
1# $NetBSD: Makefile,v 1.8 2009/05/19 08:59:34 wiz Exp $ 1# $NetBSD: Makefile,v 1.9 2009/08/25 12:32:56 wiz Exp $
2# 2#
3 3
4PKGNAME= nvnet-20050620nb1 4PKGNAME= nvnet-20050620nb1
5DISTNAME= nvnet-netbsd-src-20050620.tgz 5DISTNAME= nvnet-netbsd-src-20050620.tgz
6DISTNAME+= NFORCE-Linux-x86-1.0-0310-pkg1.run 6DISTNAME+= NFORCE-Linux-x86-1.0-0310-pkg1.run
7CATEGORIES= sysutils 7CATEGORIES= sysutils
8MASTER_SITES+= http://www.morgart.com/NetBSD/nVidia/nvnet/ 8MASTER_SITES+= http://www.morgart.com/NetBSD/nVidia/nvnet/
9MASTER_SITES+= http://download.nvidia.com/XFree86/nforce/1.0-0310/ 9MASTER_SITES+= http://download.nvidia.com/XFree86/nforce/1.0-0310/
10 10
11EXTRACT_SUFX= 11EXTRACT_SUFX=
12 12
13MAINTAINER= pkgsrc-users@NetBSD.org 13MAINTAINER= pkgsrc-users@NetBSD.org
14HOMEPAGE= http://www.morgart.com/NetBSD/nVidia/nvnet/ 14HOMEPAGE= http://www.morgart.com/NetBSD/nVidia/nvnet/
15COMMENT= Driver for nVidia ethernet 15COMMENT= Driver for nVidia ethernet
16LICENSE= nvidia-license 16LICENSE= nvidia-license
17 17
18RESTRICTED= nVidia Licensed Software: http://www.nvidia.com/object/nv_swlicense.html 18RESTRICTED= nVidia Licensed Software: http://www.nvidia.com/object/nv_swlicense.html
19NO_SRC_ON_CDROM= ${RESTRICTED} 19NO_SRC_ON_CDROM= ${RESTRICTED}
20NO_BIN_ON_CDROM= ${RESTRICTED} 20NO_BIN_ON_CDROM= ${RESTRICTED}
21NO_SRC_ON_FTP= ${RESTRICTED} 21NO_SRC_ON_FTP= ${RESTRICTED}
22NO_BIN_ON_FTP= ${RESTRICTED} 22NO_BIN_ON_FTP= ${RESTRICTED}
23 23
24BROKEN_IN= pkgsrc-2006Q1 pkgsrc-2006Q4 
25 
26WRKSRC= ${WRKDIR}/nvnet 24WRKSRC= ${WRKDIR}/nvnet
27 25
28ONLY_FOR_PLATFORM= NetBSD-*-i386 26ONLY_FOR_PLATFORM= NetBSD-*-i386
29 27
30INSTALLATION_DIRS= lkm ${PKGMANDIR}/man4 28INSTALLATION_DIRS= lkm ${PKGMANDIR}/man4
31 29
32MESSAGE_SUBST+= PREFIX=${PREFIX:Q} 30MESSAGE_SUBST+= PREFIX=${PREFIX:Q}
33 31
34do-extract: 32do-extract:
35 ${TAR} -xzf ${DISTDIR}/nvnet-netbsd-src-20050620.tgz -C ${WRKDIR} 33 ${TAR} -xzf ${DISTDIR}/nvnet-netbsd-src-20050620.tgz -C ${WRKDIR}
36 cd ${WRKDIR} && ${SH} ${DISTDIR}/NFORCE-Linux-x86-1.0-0310-pkg1.run -x 34 cd ${WRKDIR} && ${SH} ${DISTDIR}/NFORCE-Linux-x86-1.0-0310-pkg1.run -x
37 35
38do-install: 36do-install:
39 ${INSTALL} -c -m 755 ${WRKSRC}/module/nv.o ${PREFIX}/lkm/nv.o 37 ${INSTALL} -c -m 755 ${WRKSRC}/module/nv.o ${PREFIX}/lkm/nv.o
40 ${INSTALL_MAN} ${WRKSRC}/man/nv.4 ${PREFIX}/${PKGMANDIR}/man4/nv.4 38 ${INSTALL_MAN} ${WRKSRC}/man/nv.4 ${PREFIX}/${PKGMANDIR}/man4/nv.4
41 39
42.include "../../mk/bsd.pkg.mk" 40.include "../../mk/bsd.pkg.mk"

cvs diff -r1.12 -r1.13 pkgsrc/sysutils/strace/Makefile (switch to unified diff)

--- pkgsrc/sysutils/strace/Makefile 2008/12/20 18:06:39 1.12
+++ pkgsrc/sysutils/strace/Makefile 2009/08/25 12:32:56 1.13
@@ -1,37 +1,35 @@ @@ -1,37 +1,35 @@
1# $NetBSD: Makefile,v 1.12 2008/12/20 18:06:39 christos Exp $ 1# $NetBSD: Makefile,v 1.13 2009/08/25 12:32:56 wiz Exp $
2# 2#
3 3
4DISTNAME= strace-4.5.15 4DISTNAME= strace-4.5.15
5PKGREVISION= 1 5PKGREVISION= 1
6CATEGORIES= sysutils 6CATEGORIES= sysutils
7MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=strace/} 7MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=strace/}
8EXTRACT_SUFX= .tar.bz2 8EXTRACT_SUFX= .tar.bz2
9 9
10MAINTAINER= christos@NetBSD.org 10MAINTAINER= christos@NetBSD.org
11HOMEPAGE= http://sourceforge.net/projects/strace/ 11HOMEPAGE= http://sourceforge.net/projects/strace/
12COMMENT= Trace system calls 12COMMENT= Trace system calls
13 13
14BROKEN_IN= pkgsrc-2006Q4 
15 
16# NetBSD < 3.99.16 14# NetBSD < 3.99.16
17NOT_FOR_PLATFORM= NetBSD-[012]*-* NetBSD-3.[0-9][._]*-* \ 15NOT_FOR_PLATFORM= NetBSD-[012]*-* NetBSD-3.[0-9][._]*-* \
18 NetBSD-3.99.[0-9]-* NetBSD-3.99.1[0-5]-* 16 NetBSD-3.99.[0-9]-* NetBSD-3.99.1[0-5]-*
19NOT_FOR_PLATFORM+= DragonFly-*-* 17NOT_FOR_PLATFORM+= DragonFly-*-*
20 18
21GNU_CONFIGURE= yes 19GNU_CONFIGURE= yes
22 20
23REPLACE_PERL= strace-graph 21REPLACE_PERL= strace-graph
24 22
25.include "../../mk/bsd.prefs.mk" 23.include "../../mk/bsd.prefs.mk"
26.if ${OPSYS} == "Linux" 24.if ${OPSYS} == "Linux"
27USE_TOOLS+= autoconf 25USE_TOOLS+= autoconf
28pre-configure: 26pre-configure:
29 cd ${WRKSRC} && autoconf 27 cd ${WRKSRC} && autoconf
30.endif 28.endif
31 29
32.if ${OPSYS} == "NetBSD" 30.if ${OPSYS} == "NetBSD"
33pre-configure: 31pre-configure:
34 ${CP} -f ${WRKSRC}/syscalls.pl ${WRKSRC}/netbsd 32 ${CP} -f ${WRKSRC}/syscalls.pl ${WRKSRC}/netbsd
35.endif 33.endif
36 34
37.include "../../mk/bsd.pkg.mk" 35.include "../../mk/bsd.pkg.mk"

cvs diff -r1.4 -r1.5 pkgsrc/www/nvu/Attic/Makefile (switch to unified diff)

--- pkgsrc/www/nvu/Attic/Makefile 2008/03/04 11:02:26 1.4
+++ pkgsrc/www/nvu/Attic/Makefile 2009/08/25 12:32:56 1.5
@@ -1,37 +1,35 @@ @@ -1,37 +1,35 @@
1# $NetBSD: Makefile,v 1.4 2008/03/04 11:02:26 rillig Exp $ 1# $NetBSD: Makefile,v 1.5 2009/08/25 12:32:56 wiz Exp $
2# 2#
3 3
4DISTNAME= nvu-1.0-sources 4DISTNAME= nvu-1.0-sources
5PKGNAME= nvu-1.0 5PKGNAME= nvu-1.0
6CATEGORIES= www 6CATEGORIES= www
7MASTER_SITES= http://cvs.nvu.com/download/ 7MASTER_SITES= http://cvs.nvu.com/download/
8EXTRACT_SUFX= .tar.bz2 8EXTRACT_SUFX= .tar.bz2
9 9
10MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
11HOMEPAGE= http://www.nvu.com/ 11HOMEPAGE= http://www.nvu.com/
12COMMENT= Web Authoring System 12COMMENT= Web Authoring System
13 13
14BUILD_DEPENDS+= zip-[0-9]*:../../archivers/zip 14BUILD_DEPENDS+= zip-[0-9]*:../../archivers/zip
15 15
16BROKEN_IN= pkgsrc-2006Q4 
17 
18WRKSRC= ${WRKDIR}/mozilla 16WRKSRC= ${WRKDIR}/mozilla
19GNU_CONFIGURE= yes 17GNU_CONFIGURE= yes
20CONFIGURE_ENV+= ORBIT_CONFIG=orbit2-config 18CONFIGURE_ENV+= ORBIT_CONFIG=orbit2-config
21USE_TOOLS+= gmake perl pkg-config unzip 19USE_TOOLS+= gmake perl pkg-config unzip
22USE_LANGUAGES= c c++ 20USE_LANGUAGES= c c++
23 21
24PKGCONFIG_OVERRIDE+= build/unix/mozilla-gtkmozembed.pc.in 22PKGCONFIG_OVERRIDE+= build/unix/mozilla-gtkmozembed.pc.in
25PKGCONFIG_OVERRIDE+= build/unix/mozilla-js.pc.in 23PKGCONFIG_OVERRIDE+= build/unix/mozilla-js.pc.in
26PKGCONFIG_OVERRIDE+= build/unix/mozilla-nspr.pc.in 24PKGCONFIG_OVERRIDE+= build/unix/mozilla-nspr.pc.in
27PKGCONFIG_OVERRIDE+= build/unix/mozilla-nss.pc.in 25PKGCONFIG_OVERRIDE+= build/unix/mozilla-nss.pc.in
28PKGCONFIG_OVERRIDE+= build/unix/mozilla-plugin.pc.in 26PKGCONFIG_OVERRIDE+= build/unix/mozilla-plugin.pc.in
29PKGCONFIG_OVERRIDE+= build/unix/mozilla-xpcom.pc.in 27PKGCONFIG_OVERRIDE+= build/unix/mozilla-xpcom.pc.in
30 28
31CPPFLAGS+= -I${BUILDLINK_PREFIX.libIDL}/include/libIDL-2.0 29CPPFLAGS+= -I${BUILDLINK_PREFIX.libIDL}/include/libIDL-2.0
32BUILDLINK_TRANSFORM+= l:IDL:IDL-2 30BUILDLINK_TRANSFORM+= l:IDL:IDL-2
33 31
34.include "../../net/libIDL/buildlink3.mk" 32.include "../../net/libIDL/buildlink3.mk"
35.include "../../net/ORBit2/buildlink3.mk" 33.include "../../net/ORBit2/buildlink3.mk"
36.include "../../x11/gtk/buildlink3.mk" 34.include "../../x11/gtk/buildlink3.mk"
37.include "../../mk/bsd.pkg.mk" 35.include "../../mk/bsd.pkg.mk"