NetBSD Problem Report #45046

From www@NetBSD.org  Fri Jun 10 15:41:37 2011
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id C421063B99B
	for <gnats-bugs@gnats.NetBSD.org>; Fri, 10 Jun 2011 15:41:37 +0000 (UTC)
Message-Id: <20110610154136.0C39263B970@www.NetBSD.org>
Date: Fri, 10 Jun 2011 15:41:36 +0000 (UTC)
From: tcort@minix3.org
Reply-To: tcort@minix3.org
To: gnats-bugs@NetBSD.org
Subject: mk/* minix support
X-Send-Pr-Version: www-1.0

>Number:         45046
>Category:       pkg
>Synopsis:       mk/* minix support
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          closed
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Fri Jun 10 15:45:00 +0000 2011
>Closed-Date:    Fri Mar 01 00:13:02 +0000 2013
>Last-Modified:  Fri Mar 01 00:13:02 +0000 2013
>Originator:     Thomas Cort
>Release:        N/A
>Organization:
Minix3
>Environment:
Minix 192.168.122.210 3.2.0 i686
>Description:
The core pkgsrc makefiles don't support Minix.
>How-To-Repeat:
Try to run pkgsrc on Minix without the changes provided below.
>Fix:
diff --git a/mk/bsd.pkg.mk b/mk/bsd.pkg.mk
index 094f902..874dcdd 100644
--- a/mk/bsd.pkg.mk
+++ b/mk/bsd.pkg.mk
@@ -482,7 +482,7 @@ PKG_FAIL_REASON+= "${PKGNAME} is restricted:" \
 PKG_FAIL_REASON+= "${PKGNAME} may not be built, because it utilizes strong cryptography"
 .    endif
 .  endif
-.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE})
+.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE}) && (${OPSYS} != "Minix")
 PKG_FAIL_REASON+= "${PKGNAME} uses X11, but ${X11BASE} not found"
 .  endif
 .  if defined(BROKEN)
@@ -647,7 +647,11 @@ _BIN_INSTALL_FLAGS+=	-A
 .endif
 _BIN_INSTALL_FLAGS+=	${PKG_ARGS_ADD}

+.if ${OPSYS} == "Minix"
+_SHORT_UNAME_R=        ${:!${UNAME} -r!:} # full uname -r output
+.else
 _SHORT_UNAME_R=	${:!${UNAME} -r!:C@\.([0-9]*)[_.-].*@.\1@} # n.n[_.]anything => n.n
+.endif

 .include "install/bin-install.mk"

diff --git a/mk/bsd.prefs.mk b/mk/bsd.prefs.mk
index 46e3222..cefe6c9 100644
--- a/mk/bsd.prefs.mk
+++ b/mk/bsd.prefs.mk
@@ -279,6 +279,17 @@ LOWER_VENDOR?=		sun
 LOWER_OPSYS?=		solaris
 LOWER_OPSYS_VERSUFFIX=	2

+.elif ${OPSYS} == "Minix"
+OS_VERSION!= echo `${UNAME} -v`
+LOWER_OS_VERSION= OS_VERSION
+LOWER_ARCH!=		${UNAME} -p
+MACHINE_ARCH?=		${LOWER_ARCH}
+.if ${MACHINE_ARCH} == "unknown"
+MACHINE_ARCH=		${LOWER_ARCH}
+.endif
+LOWER_VENDOR?=pc
+LOWER_OPSYS:=		${OPSYS:tl}
+CPPFLAGS+=	-D_MINIX -D_POSIX_SOURCE
 .elif !defined(LOWER_OPSYS)
 LOWER_OPSYS:=		${OPSYS:tl}
 .endif
@@ -549,6 +560,8 @@ X11BASE?=	/usr
 .  elif !empty(MACHINE_PLATFORM:MDarwin-9.*-*) || \
         !empty(MACHINE_PLATFORM:MDarwin-??.*-*)
 X11BASE?=	/usr/X11
+.  elif ${OPSYS} == "Minix"
+X11BASE?=	${LOCALBASE}/X11R6
 .  elif exists(/usr/X11R7/lib/libX11.so)
 X11BASE?=	/usr/X11R7
 .  else
diff --git a/mk/buildlink3/imake-check b/mk/buildlink3/imake-check
index c337d20..cc73165 100755
--- a/mk/buildlink3/imake-check
+++ b/mk/buildlink3/imake-check
@@ -86,8 +86,8 @@ then
 fi

 # Run imake to process the Imakefile.
-${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config -s - |
-${IMAKE_MAKE} -f - builtin-test |
+${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config
+${IMAKE_MAKE} builtin-test |
 ${GREP} -q yes
 exitcode="$?"

diff --git a/mk/fetch/sites.mk b/mk/fetch/sites.mk
index 169f880..3315ffe 100644
--- a/mk/fetch/sites.mk
+++ b/mk/fetch/sites.mk
@@ -465,3 +465,5 @@ MASTER_SITE_BACKUP?=	\
 	ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/ \
 	http://ftp.NetBSD.org/pub/pkgsrc/distfiles/ \
 	ftp://ftp.FreeBSD.org/pub/FreeBSD/distfiles/
+
+MASTER_SITE_MINIX=http://www.minix3.org/distfiles-minix/
diff --git a/mk/install/bin-install.mk b/mk/install/bin-install.mk
index 0400f8f..60e3785 100644
--- a/mk/install/bin-install.mk
+++ b/mk/install/bin-install.mk
@@ -32,6 +32,8 @@
 .if ${OPSYS} == "NetBSD"
 BINPKG_SITES?= \
 	ftp://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/$${arch}/$${rel}
+.elif ${OPSYS} == "Minix"
+BINPKG_SITES?= ftp://ftp.minix3.org/pub/minix/packages/$${rel}/$${arch}
 .elif ${OPSYS} == "DragonFly"
 BINPKG_SITES?= \
 	http://mirror-master.dragonflybsd.org/packages/$${arch}/DragonFly-$${rel}/stable
diff --git a/mk/pkginstall/dirs b/mk/pkginstall/dirs
index c783cbf..611be47 100644
--- a/mk/pkginstall/dirs
+++ b/mk/pkginstall/dirs
@@ -77,6 +77,12 @@ PKG_METADATA_DIR="${2-${CURDIR}}"

 PKG_REFCOUNT_DIRS_DBDIR="${PKG_REFCOUNT_DBDIR}/dirs"

+if ${TEST} -n "${PKG_DESTDIR}"; then
+	PKG_DBDIR="${PKG_DESTDIR}${PKG_DBDIR}"
+	PKG_REFCOUNT_DBDIR="${PKG_DESTDIR}${PKG_REFCOUNT_DBDIR}"
+	PKG_REFCOUNT_DIRS_DBDIR="${PKG_DESTDIR}${PKG_REFCOUNT_DIRS_DBDIR}"
+fi
+
 case "${PKG_CONFIG:-@PKG_CONFIG@}" in
 [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
 	_PKG_CONFIG=yes
@@ -111,6 +117,7 @@ ADD)
 		perms="$shadow_dir/+PERMISSIONS"
 		preexist="$shadow_dir/+PREEXISTING"
 		token="$shadow_dir/${PKGNAME}"
+		dir="${PKG_DESTDIR}$dir"
 		if ${TEST} ! -d "$shadow_dir"; then
 			${MKDIR} $shadow_dir
 			${TEST} ! -d "$dir" ||
@@ -162,6 +169,7 @@ REMOVE)
 		preexist="$shadow_dir/+PREEXISTING"
 		token="$shadow_dir/${PKGNAME}"
 		tokentmp="$token.tmp.$$"
+		dir="${PKG_DESTDIR}$dir"
 		if ${TEST} -f "$token" && \
 		   ${GREP} "^${PKG_METADATA_DIR}$" $token >/dev/null; then
 			${CAT} "$token" | ${GREP} -v "^${PKG_METADATA_DIR}$" > $tokentmp
@@ -193,7 +201,7 @@ PERMS)
 		esac
 		case $dir in
 		"")	continue ;;
-		[!/]*)	dir="${PKG_PREFIX}/$dir" ;;
+		[!/]*)	dir="${PKG_DESTDIR}${PKG_PREFIX}/$dir" ;;
 		esac
 		case $d_user in
 		"")	;;
@@ -215,7 +223,7 @@ CHECK-ADD)
 	{ while read dir d_flags d_mode d_user d_group; do
 		case $dir in
 		"")	continue ;;
-		[!/]*)	dir="${PKG_PREFIX}/$dir" ;;
+		[!/]*)	dir="${PKG_DESTDIR}${PKG_PREFIX}/$dir" ;;
 		esac
 		${TEST} ! -d "$dir" || continue
 		case $d_flags in
@@ -262,6 +270,7 @@ CHECK-REMOVE)
 		esac
 		shadow_dir="${PKG_REFCOUNT_DIRS_DBDIR}$dir"
 		${TEST} ! -d "$shadow_dir" || continue	# refcount isn't zero
+		dir="${PKG_DESTDIR}$dir"
 		case "$printed_header" in
 		yes)	;;
 		*)	printed_header=yes
@@ -290,7 +299,7 @@ CHECK-PERMS)
 	{ while read dir d_flags d_mode d_user d_group; do
 		case $dir in
 		"")	continue ;;
-		[!/]*)	dir="${PKG_PREFIX}/$dir" ;;
+		[!/]*)	dir="${PKG_DESTDIR}${PKG_PREFIX}/$dir" ;;
 		esac
 		${TEST} -d "$dir" || continue
 		case $d_user:$d_group:$d_mode in
diff --git a/mk/pkginstall/files b/mk/pkginstall/files
index 15ed967..489c238 100644
--- a/mk/pkginstall/files
+++ b/mk/pkginstall/files
@@ -114,6 +114,12 @@ VIEW-REMOVE)
 	;;
 esac

+if ${TEST} -n "${PKG_DESTDIR}"; then
+	PKG_DBDIR="${PKG_DESTDIR}${PKG_DBDIR}"
+	PKG_REFCOUNT_DBDIR="${PKG_DESTDIR}${PKG_REFCOUNT_DBDIR}"
+	PKG_REFCOUNT_FILES_DBDIR="${PKG_DESTDIR}${PKG_REFCOUNT_FILES_DBDIR}"
+fi
+
 exitcode=0
 case $ACTION in
 ADD)
@@ -136,6 +142,9 @@ ADD)
 		perms="$shadow_dir/+PERMISSIONS"
 		preexist="$shadow_dir/+PREEXISTING"
 		token="$shadow_dir/${PKGNAME}"
+		file="${PKG_DESTDIR}$file"
+		f_eg="${PKG_DESTDIR}$f_eg"
+
 		if ${TEST} ! -d "$shadow_dir"; then
 			${MKDIR} $shadow_dir
 			${TEST} ! -f "$file" ||
@@ -202,6 +211,9 @@ REMOVE)
 		preexist="$shadow_dir/+PREEXISTING"
 		token="$shadow_dir/${PKGNAME}"
 		tokentmp="$token.tmp.$$"
+		file="${PKG_DESTDIR}$file"
+		f_eg="${PKG_DESTDIR}$f_eg"
+
 		if ${TEST} -f "$token" && \
 		   ${GREP} "^${PKG_METADATA_DIR}$" $token >/dev/null; then
 			${CAT} "$token" | ${GREP} -v "^${PKG_METADATA_DIR}$" > $tokentmp
@@ -237,7 +249,7 @@ PERMS)
 		esac
 		case $file in
 		"")	continue ;;
-		[!/]*)	file="${PKG_PREFIX}/$file" ;;
+		[!/]*)	file="${PKG_DESTDIR}${PKG_PREFIX}/$file" ;;
 		esac
 		case $f_user in
 		"")	;;
@@ -275,7 +287,7 @@ CHECK-ADD)
 	{ while read file f_flags f_eg f_mode f_user f_group; do
 		case $file in
 		"")	continue ;;
-		[!/]*)	file="${PKG_PREFIX}/$file" ;;
+		[!/]*)	file="${PKG_DESTDIR}${PKG_PREFIX}/$file" ;;
 		esac
 		${TEST} ! -f "$file" || continue
 		case $f_flags in
@@ -284,7 +296,7 @@ CHECK-ADD)
 		esac
 		case $f_eg in
 		"")	continue ;;
-		[!/]*)	f_eg="${PKG_PREFIX}/$f_eg" ;;
+		[!/]*)	f_eg="${PKG_DESTDIR}${PKG_PREFIX}/$f_eg" ;;
 		esac

 		case "$printed_header" in
@@ -330,6 +342,8 @@ CHECK-REMOVE)
 		${TEST} -f "$file" || continue
 		shadow_dir="${PKG_REFCOUNT_FILES_DBDIR}$file"
 		${TEST} ! -d "$shadow_dir" || continue	# refcount isn't zero
+		file="${PKG_DESTDIR}$file"
+
 		case "$printed_header" in
 		yes)	;;
 		*)	printed_header=yes
@@ -358,7 +372,7 @@ CHECK-PERMS)
 	{ while read file f_flags f_eg f_mode f_user f_group; do
 		case $file in
 		"")	continue ;;
-		[!/]*)	file="${PKG_PREFIX}/$file" ;;
+		[!/]*)	file="${PKG_DESTDIR}${PKG_PREFIX}/$file" ;;
 		esac
 		${TEST} -f "$file" || continue
 		case $f_mode:$f_user:$f_group in
diff --git a/mk/platform/Minix.mk b/mk/platform/Minix.mk
new file mode 100644
index 0000000..a87c1c1
--- /dev/null
+++ b/mk/platform/Minix.mk
@@ -0,0 +1,87 @@
+# $NetBSD: Linux.mk,v 1.37 2010/03/18 22:46:01 sbd Exp $
+#
+# Variable definitions for the Minix operating system.
+
+ECHO_N?=	${ECHO} -n
+.if !defined(X11_TYPE) || ${X11_TYPE} == "native"
+IMAKE_MAKE?=	${MAKE}	# program which gets invoked by imake
+.endif
+IMAKEOPTS+=	-DBuildHtmlManPages=NO
+PKGLOCALEDIR?=	share
+PS?=		/usr/bin/ps
+# XXX: default from defaults/mk.conf.  Verify/correct for this platform
+# and remove this comment.
+SU?=		/usr/bin/su
+TYPE?=		type			# Shell builtin
+
+CPP_PRECOMP_FLAGS?=	# unset
+DEF_UMASK?=		022
+DEFAULT_SERIAL_DEVICE?=	/dev/null
+EXPORT_SYMBOLS_LDFLAGS?=	# Don't add symbols to the dynamic symbol table
+GROUPADD?=
+NOLOGIN?=		/bin/false
+PKG_TOOLS_BIN?=		${LOCALBASE}/sbin
+ROOT_CMD?=		${SU} - root -c
+ROOT_GROUP?=	operator
+ROOT_USER?=		root
+SERIAL_DEVICES?=	/dev/null
+USERADD?=		/usr/bin/useradd
+ULIMIT_CMD_datasize?=	: 
+
+# imake installs manpages in weird places
+# these values from /usr/X11R6/lib/X11/config/linux.cf
+IMAKE_MAN_SOURCE_PATH=	man/man
+IMAKE_MAN_SUFFIX=	1x
+IMAKE_LIBMAN_SUFFIX=	3x
+IMAKE_KERNMAN_SUFFIX=	4
+IMAKE_FILEMAN_SUFFIX=	5x
+IMAKE_GAMEMAN_SUFFIX=	6
+IMAKE_MISCMAN_SUFFIX=	7
+IMAKE_MAN_DIR=		${IMAKE_MAN_SOURCE_PATH}1
+IMAKE_LIBMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}3
+IMAKE_KERNMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}4
+IMAKE_FILEMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}5
+IMAKE_GAMEMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}6
+IMAKE_MISCMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}7
+IMAKE_MANNEWSUFFIX=	${IMAKE_MAN_SUFFIX}
+IMAKE_MANINSTALL?=	maninstall catinstall
+
+_OPSYS_HAS_INET6=	no	# IPv6 is not standard
+_OPSYS_HAS_JAVA=	no	# Java is not standard
+_OPSYS_HAS_MANZ=	no	# no MANZ for gzipping of man pages
+_OPSYS_HAS_OSSAUDIO=	no	# libossaudio is available
+_OPSYS_PERL_REQD=		# no base version of perl required
+_OPSYS_PTHREAD_AUTO=	no	# -lpthread needed for pthreads
+_OPSYS_SHLIB_TYPE=		a.out # XXX Is this right?
+_PATCH_CAN_BACKUP=	yes	# native patch(1) can make backups
+_PATCH_BACKUP_ARG?= 	-b -V simple --suffix	# switch to patch(1) for backup suffix
+_USE_RPATH=		no	# add rpath to LDFLAGS
+
+# flags passed to the linker to extract all symbols from static archives.
+# this is GNU ld.
+_OPSYS_WHOLE_ARCHIVE_FLAG=	-Wl,--whole-archive
+_OPSYS_NO_WHOLE_ARCHIVE_FLAG=	-Wl,--no-whole-archive
+
+_STRIPFLAG_CC?=		${_INSTALL_UNSTRIPPED:D:U-s}	# cc(1) option to strip
+_STRIPFLAG_INSTALL?=	${_INSTALL_UNSTRIPPED:D:U-s}	# install(1) option to strip
+
+_OPSYS_CAN_CHECK_SHLIBS=	no # can't use readelf in check/bsd.check-vars.mk
+
+# check for maximum command line length and set it in configure's environment,
+# to avoid a test required by the libtool script that takes forever.
+# FIXME: Adjust to work on this system and enable the lines below.
+#_OPSYS_MAX_CMDLEN_CMD=	/sbin/sysctl -n kern.argmax
+
+# If games are to be installed setgid, then SETGIDGAME is set to 'yes'
+# (it defaults to 'no' as per defaults/mk.conf).
+# Set the group and mode to meaningful values in that case (defaults to
+# BINOWN, BINGRP and BINMODE as per defaults/mk.conf).
+# FIXME: Adjust to work on this system and enable the lines below.
+#.if !(empty(SETGIDGAME:M[yY][eE][sS]))
+#GAMES_USER=		games
+#GAMES_GROUP=		games
+#GAMEOWN=		${GAMES_USER}
+#GAMEGRP=		${GAMES_GROUP}
+#GAMEMODE=		2555
+#GAMEDIRMODE=		0775
+#.endif
diff --git a/mk/tools/tools.Minix.mk b/mk/tools/tools.Minix.mk
new file mode 100644
index 0000000..5d91e77
--- /dev/null
+++ b/mk/tools/tools.Minix.mk
@@ -0,0 +1,64 @@
+# $NetBSD: tools.Linux.mk,v 1.47 2010/02/13 08:30:59 obache Exp $
+#
+# System-supplied tools for the Minix operating system.
+
+#System supplied tools
+TOOLS_PLATFORM.[?=		/bin/[
+TOOLS_PLATFORM.awk?=		/usr/bin/awk
+TOOLS_PLATFORM.basename?=	/usr/bin/basename
+TOOLS_PLATFORM.bzcat?=		/usr/bin/bzcat
+TOOLS_PLATFORM.cat?=		/bin/cat
+TOOLS_PLATFORM.bzip2?=		/usr/bin/bzip2
+TOOLS_PLATFORM.chgrp?=		/usr/bin/chgrp
+TOOLS_PLATFORM.chmod?=		/usr/bin/chmod
+TOOLS_PLATFORM.chown?=		/usr/bin/chown
+TOOLS_PLATFORM.cmp?=		/usr/bin/cmp
+TOOLS_PLATFORM.cp?=		/bin/cp 
+TOOLS_PLATFORM.cut?=		/usr/bin/cut
+TOOLS_PLATFORM.date?=		/bin/date
+TOOLS_PLATFORM.dirname?=	/usr/bin/dirname
+TOOLS_PLATFORM.echo?=		/bin/echo
+TOOLS_PLATFORM.env?=		/usr/bin/env
+TOOLS_PLATFORM.expr?=		/bin/expr
+TOOLS_PLATFORM.false?=		/bin/false
+TOOLS_PLATFORM.file?=		/usr/bin/file
+TOOLS_PLATFORM.find?=		/usr/bin/find
+TOOLS_PLATFORM.head?=		/usr/bin/head
+TOOLS_PLATFORM.id?=		/usr/bin/id
+TOOLS_PLATFORM.install?=	/bin/install
+TOOLS_PLATFORM.ln?=		/bin/ln
+TOOLS_PLATFORM.ls?=		/bin/ls
+TOOLS_PLATFORM.m4?=		/usr/bin/m4
+TOOLS_PLATFORM.mail?=		/usr/bin/mail
+TOOLS_PLATFORM.mkdir?=		/usr/bin/mkdir -p
+TOOLS_PLATFORM.mv?=		/bin/mv
+TOOLS_PLATFORM.nice?=		/usr/bin/nice
+TOOLS_PLATFORM.nroff?=		/usr/bin/nroff
+TOOLS_PLATFORM.pwd?=		/bin/pwd
+TOOLS_PLATFORM.rm?=		/bin/rm
+TOOLS_PLATFORM.rmdir?=		/bin/rmdir
+TOOLS_PLATFORM.sed?=	/bin/sed
+TOOLS_PLATFORM.sh?=		/bin/sh
+TOOLS_PLATFORM.sleep?=		/usr/bin/sleep
+TOOLS_PLATFORM.strip?=		/usr/bin/strip
+TOOLS_PLATFORM.tail?=		/usr/bin/tail
+TOOLS_PLATFORM.tar?=		/usr/bin/tar
+TOOLS_PLATFORM.bsdtar?=		/usr/bin/bsdtar
+TOOLS_PLATFORM.fetch?=		/usr/bin/fetch
+TOOLS_PLATFORM.tee?=		/usr/bin/tee
+TOOLS_PLATFORM.test?=		/bin/test
+TOOLS_PLATFORM.tr?=		/usr/bin/tr
+TOOLS_PLATFORM.true?=		/bin/true
+TOOLS_PLATFORM.tsort?=		/usr/bin/tsort
+TOOLS_PLATFORM.wc?=		/usr/bin/wc
+TOOLS_PLATFORM.xargs?=		/usr/bin/xargs
+TOOLS_PLATFORM.yacc?=		/usr/bin/yacc
+TOOLS_PLATFORM.grep?=		/usr/bin/grep
+TOOLS_PLATFORM.egrep?=		/usr/bin/egrep
+TOOLS_PLATFORM.fgrep?=		/usr/bin/fgrep
+TOOLS_PLATFORM.printf?=		/usr/bin/printf
+TOOLS_PLATFORM.touch?=		/usr/bin/touch
+TOOLS_PLATFORM.hostname?= /usr/bin/hostname
+TOOLS_PLATFORM.patch?=		/usr/bin/patch
+TOOLS_PLATFORM.diff?=	/usr/bin/diff
+TOOLS_PLATFORM.sort?=	/usr/bin/sort

>Release-Note:

>Audit-Trail:
From: "OBATA Akio" <obache@netbsd.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/45046: mk/* minix support
Date: Sat, 11 Jun 2011 08:56:55 +0900

 On Sat, 11 Jun 2011 00:45:00 +0900, <tcort@minix3.org> wrote:

 > +.  elif ${OPSYS} == "Minix"
 > +X11BASE?=	${LOCALBASE}/X11R6

 Where is it came from?

 > +if ${TEST} -n "${PKG_DESTDIR}"; then
 > +	PKG_DBDIR="${PKG_DESTDIR}${PKG_DBDIR}"
 > +	PKG_REFCOUNT_DBDIR="${PKG_DESTDIR}${PKG_REFCOUNT_DBDIR}"
 > +	PKG_REFCOUNT_DIRS_DBDIR="${PKG_DESTDIR}${PKG_REFCOUNT_DIRS_DBDIR}"
 > +fi

 What is PKG_DESTDIR?

 -- 
 OBATA Akio / obache@NetBSD.org

From: Thomas Cort <tcort@minix3.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/45046: mk/* minix support
Date: Sat, 11 Jun 2011 04:48:11 -0400

 > =A0> +. =A0elif ${OPSYS} =3D=3D "Minix"
 > =A0> +X11BASE?=3D =A0 ${LOCALBASE}/X11R6
 >
 > =A0Where is it came from?

 Minix has it's own X11 package ( minix/x11 ) which installs to
 /usr/X11R6. We're currently using x11-6.8.2. Below is a link to that
 package in our source repository...

 http://git.minix3.org/?p=3Dpkgsrc.git;a=3Dtree;f=3Dminix/x11;h=3Dde0017ccf5=
 2cd9361e4550c5f1388ffab3a82f43;hb=3Drefs/heads/minix-master

 >
 > =A0> +if ${TEST} -n "${PKG_DESTDIR}"; then
 > =A0> + =A0 =A0PKG_DBDIR=3D"${PKG_DESTDIR}${PKG_DBDIR}"
 > =A0> + =A0 =A0PKG_REFCOUNT_DBDIR=3D"${PKG_DESTDIR}${PKG_REFCOUNT_DBDIR}"
 > =A0> + =A0 =A0PKG_REFCOUNT_DIRS_DBDIR=3D"${PKG_DESTDIR}${PKG_REFCOUNT_DIR=
 S_DBDIR}"
 > =A0> +fi
 >
 > =A0What is PKG_DESTDIR?

 From the author of that code, Gautam B.T.:

 PKG_DESTDIR is set by pkg_add and pkg_delete when called with the -P
 option. Without these changes packages installed using the -P option
 would have a +DIRS script that manipulates the wrong set of
 directories.

 To explain a little on what's going on: Packages have install and
 desintall scripts that are run by pkg_install tools before and after
 installation and deletion. Because of this the +DIRS script which is
 generated from the mk/pkginstall/dirs file gets executed. Now pkg_add
 can be called with -P option to ask it to install stuff in a different
 root directory. When this is done pkg_add sets the PKG_DESTDIR
 variable. Earlier, the scripts just ignored this variable and these
 changes make them honor it.

From: "OBATA Akio" <obache@netbsd.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/45046: mk/* minix support
Date: Sat, 11 Jun 2011 19:37:38 +0900

 On Sat, 11 Jun 2011 17:50:05 +0900, Thomas Cort <tcort@minix3.org> wrote:

 >  Minix has it's own X11 package ( minix/x11 ) which installs to
 >  /usr/X11R6. We're currently using x11-6.8.2. Below is a link to that
 >  package in our source repository...

 Then, it is not in ${LOCALBASE}, I feel followings:

 X11BASE=	/usr/X11R6

 >  > What is PKG_DESTDIR?
 > From the author of that code, Gautam B.T.:
 > PKG_DESTDIR is set by pkg_add and pkg_delete when called with the -P
 >  option. Without these changes packages installed using the -P option
 >  would have a +DIRS script that manipulates the wrong set of
 >  directories.

 It is not minix support matter, but general issue.
 Please not mix two issues in one PR.

 -- 
 OBATA Akio / obache@NetBSD.org

From: Thomas Cort <tcort@minix3.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/45046: mk/* minix support
Date: Mon, 13 Jun 2011 12:30:41 -0400

 >> =A0Minix has it's own X11 package ( minix/x11 ) which installs to
 >> =A0/usr/X11R6. We're currently using x11-6.8.2. Below is a link to that
 >> =A0package in our source repository...
 >
 > Then, it is not in ${LOCALBASE}, I feel followings:
 > X11BASE=3D =A0 =A0 =A0 /usr/X11R6

 I was mistaken. The original patch is correct. LOCALBASE is /usr/pkg
 and X11BASE is ${LOCALBASE}/X11R6 (i.e. /usr/pkg/X11R6).

 >>> What is PKG_DESTDIR?
 >> From the author of that code, Gautam B.T.:
 >> PKG_DESTDIR is set by pkg_add and pkg_delete when called with the -P
 >> =A0option. Without these changes packages installed using the -P option
 >> =A0would have a +DIRS script that manipulates the wrong set of
 >> =A0directories.
 >
 > =A0It is not minix support matter, but general issue.
 > =A0Please not mix two issues in one PR.

 Sorry. I'll split up the patch and create a separate PR for the
 PKG_DESTDIR stuff.

From: Thomas Cort <tcort@minix3.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/45046: mk/* minix support
Date: Fri, 17 Jun 2011 11:10:09 -0400

 > It is not minix support matter, but general issue.
 > Please not mix two issues in one PR.

 The PKG_DESTDIR patch has been moved to pkg/45079.

 Below are the Minix specific changes to mk/* minus the PKG_DESTDIR stuff that
 was moved to the other PR. Other than that, the patch is the same as
 originally submitted.


 diff --git a/mk/bsd.pkg.mk b/mk/bsd.pkg.mk
 index 094f902..874dcdd 100644
 --- a/mk/bsd.pkg.mk
 +++ b/mk/bsd.pkg.mk
 @@ -482,7 +482,7 @@ PKG_FAIL_REASON+= "${PKGNAME} is restricted:" \
  PKG_FAIL_REASON+= "${PKGNAME} may not be built, because it utilizes strong cryptography"
  .    endif
  .  endif
 -.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE})
 +.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE}) && (${OPSYS} != "Minix")
  PKG_FAIL_REASON+= "${PKGNAME} uses X11, but ${X11BASE} not found"
  .  endif
  .  if defined(BROKEN)
 @@ -647,7 +647,11 @@ _BIN_INSTALL_FLAGS+=	-A
  .endif
  _BIN_INSTALL_FLAGS+=	${PKG_ARGS_ADD}

 +.if ${OPSYS} == "Minix"
 +_SHORT_UNAME_R=        ${:!${UNAME} -r!:} # full uname -r output
 +.else
  _SHORT_UNAME_R=	${:!${UNAME} -r!:C@\.([0-9]*)[_.-].*@.\1@} # n.n[_.]anything => n.n
 +.endif

  .include "install/bin-install.mk"

 diff --git a/mk/bsd.prefs.mk b/mk/bsd.prefs.mk
 index 46e3222..cefe6c9 100644
 --- a/mk/bsd.prefs.mk
 +++ b/mk/bsd.prefs.mk
 @@ -279,6 +279,17 @@ LOWER_VENDOR?=		sun
  LOWER_OPSYS?=		solaris
  LOWER_OPSYS_VERSUFFIX=	2

 +.elif ${OPSYS} == "Minix"
 +OS_VERSION!= echo `${UNAME} -v`
 +LOWER_OS_VERSION= OS_VERSION
 +LOWER_ARCH!=		${UNAME} -p
 +MACHINE_ARCH?=		${LOWER_ARCH}
 +.if ${MACHINE_ARCH} == "unknown"
 +MACHINE_ARCH=		${LOWER_ARCH}
 +.endif
 +LOWER_VENDOR?=pc
 +LOWER_OPSYS:=		${OPSYS:tl}
 +CPPFLAGS+=	-D_MINIX -D_POSIX_SOURCE
  .elif !defined(LOWER_OPSYS)
  LOWER_OPSYS:=		${OPSYS:tl}
  .endif
 @@ -549,6 +560,8 @@ X11BASE?=	/usr
  .  elif !empty(MACHINE_PLATFORM:MDarwin-9.*-*) || \
          !empty(MACHINE_PLATFORM:MDarwin-??.*-*)
  X11BASE?=	/usr/X11
 +.  elif ${OPSYS} == "Minix"
 +X11BASE?=	${LOCALBASE}/X11R6
  .  elif exists(/usr/X11R7/lib/libX11.so)
  X11BASE?=	/usr/X11R7
  .  else
 diff --git a/mk/buildlink3/imake-check b/mk/buildlink3/imake-check
 index c337d20..cc73165 100755
 --- a/mk/buildlink3/imake-check
 +++ b/mk/buildlink3/imake-check
 @@ -86,8 +86,8 @@ then
  fi

  # Run imake to process the Imakefile.
 -${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config -s - |
 -${IMAKE_MAKE} -f - builtin-test |
 +${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config
 +${IMAKE_MAKE} builtin-test |
  ${GREP} -q yes
  exitcode="$?"

 diff --git a/mk/fetch/sites.mk b/mk/fetch/sites.mk
 index 169f880..3315ffe 100644
 --- a/mk/fetch/sites.mk
 +++ b/mk/fetch/sites.mk
 @@ -465,3 +465,5 @@ MASTER_SITE_BACKUP?=	\
  	ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/ \
  	http://ftp.NetBSD.org/pub/pkgsrc/distfiles/ \
  	ftp://ftp.FreeBSD.org/pub/FreeBSD/distfiles/
 +
 +MASTER_SITE_MINIX=http://www.minix3.org/distfiles-minix/
 diff --git a/mk/install/bin-install.mk b/mk/install/bin-install.mk
 index 0400f8f..60e3785 100644
 --- a/mk/install/bin-install.mk
 +++ b/mk/install/bin-install.mk
 @@ -32,6 +32,8 @@
  .if ${OPSYS} == "NetBSD"
  BINPKG_SITES?= \
  	ftp://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/$${arch}/$${rel}
 +.elif ${OPSYS} == "Minix"
 +BINPKG_SITES?= ftp://ftp.minix3.org/pub/minix/packages/$${rel}/$${arch}
  .elif ${OPSYS} == "DragonFly"
  BINPKG_SITES?= \
  	http://mirror-master.dragonflybsd.org/packages/$${arch}/DragonFly-$${rel}/stable
 diff --git a/mk/platform/Minix.mk b/mk/platform/Minix.mk
 new file mode 100644
 index 0000000..a87c1c1
 --- /dev/null
 +++ b/mk/platform/Minix.mk
 @@ -0,0 +1,87 @@
 +# $NetBSD: Linux.mk,v 1.37 2010/03/18 22:46:01 sbd Exp $
 +#
 +# Variable definitions for the Minix operating system.
 +
 +ECHO_N?=	${ECHO} -n
 +.if !defined(X11_TYPE) || ${X11_TYPE} == "native"
 +IMAKE_MAKE?=	${MAKE}	# program which gets invoked by imake
 +.endif
 +IMAKEOPTS+=	-DBuildHtmlManPages=NO
 +PKGLOCALEDIR?=	share
 +PS?=		/usr/bin/ps
 +# XXX: default from defaults/mk.conf.  Verify/correct for this platform
 +# and remove this comment.
 +SU?=		/usr/bin/su
 +TYPE?=		type			# Shell builtin
 +
 +CPP_PRECOMP_FLAGS?=	# unset
 +DEF_UMASK?=		022
 +DEFAULT_SERIAL_DEVICE?=	/dev/null
 +EXPORT_SYMBOLS_LDFLAGS?=	# Don't add symbols to the dynamic symbol table
 +GROUPADD?=
 +NOLOGIN?=		/bin/false
 +PKG_TOOLS_BIN?=		${LOCALBASE}/sbin
 +ROOT_CMD?=		${SU} - root -c
 +ROOT_GROUP?=	operator
 +ROOT_USER?=		root
 +SERIAL_DEVICES?=	/dev/null
 +USERADD?=		/usr/bin/useradd
 +ULIMIT_CMD_datasize?=	: 
 +
 +# imake installs manpages in weird places
 +# these values from /usr/X11R6/lib/X11/config/linux.cf
 +IMAKE_MAN_SOURCE_PATH=	man/man
 +IMAKE_MAN_SUFFIX=	1x
 +IMAKE_LIBMAN_SUFFIX=	3x
 +IMAKE_KERNMAN_SUFFIX=	4
 +IMAKE_FILEMAN_SUFFIX=	5x
 +IMAKE_GAMEMAN_SUFFIX=	6
 +IMAKE_MISCMAN_SUFFIX=	7
 +IMAKE_MAN_DIR=		${IMAKE_MAN_SOURCE_PATH}1
 +IMAKE_LIBMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}3
 +IMAKE_KERNMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}4
 +IMAKE_FILEMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}5
 +IMAKE_GAMEMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}6
 +IMAKE_MISCMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}7
 +IMAKE_MANNEWSUFFIX=	${IMAKE_MAN_SUFFIX}
 +IMAKE_MANINSTALL?=	maninstall catinstall
 +
 +_OPSYS_HAS_INET6=	no	# IPv6 is not standard
 +_OPSYS_HAS_JAVA=	no	# Java is not standard
 +_OPSYS_HAS_MANZ=	no	# no MANZ for gzipping of man pages
 +_OPSYS_HAS_OSSAUDIO=	no	# libossaudio is available
 +_OPSYS_PERL_REQD=		# no base version of perl required
 +_OPSYS_PTHREAD_AUTO=	no	# -lpthread needed for pthreads
 +_OPSYS_SHLIB_TYPE=		a.out # XXX Is this right?
 +_PATCH_CAN_BACKUP=	yes	# native patch(1) can make backups
 +_PATCH_BACKUP_ARG?= 	-b -V simple --suffix	# switch to patch(1) for backup suffix
 +_USE_RPATH=		no	# add rpath to LDFLAGS
 +
 +# flags passed to the linker to extract all symbols from static archives.
 +# this is GNU ld.
 +_OPSYS_WHOLE_ARCHIVE_FLAG=	-Wl,--whole-archive
 +_OPSYS_NO_WHOLE_ARCHIVE_FLAG=	-Wl,--no-whole-archive
 +
 +_STRIPFLAG_CC?=		${_INSTALL_UNSTRIPPED:D:U-s}	# cc(1) option to strip
 +_STRIPFLAG_INSTALL?=	${_INSTALL_UNSTRIPPED:D:U-s}	# install(1) option to strip
 +
 +_OPSYS_CAN_CHECK_SHLIBS=	no # can't use readelf in check/bsd.check-vars.mk
 +
 +# check for maximum command line length and set it in configure's environment,
 +# to avoid a test required by the libtool script that takes forever.
 +# FIXME: Adjust to work on this system and enable the lines below.
 +#_OPSYS_MAX_CMDLEN_CMD=	/sbin/sysctl -n kern.argmax
 +
 +# If games are to be installed setgid, then SETGIDGAME is set to 'yes'
 +# (it defaults to 'no' as per defaults/mk.conf).
 +# Set the group and mode to meaningful values in that case (defaults to
 +# BINOWN, BINGRP and BINMODE as per defaults/mk.conf).
 +# FIXME: Adjust to work on this system and enable the lines below.
 +#.if !(empty(SETGIDGAME:M[yY][eE][sS]))
 +#GAMES_USER=		games
 +#GAMES_GROUP=		games
 +#GAMEOWN=		${GAMES_USER}
 +#GAMEGRP=		${GAMES_GROUP}
 +#GAMEMODE=		2555
 +#GAMEDIRMODE=		0775
 +#.endif
 diff --git a/mk/tools/tools.Minix.mk b/mk/tools/tools.Minix.mk
 new file mode 100644
 index 0000000..5d91e77
 --- /dev/null
 +++ b/mk/tools/tools.Minix.mk
 @@ -0,0 +1,64 @@
 +# $NetBSD: tools.Linux.mk,v 1.47 2010/02/13 08:30:59 obache Exp $
 +#
 +# System-supplied tools for the Minix operating system.
 +
 +#System supplied tools
 +TOOLS_PLATFORM.[?=		/bin/[
 +TOOLS_PLATFORM.awk?=		/usr/bin/awk
 +TOOLS_PLATFORM.basename?=	/usr/bin/basename
 +TOOLS_PLATFORM.bzcat?=		/usr/bin/bzcat
 +TOOLS_PLATFORM.cat?=		/bin/cat
 +TOOLS_PLATFORM.bzip2?=		/usr/bin/bzip2
 +TOOLS_PLATFORM.chgrp?=		/usr/bin/chgrp
 +TOOLS_PLATFORM.chmod?=		/usr/bin/chmod
 +TOOLS_PLATFORM.chown?=		/usr/bin/chown
 +TOOLS_PLATFORM.cmp?=		/usr/bin/cmp
 +TOOLS_PLATFORM.cp?=		/bin/cp 
 +TOOLS_PLATFORM.cut?=		/usr/bin/cut
 +TOOLS_PLATFORM.date?=		/bin/date
 +TOOLS_PLATFORM.dirname?=	/usr/bin/dirname
 +TOOLS_PLATFORM.echo?=		/bin/echo
 +TOOLS_PLATFORM.env?=		/usr/bin/env
 +TOOLS_PLATFORM.expr?=		/bin/expr
 +TOOLS_PLATFORM.false?=		/bin/false
 +TOOLS_PLATFORM.file?=		/usr/bin/file
 +TOOLS_PLATFORM.find?=		/usr/bin/find
 +TOOLS_PLATFORM.head?=		/usr/bin/head
 +TOOLS_PLATFORM.id?=		/usr/bin/id
 +TOOLS_PLATFORM.install?=	/bin/install
 +TOOLS_PLATFORM.ln?=		/bin/ln
 +TOOLS_PLATFORM.ls?=		/bin/ls
 +TOOLS_PLATFORM.m4?=		/usr/bin/m4
 +TOOLS_PLATFORM.mail?=		/usr/bin/mail
 +TOOLS_PLATFORM.mkdir?=		/usr/bin/mkdir -p
 +TOOLS_PLATFORM.mv?=		/bin/mv
 +TOOLS_PLATFORM.nice?=		/usr/bin/nice
 +TOOLS_PLATFORM.nroff?=		/usr/bin/nroff
 +TOOLS_PLATFORM.pwd?=		/bin/pwd
 +TOOLS_PLATFORM.rm?=		/bin/rm
 +TOOLS_PLATFORM.rmdir?=		/bin/rmdir
 +TOOLS_PLATFORM.sed?=	/bin/sed
 +TOOLS_PLATFORM.sh?=		/bin/sh
 +TOOLS_PLATFORM.sleep?=		/usr/bin/sleep
 +TOOLS_PLATFORM.strip?=		/usr/bin/strip
 +TOOLS_PLATFORM.tail?=		/usr/bin/tail
 +TOOLS_PLATFORM.tar?=		/usr/bin/tar
 +TOOLS_PLATFORM.bsdtar?=		/usr/bin/bsdtar
 +TOOLS_PLATFORM.fetch?=		/usr/bin/fetch
 +TOOLS_PLATFORM.tee?=		/usr/bin/tee
 +TOOLS_PLATFORM.test?=		/bin/test
 +TOOLS_PLATFORM.tr?=		/usr/bin/tr
 +TOOLS_PLATFORM.true?=		/bin/true
 +TOOLS_PLATFORM.tsort?=		/usr/bin/tsort
 +TOOLS_PLATFORM.wc?=		/usr/bin/wc
 +TOOLS_PLATFORM.xargs?=		/usr/bin/xargs
 +TOOLS_PLATFORM.yacc?=		/usr/bin/yacc
 +TOOLS_PLATFORM.grep?=		/usr/bin/grep
 +TOOLS_PLATFORM.egrep?=		/usr/bin/egrep
 +TOOLS_PLATFORM.fgrep?=		/usr/bin/fgrep
 +TOOLS_PLATFORM.printf?=		/usr/bin/printf
 +TOOLS_PLATFORM.touch?=		/usr/bin/touch
 +TOOLS_PLATFORM.hostname?= /usr/bin/hostname
 +TOOLS_PLATFORM.patch?=		/usr/bin/patch
 +TOOLS_PLATFORM.diff?=	/usr/bin/diff
 +TOOLS_PLATFORM.sort?=	/usr/bin/sort

From: Joerg Sonnenberger <joerg@britannica.bec.de>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: pkg/45046: mk/* minix support
Date: Fri, 17 Jun 2011 19:00:49 +0200

 On Fri, Jun 17, 2011 at 03:20:04PM +0000, Thomas Cort wrote:
 >  diff --git a/mk/bsd.pkg.mk b/mk/bsd.pkg.mk
 >  index 094f902..874dcdd 100644
 >  --- a/mk/bsd.pkg.mk
 >  +++ b/mk/bsd.pkg.mk
 >  @@ -482,7 +482,7 @@ PKG_FAIL_REASON+= "${PKGNAME} is restricted:" \
 >   PKG_FAIL_REASON+= "${PKGNAME} may not be built, because it utilizes strong cryptography"
 >   .    endif
 >   .  endif
 >  -.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE})
 >  +.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE}) && (${OPSYS} != "Minix")
 >   PKG_FAIL_REASON+= "${PKGNAME} uses X11, but ${X11BASE} not found"
 >   .  endif
 >   .  if defined(BROKEN)

 Why do you need this? It sounds wrong to remove this check as it
 basically just indicates that your X11BASE setting is wrong (or the
 X11_TYPE).

 >  @@ -647,7 +647,11 @@ _BIN_INSTALL_FLAGS+=	-A
 >   .endif
 >   _BIN_INSTALL_FLAGS+=	${PKG_ARGS_ADD}
 >   
 >  +.if ${OPSYS} == "Minix"
 >  +_SHORT_UNAME_R=        ${:!${UNAME} -r!:} # full uname -r output
 >  +.else
 >   _SHORT_UNAME_R=	${:!${UNAME} -r!:C@\.([0-9]*)[_.-].*@.\1@} # n.n[_.]anything => n.n
 >  +.endif

 This is only used by BINPKG_SITES and that doesn't provide a value for
 !NetBSD && !DragonFly. If your own definition wants to use the full
 uname -r output, just adjust it accordingly.

 >  diff --git a/mk/buildlink3/imake-check b/mk/buildlink3/imake-check
 >  index c337d20..cc73165 100755
 >  --- a/mk/buildlink3/imake-check
 >  +++ b/mk/buildlink3/imake-check
 >  @@ -86,8 +86,8 @@ then
 >   fi
 >   
 >   # Run imake to process the Imakefile.
 >  -${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config -s - |
 >  -${IMAKE_MAKE} -f - builtin-test |
 >  +${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config
 >  +${IMAKE_MAKE} builtin-test |
 >   ${GREP} -q yes
 >   exitcode="$?"
 >   

 I don't think this change is acceptable without a proper explanation
 either.

 >  diff --git a/mk/fetch/sites.mk b/mk/fetch/sites.mk
 >  index 169f880..3315ffe 100644
 >  --- a/mk/fetch/sites.mk
 >  +++ b/mk/fetch/sites.mk
 >  @@ -465,3 +465,5 @@ MASTER_SITE_BACKUP?=	\
 >   	ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/ \
 >   	http://ftp.NetBSD.org/pub/pkgsrc/distfiles/ \
 >   	ftp://ftp.FreeBSD.org/pub/FreeBSD/distfiles/
 >  +
 >  +MASTER_SITE_MINIX=http://www.minix3.org/distfiles-minix/

 What is it used for?

 >  diff --git a/mk/install/bin-install.mk b/mk/install/bin-install.mk
 >  index 0400f8f..60e3785 100644
 >  --- a/mk/install/bin-install.mk
 >  +++ b/mk/install/bin-install.mk
 >  @@ -32,6 +32,8 @@
 >   .if ${OPSYS} == "NetBSD"
 >   BINPKG_SITES?= \
 >   	ftp://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/$${arch}/$${rel}
 >  +.elif ${OPSYS} == "Minix"
 >  +BINPKG_SITES?= ftp://ftp.minix3.org/pub/minix/packages/$${rel}/$${arch}
 >   .elif ${OPSYS} == "DragonFly"
 >   BINPKG_SITES?= \
 >   	http://mirror-master.dragonflybsd.org/packages/$${arch}/DragonFly-$${rel}/stable

 See comment earlier.

 Joerg

From: Thomas Cort <tcort@minix3.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/45046: mk/* minix support
Date: Sat, 18 Jun 2011 11:08:31 -0400

 >>  diff --git a/mk/bsd.pkg.mk b/mk/bsd.pkg.mk

 >>  -.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE})
 >>  +.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE}) && (${OPSYS} != "Minix")

 > Why do you need this? It sounds wrong to remove this check as it
 > basically just indicates that your X11BASE setting is wrong (or the
 > X11_TYPE).

 It is a workaround while we port modular Xorg. pkgsrc expects you to either
 use the modular xserver or a native x11 and specify x11base. Modular xserver
 does not build on Minix, and we do not want the user to install the xserver
 separately (i.e we want xserver to be installed as a normal package). So we
 have our own x11 package in our copy of the pkgsrc tree. We add the minix specific
 x11 package as a dependency to packages that use x11. We set X11_TYPE
 to native, so that pkgsrc does not trigger building modular-xorg-xserver.
 However X11BASE will not exist when that file is sourced, hence the check.
 The right solution would probably be to create a new X11_TYPE and use it,
 but considering we will be moving to modular-xorg-xserver, we just use this
 workaround.


 >>  +.if ${OPSYS} == "Minix"
 >>  +_SHORT_UNAME_R=        ${:!${UNAME} -r!:} # full uname -r output
 >>  +.else
 >>   _SHORT_UNAME_R=	${:!${UNAME} -r!:C@\.([0-9]*)[_.-].*@.\1@} # n.n[_.]anything => n.n
 >>  +.endif

 > This is only used by BINPKG_SITES and that doesn't provide a value for
 > !NetBSD && !DragonFly. If your own definition wants to use the full
 > uname -r output, just adjust it accordingly.

 I've reverted the change above and set BINPKG_SITES to this:
 ftp://ftp.minix3.org/pub/minix/packages/$$(${UNAME} -r)/$${arch}
 An updated patch is included that the end of this e-mail.



 >>  diff --git a/mk/buildlink3/imake-check b/mk/buildlink3/imake-check

 >>   # Run imake to process the Imakefile.
 >>  -${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config -s - |
 >>  -${IMAKE_MAKE} -f - builtin-test |
 >>  +${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config
 >>  +${IMAKE_MAKE} builtin-test |

 > I don't think this change is acceptable without a proper explanation
 > either.

 Imake was segfaulting if the output was set to '-'.



 >> diff --git a/mk/fetch/sites.mk b/mk/fetch/sites.mk

 >>  +MASTER_SITE_MINIX=http://www.minix3.org/distfiles-minix/

 > What is it used for?

 There are several minix specific packages that we created.
 The distfiles for those are hosted on MASTER_SITE_MINIX. In the
 Makefiles for those packages, we set MASTER_SITES= ${MASTER_SITE_MINIX}



 Here is the updated patch with the changes mentioned
 above (i.e. _SHORT_UNAME_R and BINPKG_SITES):

 diff --git a/mk/bsd.pkg.mk b/mk/bsd.pkg.mk
 index 094f902..2f7b7d2 100644
 --- a/mk/bsd.pkg.mk
 +++ b/mk/bsd.pkg.mk
 @@ -482,7 +482,7 @@ PKG_FAIL_REASON+= "${PKGNAME} is restricted:" \
  PKG_FAIL_REASON+= "${PKGNAME} may not be built, because it utilizes strong cryptography"
  .    endif
  .  endif
 -.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE})
 +.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE}) && (${OPSYS} != "Minix")
  PKG_FAIL_REASON+= "${PKGNAME} uses X11, but ${X11BASE} not found"
  .  endif
  .  if defined(BROKEN)
 diff --git a/mk/bsd.prefs.mk b/mk/bsd.prefs.mk
 index 46e3222..cefe6c9 100644
 --- a/mk/bsd.prefs.mk
 +++ b/mk/bsd.prefs.mk
 @@ -279,6 +279,17 @@ LOWER_VENDOR?=		sun
  LOWER_OPSYS?=		solaris
  LOWER_OPSYS_VERSUFFIX=	2

 +.elif ${OPSYS} == "Minix"
 +OS_VERSION!= echo `${UNAME} -v`
 +LOWER_OS_VERSION= OS_VERSION
 +LOWER_ARCH!=		${UNAME} -p
 +MACHINE_ARCH?=		${LOWER_ARCH}
 +.if ${MACHINE_ARCH} == "unknown"
 +MACHINE_ARCH=		${LOWER_ARCH}
 +.endif
 +LOWER_VENDOR?=pc
 +LOWER_OPSYS:=		${OPSYS:tl}
 +CPPFLAGS+=	-D_MINIX -D_POSIX_SOURCE
  .elif !defined(LOWER_OPSYS)
  LOWER_OPSYS:=		${OPSYS:tl}
  .endif
 @@ -549,6 +560,8 @@ X11BASE?=	/usr
  .  elif !empty(MACHINE_PLATFORM:MDarwin-9.*-*) || \
          !empty(MACHINE_PLATFORM:MDarwin-??.*-*)
  X11BASE?=	/usr/X11
 +.  elif ${OPSYS} == "Minix"
 +X11BASE?=	${LOCALBASE}/X11R6
  .  elif exists(/usr/X11R7/lib/libX11.so)
  X11BASE?=	/usr/X11R7
  .  else
 diff --git a/mk/buildlink3/imake-check b/mk/buildlink3/imake-check
 index c337d20..cc73165 100755
 --- a/mk/buildlink3/imake-check
 +++ b/mk/buildlink3/imake-check
 @@ -86,8 +86,8 @@ then
  fi

  # Run imake to process the Imakefile.
 -${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config -s - |
 -${IMAKE_MAKE} -f - builtin-test |
 +${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config
 +${IMAKE_MAKE} builtin-test |
  ${GREP} -q yes
  exitcode="$?"

 diff --git a/mk/fetch/sites.mk b/mk/fetch/sites.mk
 index 169f880..3315ffe 100644
 --- a/mk/fetch/sites.mk
 +++ b/mk/fetch/sites.mk
 @@ -465,3 +465,5 @@ MASTER_SITE_BACKUP?=	\
  	ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/ \
  	http://ftp.NetBSD.org/pub/pkgsrc/distfiles/ \
  	ftp://ftp.FreeBSD.org/pub/FreeBSD/distfiles/
 +
 +MASTER_SITE_MINIX=http://www.minix3.org/distfiles-minix/
 diff --git a/mk/install/bin-install.mk b/mk/install/bin-install.mk
 index 0400f8f..814006d 100644
 --- a/mk/install/bin-install.mk
 +++ b/mk/install/bin-install.mk
 @@ -32,6 +32,9 @@
  .if ${OPSYS} == "NetBSD"
  BINPKG_SITES?= \
  	ftp://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/$${arch}/$${rel}
 +.elif ${OPSYS} == "Minix"
 +BINPKG_SITES?= \
 +	ftp://ftp.minix3.org/pub/minix/packages/$$(${UNAME} -r)/$${arch}
  .elif ${OPSYS} == "DragonFly"
  BINPKG_SITES?= \
  	http://mirror-master.dragonflybsd.org/packages/$${arch}/DragonFly-$${rel}/stable
 diff --git a/mk/platform/Minix.mk b/mk/platform/Minix.mk
 new file mode 100644
 index 0000000..a87c1c1
 --- /dev/null
 +++ b/mk/platform/Minix.mk
 @@ -0,0 +1,87 @@
 +# $NetBSD: Linux.mk,v 1.37 2010/03/18 22:46:01 sbd Exp $
 +#
 +# Variable definitions for the Minix operating system.
 +
 +ECHO_N?=	${ECHO} -n
 +.if !defined(X11_TYPE) || ${X11_TYPE} == "native"
 +IMAKE_MAKE?=	${MAKE}	# program which gets invoked by imake
 +.endif
 +IMAKEOPTS+=	-DBuildHtmlManPages=NO
 +PKGLOCALEDIR?=	share
 +PS?=		/usr/bin/ps
 +# XXX: default from defaults/mk.conf.  Verify/correct for this platform
 +# and remove this comment.
 +SU?=		/usr/bin/su
 +TYPE?=		type			# Shell builtin
 +
 +CPP_PRECOMP_FLAGS?=	# unset
 +DEF_UMASK?=		022
 +DEFAULT_SERIAL_DEVICE?=	/dev/null
 +EXPORT_SYMBOLS_LDFLAGS?=	# Don't add symbols to the dynamic symbol table
 +GROUPADD?=
 +NOLOGIN?=		/bin/false
 +PKG_TOOLS_BIN?=		${LOCALBASE}/sbin
 +ROOT_CMD?=		${SU} - root -c
 +ROOT_GROUP?=	operator
 +ROOT_USER?=		root
 +SERIAL_DEVICES?=	/dev/null
 +USERADD?=		/usr/bin/useradd
 +ULIMIT_CMD_datasize?=	: 
 +
 +# imake installs manpages in weird places
 +# these values from /usr/X11R6/lib/X11/config/linux.cf
 +IMAKE_MAN_SOURCE_PATH=	man/man
 +IMAKE_MAN_SUFFIX=	1x
 +IMAKE_LIBMAN_SUFFIX=	3x
 +IMAKE_KERNMAN_SUFFIX=	4
 +IMAKE_FILEMAN_SUFFIX=	5x
 +IMAKE_GAMEMAN_SUFFIX=	6
 +IMAKE_MISCMAN_SUFFIX=	7
 +IMAKE_MAN_DIR=		${IMAKE_MAN_SOURCE_PATH}1
 +IMAKE_LIBMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}3
 +IMAKE_KERNMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}4
 +IMAKE_FILEMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}5
 +IMAKE_GAMEMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}6
 +IMAKE_MISCMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}7
 +IMAKE_MANNEWSUFFIX=	${IMAKE_MAN_SUFFIX}
 +IMAKE_MANINSTALL?=	maninstall catinstall
 +
 +_OPSYS_HAS_INET6=	no	# IPv6 is not standard
 +_OPSYS_HAS_JAVA=	no	# Java is not standard
 +_OPSYS_HAS_MANZ=	no	# no MANZ for gzipping of man pages
 +_OPSYS_HAS_OSSAUDIO=	no	# libossaudio is available
 +_OPSYS_PERL_REQD=		# no base version of perl required
 +_OPSYS_PTHREAD_AUTO=	no	# -lpthread needed for pthreads
 +_OPSYS_SHLIB_TYPE=		a.out # XXX Is this right?
 +_PATCH_CAN_BACKUP=	yes	# native patch(1) can make backups
 +_PATCH_BACKUP_ARG?= 	-b -V simple --suffix	# switch to patch(1) for backup suffix
 +_USE_RPATH=		no	# add rpath to LDFLAGS
 +
 +# flags passed to the linker to extract all symbols from static archives.
 +# this is GNU ld.
 +_OPSYS_WHOLE_ARCHIVE_FLAG=	-Wl,--whole-archive
 +_OPSYS_NO_WHOLE_ARCHIVE_FLAG=	-Wl,--no-whole-archive
 +
 +_STRIPFLAG_CC?=		${_INSTALL_UNSTRIPPED:D:U-s}	# cc(1) option to strip
 +_STRIPFLAG_INSTALL?=	${_INSTALL_UNSTRIPPED:D:U-s}	# install(1) option to strip
 +
 +_OPSYS_CAN_CHECK_SHLIBS=	no # can't use readelf in check/bsd.check-vars.mk
 +
 +# check for maximum command line length and set it in configure's environment,
 +# to avoid a test required by the libtool script that takes forever.
 +# FIXME: Adjust to work on this system and enable the lines below.
 +#_OPSYS_MAX_CMDLEN_CMD=	/sbin/sysctl -n kern.argmax
 +
 +# If games are to be installed setgid, then SETGIDGAME is set to 'yes'
 +# (it defaults to 'no' as per defaults/mk.conf).
 +# Set the group and mode to meaningful values in that case (defaults to
 +# BINOWN, BINGRP and BINMODE as per defaults/mk.conf).
 +# FIXME: Adjust to work on this system and enable the lines below.
 +#.if !(empty(SETGIDGAME:M[yY][eE][sS]))
 +#GAMES_USER=		games
 +#GAMES_GROUP=		games
 +#GAMEOWN=		${GAMES_USER}
 +#GAMEGRP=		${GAMES_GROUP}
 +#GAMEMODE=		2555
 +#GAMEDIRMODE=		0775
 +#.endif
 diff --git a/mk/tools/tools.Minix.mk b/mk/tools/tools.Minix.mk
 new file mode 100644
 index 0000000..5d91e77
 --- /dev/null
 +++ b/mk/tools/tools.Minix.mk
 @@ -0,0 +1,64 @@
 +# $NetBSD: tools.Linux.mk,v 1.47 2010/02/13 08:30:59 obache Exp $
 +#
 +# System-supplied tools for the Minix operating system.
 +
 +#System supplied tools
 +TOOLS_PLATFORM.[?=		/bin/[
 +TOOLS_PLATFORM.awk?=		/usr/bin/awk
 +TOOLS_PLATFORM.basename?=	/usr/bin/basename
 +TOOLS_PLATFORM.bzcat?=		/usr/bin/bzcat
 +TOOLS_PLATFORM.cat?=		/bin/cat
 +TOOLS_PLATFORM.bzip2?=		/usr/bin/bzip2
 +TOOLS_PLATFORM.chgrp?=		/usr/bin/chgrp
 +TOOLS_PLATFORM.chmod?=		/usr/bin/chmod
 +TOOLS_PLATFORM.chown?=		/usr/bin/chown
 +TOOLS_PLATFORM.cmp?=		/usr/bin/cmp
 +TOOLS_PLATFORM.cp?=		/bin/cp 
 +TOOLS_PLATFORM.cut?=		/usr/bin/cut
 +TOOLS_PLATFORM.date?=		/bin/date
 +TOOLS_PLATFORM.dirname?=	/usr/bin/dirname
 +TOOLS_PLATFORM.echo?=		/bin/echo
 +TOOLS_PLATFORM.env?=		/usr/bin/env
 +TOOLS_PLATFORM.expr?=		/bin/expr
 +TOOLS_PLATFORM.false?=		/bin/false
 +TOOLS_PLATFORM.file?=		/usr/bin/file
 +TOOLS_PLATFORM.find?=		/usr/bin/find
 +TOOLS_PLATFORM.head?=		/usr/bin/head
 +TOOLS_PLATFORM.id?=		/usr/bin/id
 +TOOLS_PLATFORM.install?=	/bin/install
 +TOOLS_PLATFORM.ln?=		/bin/ln
 +TOOLS_PLATFORM.ls?=		/bin/ls
 +TOOLS_PLATFORM.m4?=		/usr/bin/m4
 +TOOLS_PLATFORM.mail?=		/usr/bin/mail
 +TOOLS_PLATFORM.mkdir?=		/usr/bin/mkdir -p
 +TOOLS_PLATFORM.mv?=		/bin/mv
 +TOOLS_PLATFORM.nice?=		/usr/bin/nice
 +TOOLS_PLATFORM.nroff?=		/usr/bin/nroff
 +TOOLS_PLATFORM.pwd?=		/bin/pwd
 +TOOLS_PLATFORM.rm?=		/bin/rm
 +TOOLS_PLATFORM.rmdir?=		/bin/rmdir
 +TOOLS_PLATFORM.sed?=	/bin/sed
 +TOOLS_PLATFORM.sh?=		/bin/sh
 +TOOLS_PLATFORM.sleep?=		/usr/bin/sleep
 +TOOLS_PLATFORM.strip?=		/usr/bin/strip
 +TOOLS_PLATFORM.tail?=		/usr/bin/tail
 +TOOLS_PLATFORM.tar?=		/usr/bin/tar
 +TOOLS_PLATFORM.bsdtar?=		/usr/bin/bsdtar
 +TOOLS_PLATFORM.fetch?=		/usr/bin/fetch
 +TOOLS_PLATFORM.tee?=		/usr/bin/tee
 +TOOLS_PLATFORM.test?=		/bin/test
 +TOOLS_PLATFORM.tr?=		/usr/bin/tr
 +TOOLS_PLATFORM.true?=		/bin/true
 +TOOLS_PLATFORM.tsort?=		/usr/bin/tsort
 +TOOLS_PLATFORM.wc?=		/usr/bin/wc
 +TOOLS_PLATFORM.xargs?=		/usr/bin/xargs
 +TOOLS_PLATFORM.yacc?=		/usr/bin/yacc
 +TOOLS_PLATFORM.grep?=		/usr/bin/grep
 +TOOLS_PLATFORM.egrep?=		/usr/bin/egrep
 +TOOLS_PLATFORM.fgrep?=		/usr/bin/fgrep
 +TOOLS_PLATFORM.printf?=		/usr/bin/printf
 +TOOLS_PLATFORM.touch?=		/usr/bin/touch
 +TOOLS_PLATFORM.hostname?= /usr/bin/hostname
 +TOOLS_PLATFORM.patch?=		/usr/bin/patch
 +TOOLS_PLATFORM.diff?=	/usr/bin/diff
 +TOOLS_PLATFORM.sort?=	/usr/bin/sort


From: Thomas Cort <tcort@minix3.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/45046: mk/* minix support
Date: Tue, 21 Jun 2011 08:07:07 -0400

 Here's an update to the patch. We changed _OPSYS_SHLIB_TYPE to "none"
 since Minix doesn't support shared libraries.

 diff --git a/mk/bsd.pkg.mk b/mk/bsd.pkg.mk
 index 094f902..2f7b7d2 100644
 --- a/mk/bsd.pkg.mk
 +++ b/mk/bsd.pkg.mk
 @@ -482,7 +482,7 @@ PKG_FAIL_REASON+= "${PKGNAME} is restricted:" \
  PKG_FAIL_REASON+= "${PKGNAME} may not be built, because it utilizes strong cryptography"
  .    endif
  .  endif
 -.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE})
 +.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE}) && (${OPSYS} != "Minix")
  PKG_FAIL_REASON+= "${PKGNAME} uses X11, but ${X11BASE} not found"
  .  endif
  .  if defined(BROKEN)
 diff --git a/mk/bsd.prefs.mk b/mk/bsd.prefs.mk
 index 46e3222..cefe6c9 100644
 --- a/mk/bsd.prefs.mk
 +++ b/mk/bsd.prefs.mk
 @@ -279,6 +279,17 @@ LOWER_VENDOR?=		sun
  LOWER_OPSYS?=		solaris
  LOWER_OPSYS_VERSUFFIX=	2

 +.elif ${OPSYS} == "Minix"
 +OS_VERSION!= echo `${UNAME} -v`
 +LOWER_OS_VERSION= OS_VERSION
 +LOWER_ARCH!=		${UNAME} -p
 +MACHINE_ARCH?=		${LOWER_ARCH}
 +.if ${MACHINE_ARCH} == "unknown"
 +MACHINE_ARCH=		${LOWER_ARCH}
 +.endif
 +LOWER_VENDOR?=pc
 +LOWER_OPSYS:=		${OPSYS:tl}
 +CPPFLAGS+=	-D_MINIX -D_POSIX_SOURCE
  .elif !defined(LOWER_OPSYS)
  LOWER_OPSYS:=		${OPSYS:tl}
  .endif
 @@ -549,6 +560,8 @@ X11BASE?=	/usr
  .  elif !empty(MACHINE_PLATFORM:MDarwin-9.*-*) || \
          !empty(MACHINE_PLATFORM:MDarwin-??.*-*)
  X11BASE?=	/usr/X11
 +.  elif ${OPSYS} == "Minix"
 +X11BASE?=	${LOCALBASE}/X11R6
  .  elif exists(/usr/X11R7/lib/libX11.so)
  X11BASE?=	/usr/X11R7
  .  else
 diff --git a/mk/buildlink3/imake-check b/mk/buildlink3/imake-check
 index c337d20..cc73165 100755
 --- a/mk/buildlink3/imake-check
 +++ b/mk/buildlink3/imake-check
 @@ -86,8 +86,8 @@ then
  fi

  # Run imake to process the Imakefile.
 -${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config -s - |
 -${IMAKE_MAKE} -f - builtin-test |
 +${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config
 +${IMAKE_MAKE} builtin-test |
  ${GREP} -q yes
  exitcode="$?"

 diff --git a/mk/fetch/sites.mk b/mk/fetch/sites.mk
 index 169f880..3315ffe 100644
 --- a/mk/fetch/sites.mk
 +++ b/mk/fetch/sites.mk
 @@ -465,3 +465,5 @@ MASTER_SITE_BACKUP?=	\
  	ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/ \
  	http://ftp.NetBSD.org/pub/pkgsrc/distfiles/ \
  	ftp://ftp.FreeBSD.org/pub/FreeBSD/distfiles/
 +
 +MASTER_SITE_MINIX=http://www.minix3.org/distfiles-minix/
 diff --git a/mk/install/bin-install.mk b/mk/install/bin-install.mk
 index 0400f8f..814006d 100644
 --- a/mk/install/bin-install.mk
 +++ b/mk/install/bin-install.mk
 @@ -32,6 +32,9 @@
  .if ${OPSYS} == "NetBSD"
  BINPKG_SITES?= \
  	ftp://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/$${arch}/$${rel}
 +.elif ${OPSYS} == "Minix"
 +BINPKG_SITES?= \
 +	ftp://ftp.minix3.org/pub/minix/packages/$$(${UNAME} -r)/$${arch}
  .elif ${OPSYS} == "DragonFly"
  BINPKG_SITES?= \
  	http://mirror-master.dragonflybsd.org/packages/$${arch}/DragonFly-$${rel}/stable
 diff --git a/mk/platform/Minix.mk b/mk/platform/Minix.mk
 new file mode 100644
 index 0000000..e91d774
 --- /dev/null
 +++ b/mk/platform/Minix.mk
 @@ -0,0 +1,87 @@
 +# $NetBSD: Linux.mk,v 1.37 2010/03/18 22:46:01 sbd Exp $
 +#
 +# Variable definitions for the Minix operating system.
 +
 +ECHO_N?=	${ECHO} -n
 +.if !defined(X11_TYPE) || ${X11_TYPE} == "native"
 +IMAKE_MAKE?=	${MAKE}	# program which gets invoked by imake
 +.endif
 +IMAKEOPTS+=	-DBuildHtmlManPages=NO
 +PKGLOCALEDIR?=	share
 +PS?=		/usr/bin/ps
 +# XXX: default from defaults/mk.conf.  Verify/correct for this platform
 +# and remove this comment.
 +SU?=		/usr/bin/su
 +TYPE?=		type			# Shell builtin
 +
 +CPP_PRECOMP_FLAGS?=	# unset
 +DEF_UMASK?=		022
 +DEFAULT_SERIAL_DEVICE?=	/dev/null
 +EXPORT_SYMBOLS_LDFLAGS?=	# Don't add symbols to the dynamic symbol table
 +GROUPADD?=
 +NOLOGIN?=		/bin/false
 +PKG_TOOLS_BIN?=		${LOCALBASE}/sbin
 +ROOT_CMD?=		${SU} - root -c
 +ROOT_GROUP?=	operator
 +ROOT_USER?=		root
 +SERIAL_DEVICES?=	/dev/null
 +USERADD?=		/usr/bin/useradd
 +ULIMIT_CMD_datasize?=	: 
 +
 +# imake installs manpages in weird places
 +# these values from /usr/X11R6/lib/X11/config/linux.cf
 +IMAKE_MAN_SOURCE_PATH=	man/man
 +IMAKE_MAN_SUFFIX=	1x
 +IMAKE_LIBMAN_SUFFIX=	3x
 +IMAKE_KERNMAN_SUFFIX=	4
 +IMAKE_FILEMAN_SUFFIX=	5x
 +IMAKE_GAMEMAN_SUFFIX=	6
 +IMAKE_MISCMAN_SUFFIX=	7
 +IMAKE_MAN_DIR=		${IMAKE_MAN_SOURCE_PATH}1
 +IMAKE_LIBMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}3
 +IMAKE_KERNMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}4
 +IMAKE_FILEMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}5
 +IMAKE_GAMEMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}6
 +IMAKE_MISCMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}7
 +IMAKE_MANNEWSUFFIX=	${IMAKE_MAN_SUFFIX}
 +IMAKE_MANINSTALL?=	maninstall catinstall
 +
 +_OPSYS_HAS_INET6=	no	# IPv6 is not standard
 +_OPSYS_HAS_JAVA=	no	# Java is not standard
 +_OPSYS_HAS_MANZ=	no	# no MANZ for gzipping of man pages
 +_OPSYS_HAS_OSSAUDIO=	no	# libossaudio is available
 +_OPSYS_PERL_REQD=		# no base version of perl required
 +_OPSYS_PTHREAD_AUTO=	no	# -lpthread needed for pthreads
 +_OPSYS_SHLIB_TYPE=	none	# No shared libraries on Minix (yet)
 +_PATCH_CAN_BACKUP=	yes	# native patch(1) can make backups
 +_PATCH_BACKUP_ARG?= 	-b -V simple --suffix	# switch to patch(1) for backup suffix
 +_USE_RPATH=		no	# add rpath to LDFLAGS
 +
 +# flags passed to the linker to extract all symbols from static archives.
 +# this is GNU ld.
 +_OPSYS_WHOLE_ARCHIVE_FLAG=	-Wl,--whole-archive
 +_OPSYS_NO_WHOLE_ARCHIVE_FLAG=	-Wl,--no-whole-archive
 +
 +_STRIPFLAG_CC?=		${_INSTALL_UNSTRIPPED:D:U-s}	# cc(1) option to strip
 +_STRIPFLAG_INSTALL?=	${_INSTALL_UNSTRIPPED:D:U-s}	# install(1) option to strip
 +
 +_OPSYS_CAN_CHECK_SHLIBS=	no # can't use readelf in check/bsd.check-vars.mk
 +
 +# check for maximum command line length and set it in configure's environment,
 +# to avoid a test required by the libtool script that takes forever.
 +# FIXME: Adjust to work on this system and enable the lines below.
 +#_OPSYS_MAX_CMDLEN_CMD=	/sbin/sysctl -n kern.argmax
 +
 +# If games are to be installed setgid, then SETGIDGAME is set to 'yes'
 +# (it defaults to 'no' as per defaults/mk.conf).
 +# Set the group and mode to meaningful values in that case (defaults to
 +# BINOWN, BINGRP and BINMODE as per defaults/mk.conf).
 +# FIXME: Adjust to work on this system and enable the lines below.
 +#.if !(empty(SETGIDGAME:M[yY][eE][sS]))
 +#GAMES_USER=		games
 +#GAMES_GROUP=		games
 +#GAMEOWN=		${GAMES_USER}
 +#GAMEGRP=		${GAMES_GROUP}
 +#GAMEMODE=		2555
 +#GAMEDIRMODE=		0775
 +#.endif
 diff --git a/mk/tools/tools.Minix.mk b/mk/tools/tools.Minix.mk
 new file mode 100644
 index 0000000..5d91e77
 --- /dev/null
 +++ b/mk/tools/tools.Minix.mk
 @@ -0,0 +1,64 @@
 +# $NetBSD: tools.Linux.mk,v 1.47 2010/02/13 08:30:59 obache Exp $
 +#
 +# System-supplied tools for the Minix operating system.
 +
 +#System supplied tools
 +TOOLS_PLATFORM.[?=		/bin/[
 +TOOLS_PLATFORM.awk?=		/usr/bin/awk
 +TOOLS_PLATFORM.basename?=	/usr/bin/basename
 +TOOLS_PLATFORM.bzcat?=		/usr/bin/bzcat
 +TOOLS_PLATFORM.cat?=		/bin/cat
 +TOOLS_PLATFORM.bzip2?=		/usr/bin/bzip2
 +TOOLS_PLATFORM.chgrp?=		/usr/bin/chgrp
 +TOOLS_PLATFORM.chmod?=		/usr/bin/chmod
 +TOOLS_PLATFORM.chown?=		/usr/bin/chown
 +TOOLS_PLATFORM.cmp?=		/usr/bin/cmp
 +TOOLS_PLATFORM.cp?=		/bin/cp 
 +TOOLS_PLATFORM.cut?=		/usr/bin/cut
 +TOOLS_PLATFORM.date?=		/bin/date
 +TOOLS_PLATFORM.dirname?=	/usr/bin/dirname
 +TOOLS_PLATFORM.echo?=		/bin/echo
 +TOOLS_PLATFORM.env?=		/usr/bin/env
 +TOOLS_PLATFORM.expr?=		/bin/expr
 +TOOLS_PLATFORM.false?=		/bin/false
 +TOOLS_PLATFORM.file?=		/usr/bin/file
 +TOOLS_PLATFORM.find?=		/usr/bin/find
 +TOOLS_PLATFORM.head?=		/usr/bin/head
 +TOOLS_PLATFORM.id?=		/usr/bin/id
 +TOOLS_PLATFORM.install?=	/bin/install
 +TOOLS_PLATFORM.ln?=		/bin/ln
 +TOOLS_PLATFORM.ls?=		/bin/ls
 +TOOLS_PLATFORM.m4?=		/usr/bin/m4
 +TOOLS_PLATFORM.mail?=		/usr/bin/mail
 +TOOLS_PLATFORM.mkdir?=		/usr/bin/mkdir -p
 +TOOLS_PLATFORM.mv?=		/bin/mv
 +TOOLS_PLATFORM.nice?=		/usr/bin/nice
 +TOOLS_PLATFORM.nroff?=		/usr/bin/nroff
 +TOOLS_PLATFORM.pwd?=		/bin/pwd
 +TOOLS_PLATFORM.rm?=		/bin/rm
 +TOOLS_PLATFORM.rmdir?=		/bin/rmdir
 +TOOLS_PLATFORM.sed?=	/bin/sed
 +TOOLS_PLATFORM.sh?=		/bin/sh
 +TOOLS_PLATFORM.sleep?=		/usr/bin/sleep
 +TOOLS_PLATFORM.strip?=		/usr/bin/strip
 +TOOLS_PLATFORM.tail?=		/usr/bin/tail
 +TOOLS_PLATFORM.tar?=		/usr/bin/tar
 +TOOLS_PLATFORM.bsdtar?=		/usr/bin/bsdtar
 +TOOLS_PLATFORM.fetch?=		/usr/bin/fetch
 +TOOLS_PLATFORM.tee?=		/usr/bin/tee
 +TOOLS_PLATFORM.test?=		/bin/test
 +TOOLS_PLATFORM.tr?=		/usr/bin/tr
 +TOOLS_PLATFORM.true?=		/bin/true
 +TOOLS_PLATFORM.tsort?=		/usr/bin/tsort
 +TOOLS_PLATFORM.wc?=		/usr/bin/wc
 +TOOLS_PLATFORM.xargs?=		/usr/bin/xargs
 +TOOLS_PLATFORM.yacc?=		/usr/bin/yacc
 +TOOLS_PLATFORM.grep?=		/usr/bin/grep
 +TOOLS_PLATFORM.egrep?=		/usr/bin/egrep
 +TOOLS_PLATFORM.fgrep?=		/usr/bin/fgrep
 +TOOLS_PLATFORM.printf?=		/usr/bin/printf
 +TOOLS_PLATFORM.touch?=		/usr/bin/touch
 +TOOLS_PLATFORM.hostname?= /usr/bin/hostname
 +TOOLS_PLATFORM.patch?=		/usr/bin/patch
 +TOOLS_PLATFORM.diff?=	/usr/bin/diff
 +TOOLS_PLATFORM.sort?=	/usr/bin/sort

From: Thomas Cort <tcort@minix3.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/45046: mk/* minix support
Date: Tue, 19 Jul 2011 09:29:08 -0400

 After submitting the original patch, Minix got a new C library and headers.
 The C library and headers were ported from NetBSD. There are changes to
 CPPFLAGS to add some definitions needed for the new headers. LDFLAGS is
 set to include -lcompat_minix and -lminlib, two compatibility libraries
 that go with our new libc. We also fixed the path to rmdir. An updated
 patch follows.

 Patch Summary:

  * We had to do a workaround in bsd.pkg.mk and bsd.prefs.mk for X11.
    We don't have modular xorg ported yet and we don't have a truly
    native (outside of pkgsrc) version of X11. We're using X11R6.8.2
    in a package we maintain in our pkgsrc tree (minix/x11).

  * We changed a few lines in buildlink3/imake-check to avoid piping
    the output because imake segfaults on our platform when reading
    from STDIN.

  * We added URLs for our binary package site and our distfiles site.

  * The other changes define Minix tools and the Minix platform.

 diff --git a/mk/bsd.pkg.mk b/mk/bsd.pkg.mk
 index 094f902..2f7b7d2 100644
 --- a/mk/bsd.pkg.mk
 +++ b/mk/bsd.pkg.mk
 @@ -482,7 +482,7 @@ PKG_FAIL_REASON+= "${PKGNAME} is restricted:" \
  PKG_FAIL_REASON+= "${PKGNAME} may not be built, because it utilizes strong cryptography"
  .    endif
  .  endif
 -.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE})
 +.  if defined(USE_X11) && (${X11_TYPE} == "native") && !exists(${X11BASE}) && (${OPSYS} != "Minix")
  PKG_FAIL_REASON+= "${PKGNAME} uses X11, but ${X11BASE} not found"
  .  endif
  .  if defined(BROKEN)
 diff --git a/mk/bsd.prefs.mk b/mk/bsd.prefs.mk
 index 46e3222..cdeab24 100644
 --- a/mk/bsd.prefs.mk
 +++ b/mk/bsd.prefs.mk
 @@ -279,6 +279,19 @@ LOWER_VENDOR?=		sun
  LOWER_OPSYS?=		solaris
  LOWER_OPSYS_VERSUFFIX=	2

 +.elif ${OPSYS} == "Minix"
 +OS_VERSION!= echo `${UNAME} -v`
 +LOWER_OS_VERSION= OS_VERSION
 +LOWER_ARCH!=		${UNAME} -p
 +MACHINE_ARCH?=		${LOWER_ARCH}
 +.if ${MACHINE_ARCH} == "unknown"
 +MACHINE_ARCH=		${LOWER_ARCH}
 +.endif
 +LOWER_VENDOR?=pc
 +LOWER_OPSYS:=		${OPSYS:tl}
 +CPPFLAGS+=	-D_NETBSD_SOURCE -D_MINIX -D_POSIX_SOURCE -D_COMPAT_MINIX
 +LDFLAGS+=	-lcompat_minix -lminlib
 +CXXFLAGS+=	-D_NETBSD_SOURCE
  .elif !defined(LOWER_OPSYS)
  LOWER_OPSYS:=		${OPSYS:tl}
  .endif
 @@ -549,6 +562,8 @@ X11BASE?=	/usr
  .  elif !empty(MACHINE_PLATFORM:MDarwin-9.*-*) || \
          !empty(MACHINE_PLATFORM:MDarwin-??.*-*)
  X11BASE?=	/usr/X11
 +.  elif ${OPSYS} == "Minix"
 +X11BASE?=	${LOCALBASE}/X11R6
  .  elif exists(/usr/X11R7/lib/libX11.so)
  X11BASE?=	/usr/X11R7
  .  else
 diff --git a/mk/buildlink3/imake-check b/mk/buildlink3/imake-check
 index c337d20..cc73165 100755
 --- a/mk/buildlink3/imake-check
 +++ b/mk/buildlink3/imake-check
 @@ -86,8 +86,8 @@ then
  fi

  # Run imake to process the Imakefile.
 -${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config -s - |
 -${IMAKE_MAKE} -f - builtin-test |
 +${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config
 +${IMAKE_MAKE} builtin-test |
  ${GREP} -q yes
  exitcode="$?"

 diff --git a/mk/fetch/sites.mk b/mk/fetch/sites.mk
 index 169f880..3315ffe 100644
 --- a/mk/fetch/sites.mk
 +++ b/mk/fetch/sites.mk
 @@ -465,3 +465,5 @@ MASTER_SITE_BACKUP?=	\
  	ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/ \
  	http://ftp.NetBSD.org/pub/pkgsrc/distfiles/ \
  	ftp://ftp.FreeBSD.org/pub/FreeBSD/distfiles/
 +
 +MASTER_SITE_MINIX=http://www.minix3.org/distfiles-minix/
 diff --git a/mk/install/bin-install.mk b/mk/install/bin-install.mk
 index 0400f8f..814006d 100644
 --- a/mk/install/bin-install.mk
 +++ b/mk/install/bin-install.mk
 @@ -32,6 +32,9 @@
  .if ${OPSYS} == "NetBSD"
  BINPKG_SITES?= \
  	ftp://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/$${arch}/$${rel}
 +.elif ${OPSYS} == "Minix"
 +BINPKG_SITES?= \
 +	ftp://ftp.minix3.org/pub/minix/packages/$$(${UNAME} -r)/$${arch}
  .elif ${OPSYS} == "DragonFly"
  BINPKG_SITES?= \
  	http://mirror-master.dragonflybsd.org/packages/$${arch}/DragonFly-$${rel}/stable
 diff --git a/mk/platform/Minix.mk b/mk/platform/Minix.mk
 new file mode 100644
 index 0000000..e91d774
 --- /dev/null
 +++ b/mk/platform/Minix.mk
 @@ -0,0 +1,87 @@
 +# $NetBSD: Linux.mk,v 1.37 2010/03/18 22:46:01 sbd Exp $
 +#
 +# Variable definitions for the Minix operating system.
 +
 +ECHO_N?=	${ECHO} -n
 +.if !defined(X11_TYPE) || ${X11_TYPE} == "native"
 +IMAKE_MAKE?=	${MAKE}	# program which gets invoked by imake
 +.endif
 +IMAKEOPTS+=	-DBuildHtmlManPages=NO
 +PKGLOCALEDIR?=	share
 +PS?=		/usr/bin/ps
 +# XXX: default from defaults/mk.conf.  Verify/correct for this platform
 +# and remove this comment.
 +SU?=		/usr/bin/su
 +TYPE?=		type			# Shell builtin
 +
 +CPP_PRECOMP_FLAGS?=	# unset
 +DEF_UMASK?=		022
 +DEFAULT_SERIAL_DEVICE?=	/dev/null
 +EXPORT_SYMBOLS_LDFLAGS?=	# Don't add symbols to the dynamic symbol table
 +GROUPADD?=
 +NOLOGIN?=		/bin/false
 +PKG_TOOLS_BIN?=		${LOCALBASE}/sbin
 +ROOT_CMD?=		${SU} - root -c
 +ROOT_GROUP?=	operator
 +ROOT_USER?=		root
 +SERIAL_DEVICES?=	/dev/null
 +USERADD?=		/usr/bin/useradd
 +ULIMIT_CMD_datasize?=	: 
 +
 +# imake installs manpages in weird places
 +# these values from /usr/X11R6/lib/X11/config/linux.cf
 +IMAKE_MAN_SOURCE_PATH=	man/man
 +IMAKE_MAN_SUFFIX=	1x
 +IMAKE_LIBMAN_SUFFIX=	3x
 +IMAKE_KERNMAN_SUFFIX=	4
 +IMAKE_FILEMAN_SUFFIX=	5x
 +IMAKE_GAMEMAN_SUFFIX=	6
 +IMAKE_MISCMAN_SUFFIX=	7
 +IMAKE_MAN_DIR=		${IMAKE_MAN_SOURCE_PATH}1
 +IMAKE_LIBMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}3
 +IMAKE_KERNMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}4
 +IMAKE_FILEMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}5
 +IMAKE_GAMEMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}6
 +IMAKE_MISCMAN_DIR=	${IMAKE_MAN_SOURCE_PATH}7
 +IMAKE_MANNEWSUFFIX=	${IMAKE_MAN_SUFFIX}
 +IMAKE_MANINSTALL?=	maninstall catinstall
 +
 +_OPSYS_HAS_INET6=	no	# IPv6 is not standard
 +_OPSYS_HAS_JAVA=	no	# Java is not standard
 +_OPSYS_HAS_MANZ=	no	# no MANZ for gzipping of man pages
 +_OPSYS_HAS_OSSAUDIO=	no	# libossaudio is available
 +_OPSYS_PERL_REQD=		# no base version of perl required
 +_OPSYS_PTHREAD_AUTO=	no	# -lpthread needed for pthreads
 +_OPSYS_SHLIB_TYPE=	none	# No shared libraries on Minix (yet)
 +_PATCH_CAN_BACKUP=	yes	# native patch(1) can make backups
 +_PATCH_BACKUP_ARG?= 	-b -V simple --suffix	# switch to patch(1) for backup suffix
 +_USE_RPATH=		no	# add rpath to LDFLAGS
 +
 +# flags passed to the linker to extract all symbols from static archives.
 +# this is GNU ld.
 +_OPSYS_WHOLE_ARCHIVE_FLAG=	-Wl,--whole-archive
 +_OPSYS_NO_WHOLE_ARCHIVE_FLAG=	-Wl,--no-whole-archive
 +
 +_STRIPFLAG_CC?=		${_INSTALL_UNSTRIPPED:D:U-s}	# cc(1) option to strip
 +_STRIPFLAG_INSTALL?=	${_INSTALL_UNSTRIPPED:D:U-s}	# install(1) option to strip
 +
 +_OPSYS_CAN_CHECK_SHLIBS=	no # can't use readelf in check/bsd.check-vars.mk
 +
 +# check for maximum command line length and set it in configure's environment,
 +# to avoid a test required by the libtool script that takes forever.
 +# FIXME: Adjust to work on this system and enable the lines below.
 +#_OPSYS_MAX_CMDLEN_CMD=	/sbin/sysctl -n kern.argmax
 +
 +# If games are to be installed setgid, then SETGIDGAME is set to 'yes'
 +# (it defaults to 'no' as per defaults/mk.conf).
 +# Set the group and mode to meaningful values in that case (defaults to
 +# BINOWN, BINGRP and BINMODE as per defaults/mk.conf).
 +# FIXME: Adjust to work on this system and enable the lines below.
 +#.if !(empty(SETGIDGAME:M[yY][eE][sS]))
 +#GAMES_USER=		games
 +#GAMES_GROUP=		games
 +#GAMEOWN=		${GAMES_USER}
 +#GAMEGRP=		${GAMES_GROUP}
 +#GAMEMODE=		2555
 +#GAMEDIRMODE=		0775
 +#.endif
 diff --git a/mk/tools/tools.Minix.mk b/mk/tools/tools.Minix.mk
 new file mode 100644
 index 0000000..1a9d0f5
 --- /dev/null
 +++ b/mk/tools/tools.Minix.mk
 @@ -0,0 +1,64 @@
 +# $NetBSD: tools.Linux.mk,v 1.47 2010/02/13 08:30:59 obache Exp $
 +#
 +# System-supplied tools for the Minix operating system.
 +
 +#System supplied tools
 +TOOLS_PLATFORM.[?=		/bin/[
 +TOOLS_PLATFORM.awk?=		/usr/bin/awk
 +TOOLS_PLATFORM.basename?=	/usr/bin/basename
 +TOOLS_PLATFORM.bzcat?=		/usr/bin/bzcat
 +TOOLS_PLATFORM.cat?=		/bin/cat
 +TOOLS_PLATFORM.bzip2?=		/usr/bin/bzip2
 +TOOLS_PLATFORM.chgrp?=		/usr/bin/chgrp
 +TOOLS_PLATFORM.chmod?=		/usr/bin/chmod
 +TOOLS_PLATFORM.chown?=		/usr/bin/chown
 +TOOLS_PLATFORM.cmp?=		/usr/bin/cmp
 +TOOLS_PLATFORM.cp?=		/bin/cp 
 +TOOLS_PLATFORM.cut?=		/usr/bin/cut
 +TOOLS_PLATFORM.date?=		/bin/date
 +TOOLS_PLATFORM.dirname?=	/usr/bin/dirname
 +TOOLS_PLATFORM.echo?=		/bin/echo
 +TOOLS_PLATFORM.env?=		/usr/bin/env
 +TOOLS_PLATFORM.expr?=		/bin/expr
 +TOOLS_PLATFORM.false?=		/bin/false
 +TOOLS_PLATFORM.file?=		/usr/bin/file
 +TOOLS_PLATFORM.find?=		/usr/bin/find
 +TOOLS_PLATFORM.head?=		/usr/bin/head
 +TOOLS_PLATFORM.id?=		/usr/bin/id
 +TOOLS_PLATFORM.install?=	/bin/install
 +TOOLS_PLATFORM.ln?=		/bin/ln
 +TOOLS_PLATFORM.ls?=		/bin/ls
 +TOOLS_PLATFORM.m4?=		/usr/bin/m4
 +TOOLS_PLATFORM.mail?=		/usr/bin/mail
 +TOOLS_PLATFORM.mkdir?=		/usr/bin/mkdir -p
 +TOOLS_PLATFORM.mv?=		/bin/mv
 +TOOLS_PLATFORM.nice?=		/usr/bin/nice
 +TOOLS_PLATFORM.nroff?=		/usr/bin/nroff
 +TOOLS_PLATFORM.pwd?=		/bin/pwd
 +TOOLS_PLATFORM.rm?=		/bin/rm
 +TOOLS_PLATFORM.rmdir?=		/usr/bin/rmdir
 +TOOLS_PLATFORM.sed?=	/bin/sed
 +TOOLS_PLATFORM.sh?=		/bin/sh
 +TOOLS_PLATFORM.sleep?=		/usr/bin/sleep
 +TOOLS_PLATFORM.strip?=		/usr/bin/strip
 +TOOLS_PLATFORM.tail?=		/usr/bin/tail
 +TOOLS_PLATFORM.tar?=		/usr/bin/tar
 +TOOLS_PLATFORM.bsdtar?=		/usr/bin/bsdtar
 +TOOLS_PLATFORM.fetch?=		/usr/bin/fetch
 +TOOLS_PLATFORM.tee?=		/usr/bin/tee
 +TOOLS_PLATFORM.test?=		/bin/test
 +TOOLS_PLATFORM.tr?=		/usr/bin/tr
 +TOOLS_PLATFORM.true?=		/bin/true
 +TOOLS_PLATFORM.tsort?=		/usr/bin/tsort
 +TOOLS_PLATFORM.wc?=		/usr/bin/wc
 +TOOLS_PLATFORM.xargs?=		/usr/bin/xargs
 +TOOLS_PLATFORM.yacc?=		/usr/bin/yacc
 +TOOLS_PLATFORM.grep?=		/usr/bin/grep
 +TOOLS_PLATFORM.egrep?=		/usr/bin/egrep
 +TOOLS_PLATFORM.fgrep?=		/usr/bin/fgrep
 +TOOLS_PLATFORM.printf?=		/usr/bin/printf
 +TOOLS_PLATFORM.touch?=		/usr/bin/touch
 +TOOLS_PLATFORM.hostname?= /usr/bin/hostname
 +TOOLS_PLATFORM.patch?=		/usr/bin/patch
 +TOOLS_PLATFORM.diff?=	/usr/bin/diff
 +TOOLS_PLATFORM.sort?=	/usr/bin/sort

From: Alistair Crooks <agc@pkgsrc.org>
To: gnats-bugs@NetBSD.org
Cc: pkg-manager@NetBSD.org, gnats-admin@NetBSD.org, pkgsrc-bugs@NetBSD.org,
        tcort@minix3.org
Subject: Re: pkg/45046: mk/* minix support
Date: Tue, 2 Aug 2011 07:50:01 +0200

 Thanks for the patch, Thomas.

 On Tue, Jul 19, 2011 at 01:30:07PM +0000, Thomas Cort wrote:
 > The following reply was made to PR pkg/45046; it has been noted by GNATS.
 > 
 > From: Thomas Cort <tcort@minix3.org>
 > To: gnats-bugs@netbsd.org
 > Cc: 
 > Subject: Re: pkg/45046: mk/* minix support
 > Date: Tue, 19 Jul 2011 09:29:08 -0400
 > 
 >  After submitting the original patch, Minix got a new C library and headers.
 >  The C library and headers were ported from NetBSD. There are changes to
 >  CPPFLAGS to add some definitions needed for the new headers. LDFLAGS is
 >  set to include -lcompat_minix and -lminlib, two compatibility libraries
 >  that go with our new libc. We also fixed the path to rmdir. An updated
 >  patch follows.
 >  
 >  Patch Summary:
 >  
 >   * We had to do a workaround in bsd.pkg.mk and bsd.prefs.mk for X11.
 >     We don't have modular xorg ported yet and we don't have a truly
 >     native (outside of pkgsrc) version of X11. We're using X11R6.8.2
 >     in a package we maintain in our pkgsrc tree (minix/x11).

 I'd really be inclined to special-case your X11_TYPE then, to be
 "minix3_native" or similar.  We have moved away from checking for
 specific operating system types in our main files (and especially
 bsd.pkg.mk), because it does not scale.  It may be the case that other
 operating systems are also going through the X11 bring-up process, and
 having a way to bring them into pkgsrc in an easy manner would be
 beneficial for them.

 >   * We changed a few lines in buildlink3/imake-check to avoid piping
 >     the output because imake segfaults on our platform when reading
 >     from STDIN.

 I'm just catching up now, but I'm not sure if this shouldn't be covered
 by a check for X11_TYPE being native_minix3 or whatever?

 Thanks,
 Alistair

From: Thomas Cort <tcort@minix3.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/45046: mk/* minix support
Date: Thu, 4 Aug 2011 07:21:15 -0400

 Thanks for the feedback!

 > I'd really be inclined to special-case your X11_TYPE

 I agree. I'll work on that. I should have something in a few days.

From: Thomas Cort <tcort@minix3.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/45046: mk/* minix support
Date: Wed, 24 Aug 2011 20:24:39 -0400

 >> I'd really be inclined to special-case your X11_TYPE
 > I agree. I'll work on that. I should have something in a few days.

 The X11_TYPE was suggested because we used ${OPSYS} == "Minix" in a
 few places. I've added an X11_TYPE, and pkgsrc works okay to build
 X-related packages (ones that are known to work on minix at least).
 However, the X11_TYPE addition is much more invasive (30 to 50 files
 changed). Perhaps we could forego upstreaming the X11 changes for now,
 and just try to get the basics accepted?

 Are there any other changes I should make or any remaining questions
 regarding patches for Minix support?

 -Thomas

From: "Thomas Cort" <tcort@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/45046 CVS commit: pkgsrc/mk
Date: Fri, 1 Mar 2013 00:07:46 +0000

 Module Name:	pkgsrc
 Committed By:	tcort
 Date:		Fri Mar  1 00:07:46 UTC 2013

 Modified Files:
 	pkgsrc/mk: bsd.prefs.mk

 Log Message:
 bsd.prefs.mk: add definitions for Minix. PR pkg/45046 OK by agc.


 To generate a diff of this commit:
 cvs rdiff -u -r1.333 -r1.334 pkgsrc/mk/bsd.prefs.mk

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Thomas Cort" <tcort@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/45046 CVS commit: pkgsrc/mk
Date: Fri, 1 Mar 2013 00:08:32 +0000

 Module Name:	pkgsrc
 Committed By:	tcort
 Date:		Fri Mar  1 00:08:32 UTC 2013

 Modified Files:
 	pkgsrc/mk: fuse.buildlink3.mk

 Log Message:
 fuse.buildlink3.mk: add Minix support. PR pkg/45046 OK by agc


 To generate a diff of this commit:
 cvs rdiff -u -r1.15 -r1.16 pkgsrc/mk/fuse.buildlink3.mk

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->closed
State-Changed-By: tcort@NetBSD.org
State-Changed-When: Fri, 01 Mar 2013 00:13:02 +0000
State-Changed-Why:
Everything suitable for upstreaming has been upstreamed.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.