summaryrefslogtreecommitdiff
path: root/emulators/compat20
diff options
context:
space:
mode:
authorjlam <jlam>2007-08-21 22:49:02 +0000
committerjlam <jlam>2007-08-21 22:49:02 +0000
commitab694111ad4413494cc301a737b52c16afbbdd86 (patch)
treec963fbe349aa6c3a854fc36e80c1b467ee94113c /emulators/compat20
parent333906725cd0e72024ceb197e8c81fd1c6bff2d2 (diff)
downloadpkgsrc-ab694111ad4413494cc301a737b52c16afbbdd86.tar.gz
* Support netbsd-* as a valid platform in EMUL_PLATFORMS. Use the
pkgsrc/emulator/compat* and pkgsrc/emulator/netbsd32_compat* packages to provide the necessary shared libraries to run dynamically linked NetBSD binaries from the days of yore. * Add some additional compat* packages for completeness: compat15, compat20, compat30 * Modify the compat* packages so that "compatNM" only provides files that aren't in "NetBSD-N.(M+1)". For example, compat12 only provides files that don't exist in NetBSD-1.3.x, compat13 only provides files that don't exist in NetBSD-1.4.x, etc. As a result, if you are running NetBSD-3.0/alpha and want to run a 1.3 dynamically linked binary, there is an automatic dependency chain that causes the following packages to be installed: compat13, compat14, compat15, compat16, compat20 There are some deviations from this dependency chain on platforms that have changed executable formats, e.g. i386, m68, sparc, etc. However, in general pkgsrc will require that you have the necessary COMPAT_* options in your kernel to match the installed compat* packages. This restriction is an artificial one imposed by pkgsrc, but allows for a single set of distfiles to be used on all versions of NetBSD. * Provide compat* package support for every supported architecture of NetBSD. Verily, it is now possible to run 1.2 binaries on NetBSD-1.5.3/pc532 by installing the compat12 package from pkgsrc. Rejoice, one and all! * The netbsd32_compat* packages mirror the corresponding compat* packages for use by sparc64 and x86_64 to allow running 32-bit binaries with COMPAT_NETBSD32 kernel support. The "extras" packages supply the additional shared libraries from the corresponding release of NetBSD so that the set of files in /emul/netbsd32 will be complete. * pkgsrc/emulators/compat_netbsd contains infrastructure files shared by all of the compat* packages.
Diffstat (limited to 'emulators/compat20')
-rw-r--r--emulators/compat20/DESCR2
-rw-r--r--emulators/compat20/MESSAGE7
-rw-r--r--emulators/compat20/Makefile53
-rw-r--r--emulators/compat20/PLIST7
-rw-r--r--emulators/compat20/distinfo41
-rw-r--r--emulators/compat20/emulator.mk44
6 files changed, 154 insertions, 0 deletions
diff --git a/emulators/compat20/DESCR b/emulators/compat20/DESCR
new file mode 100644
index 00000000000..d96d4ed6560
--- /dev/null
+++ b/emulators/compat20/DESCR
@@ -0,0 +1,2 @@
+This package supplies the user files needed to run dynamically linked
+executables compiled under NetBSD 2.0.
diff --git a/emulators/compat20/MESSAGE b/emulators/compat20/MESSAGE
new file mode 100644
index 00000000000..f63a6f6ea53
--- /dev/null
+++ b/emulators/compat20/MESSAGE
@@ -0,0 +1,7 @@
+===========================================================================
+$NetBSD: MESSAGE,v 1.1 2007/08/21 22:49:18 jlam Exp $
+
+The COMPAT_20 option must be included in the kernel configuration (and
+possibly others; see options(4) for more information) to make use of
+NetBSD 2.0 binaries.
+===========================================================================
diff --git a/emulators/compat20/Makefile b/emulators/compat20/Makefile
new file mode 100644
index 00000000000..f10c98e2cb3
--- /dev/null
+++ b/emulators/compat20/Makefile
@@ -0,0 +1,53 @@
+# $NetBSD: Makefile,v 1.1 2007/08/21 22:49:18 jlam Exp $
+
+DISTNAME= compat20 # overridden below
+NETBSD_VERSION= 2.0
+
+HOMEPAGE= http://www.NetBSD.org/Releases/formal-2.0/index.html
+COMMENT= Shared libraries for NetBSD 2.0 compatibility
+
+.if defined(NETBSD_COMPAT32)
+EMUL_PLATFORMS= netbsd-i386 netbsd-sparc
+
+ACCEPTABLE_NETBSD= NetBSD-1.6[A-Z]* NetBSD-2.[0-9] \
+ NetBSD-2.[1-8][0-9]* NetBSD-2.9[0-8]* \
+ NetBSD-2.99.* NetBSD-[3-9]* NetBSD-[1-9][0-9]*
+.else
+EMUL_PLATFORMS= netbsd-alpha netbsd-arm netbsd-i386 netbsd-m68k \
+ netbsd-mipseb netbsd-mipsel netbsd-powerpc \
+ netbsd-sh3eb netbsd-sh3el netbsd-sparc \
+ netbsd-sparc64 netbsd-vax netbsd-x86_64
+
+ONLY_FOR_PLATFORM= NetBSD-2.99.*-* NetBSD-[3-9]*-* NetBSD-[1-9][0-9]*-*
+.endif
+
+.include "../../emulators/compat_netbsd/Makefile.common"
+
+DISTNAME= compat20-${EMUL_ARCH}-${COMPAT_VERSION}
+COMPAT_VERSION= 2.1
+
+# For COMPAT_NETBSD32, we need to depend on the compat20-extras package
+# on NetBSD-2.0 to supply the missing shared libraries; otherwise, we
+# just depend on the compat30 package for the missing shared libraries.
+#
+.if defined(NETBSD_COMPAT32)
+COMPAT_EXTRAS= # empty
+. for _netbsd_ in ${ACCEPTABLE_NETBSD}
+COMPAT_EXTRAS= netbsd32_compat20-extras-${COMPAT_VERSION}{,nb*}:../../emulators/netbsd32_compat20-extras
+. endfor
+. if !empty(COMPAT_EXTRAS)
+DEPENDS+= ${COMPAT_EXTRAS}
+. else
+DEPENDS+= netbsd32_compat30>=3.0:../../emulators/netbsd32_compat30
+. endif
+#
+# We need to depend on the compat30 package to supply shared libraries
+# missing from compat20 on NetBSD>3.x.
+#
+.elif empty(OS_VERSION:M[0-2].*) && empty(OS_VERSION:M3.[0-9]) && \
+ empty(OS_VERSION:M3.[0-9].*) && empty(OS_VERSION:M3.[1-8][0-9].*) && \
+ empty(OS_VERSION:M3.9[0-8]*)
+DEPENDS+= compat30>=3.0:../../emulators/compat30
+.endif
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/emulators/compat20/PLIST b/emulators/compat20/PLIST
new file mode 100644
index 00000000000..87bb7e8f582
--- /dev/null
+++ b/emulators/compat20/PLIST
@@ -0,0 +1,7 @@
+@comment $NetBSD: PLIST,v 1.1 2007/08/21 22:49:18 jlam Exp $
+${EMULSUBDIRSLASH}usr/lib/libform.so.4
+${EMULSUBDIRSLASH}usr/lib/libform.so.4.0
+${EMULSUBDIRSLASH}usr/lib/libpci.so.0
+${EMULSUBDIRSLASH}usr/lib/libpci.so.0.0
+@dirrm ${EMULSUBDIRSLASH}usr/lib
+@dirrm ${EMULSUBDIRSLASH}usr
diff --git a/emulators/compat20/distinfo b/emulators/compat20/distinfo
new file mode 100644
index 00000000000..7821a9e51a3
--- /dev/null
+++ b/emulators/compat20/distinfo
@@ -0,0 +1,41 @@
+$NetBSD: distinfo,v 1.1 2007/08/21 22:49:18 jlam Exp $
+
+SHA1 (compat20-alpha-2.1.tar.bz2) = 42446071fef6565083979b80412be9909547a2ae
+RMD160 (compat20-alpha-2.1.tar.bz2) = 565a8e7d9e8cd313739a8ec01f65bc3e2395e48f
+Size (compat20-alpha-2.1.tar.bz2) = 83426 bytes
+SHA1 (compat20-arm-2.1.tar.bz2) = 1c1778167a0669ddbcc8b18f43fbdb7c43272042
+RMD160 (compat20-arm-2.1.tar.bz2) = b794dda9f2c8195b438f23746d6bb8ba3872a734
+Size (compat20-arm-2.1.tar.bz2) = 70140 bytes
+SHA1 (compat20-i386-2.1.tar.bz2) = d2804112f0f68deef0075c12dcec750931622ded
+RMD160 (compat20-i386-2.1.tar.bz2) = e8fcf514e853f6d55aef9adc9a59af0b36c25712
+Size (compat20-i386-2.1.tar.bz2) = 70032 bytes
+SHA1 (compat20-m68k-2.1.tar.bz2) = 61b95f0dd02e0e6959075f064f945d677779c299
+RMD160 (compat20-m68k-2.1.tar.bz2) = 839db7aa4b2b5362cd1b3dc973c932ccb70665f1
+Size (compat20-m68k-2.1.tar.bz2) = 77997 bytes
+SHA1 (compat20-mipseb-2.1.tar.bz2) = 1cdfe07a0bced883ec9a165d026f494012736eaf
+RMD160 (compat20-mipseb-2.1.tar.bz2) = 25c398f6697f385fa3a3b01f8f396c0f39518b53
+Size (compat20-mipseb-2.1.tar.bz2) = 85642 bytes
+SHA1 (compat20-mipsel-2.1.tar.bz2) = 2c986d48fc687e86994003b92f389efb675ea97e
+RMD160 (compat20-mipsel-2.1.tar.bz2) = 662609fd815cf46d0331db9f3da81c758529c713
+Size (compat20-mipsel-2.1.tar.bz2) = 88686 bytes
+SHA1 (compat20-powerpc-2.1.tar.bz2) = 9334d01bbdd25f5a4143f0090458c145b2add36f
+RMD160 (compat20-powerpc-2.1.tar.bz2) = cbeae61f90614cc14efa6ae7681546ef0a8ef827
+Size (compat20-powerpc-2.1.tar.bz2) = 87483 bytes
+SHA1 (compat20-sh3eb-2.1.tar.bz2) = f046e0b91b752d9b698f3a42c92f48c9b0a371a5
+RMD160 (compat20-sh3eb-2.1.tar.bz2) = e589319e79ece2b309a9ff77d88df2c899fe5903
+Size (compat20-sh3eb-2.1.tar.bz2) = 80374 bytes
+SHA1 (compat20-sh3el-2.1.tar.bz2) = f310f27ea3b51f43b902ad9e7b7cd94617b978de
+RMD160 (compat20-sh3el-2.1.tar.bz2) = c14eb2f85a00c424aede18da0921a07656cdb4f7
+Size (compat20-sh3el-2.1.tar.bz2) = 80173 bytes
+SHA1 (compat20-sparc-2.1.tar.bz2) = 296b5edde3607a6373ee4ee1700218dba008f4cc
+RMD160 (compat20-sparc-2.1.tar.bz2) = 03277161e3d9685d3ba3215f535c04f07b4a9663
+Size (compat20-sparc-2.1.tar.bz2) = 71156 bytes
+SHA1 (compat20-sparc64-2.1.tar.bz2) = 858e01fb5cd426f6add5c3b9dfc087e9a9a64ce9
+RMD160 (compat20-sparc64-2.1.tar.bz2) = c7151bed2cfa5d96d94b04ce6215ef263ac7745d
+Size (compat20-sparc64-2.1.tar.bz2) = 72954 bytes
+SHA1 (compat20-vax-2.1.tar.bz2) = 5028934b1d234bc36ab4b555d82dfdcb021e6464
+RMD160 (compat20-vax-2.1.tar.bz2) = 7106dac6a3a4c19ffdfac1ebf807f7f50848a224
+Size (compat20-vax-2.1.tar.bz2) = 74833 bytes
+SHA1 (compat20-x86_64-2.1.tar.bz2) = fa1992c745c0768e4f6f1a4e8ba4399f9532a4f8
+RMD160 (compat20-x86_64-2.1.tar.bz2) = dfcdb3e1e979bbf0664d5df67265952ac10989ec
+Size (compat20-x86_64-2.1.tar.bz2) = 83540 bytes
diff --git a/emulators/compat20/emulator.mk b/emulators/compat20/emulator.mk
new file mode 100644
index 00000000000..2368932cd9e
--- /dev/null
+++ b/emulators/compat20/emulator.mk
@@ -0,0 +1,44 @@
+# $NetBSD: emulator.mk,v 1.1 2007/08/21 22:49:18 jlam Exp $
+#
+# This file is included by netbsd-compat.mk in the emulator framework.
+#
+# Variables set by this file:
+#
+# EMUL_DISTRO
+# The NetBSD distribution used to provide the files.
+#
+# EMUL_EXEC_FMT
+# The executable format of the emulated operating system.
+#
+# EMULSUBDIR
+# Path relative to ${PREFIX} where the files and directories are
+# located, e.g. emul/aout.
+#
+# DEPENDS_${EMUL_DISTRO}.*
+# A table that maps "modules" to NetBSD package dependencies.
+#
+
+EMUL_DISTRO= netbsd-2.0
+
+EMUL_EXEC_FMT= ELF
+EMULSUBDIR= emul/netbsd
+OPSYS_EMULDIR= ${_OPSYS_EMULDIR.netbsd}
+
+# For COMPAT_NETBSD32, we always need the dependency to supply 32-bit
+# shared libaries for NetBSD-2.0.
+#
+.if ((${EMUL_ARCH} == "i386") && (${MACHINE_ARCH} == "x86_64")) || \
+ ((${EMUL_ARCH} == "sparc") && (${MACHINE_ARCH} == "sparc64"))
+EMULSUBDIR= emul/netbsd32
+OPSYS_EMULDIR= ${_OPSYS_EMULDIR.netbsd32}
+
+DEPENDS_netbsd-2.0.base?= netbsd32_compat20>=2.0:../../emulators/netbsd32_compat20
+#
+# We need to depend on the compat20 package to supply missing shared
+# libraries only on NetBSD>2.0.
+#
+.elif empty(OS_VERSION:M[0-1].*) && empty(OS_VERSION:M2.[0-9]) && \
+ empty(OS_VERSION:M2.[0-9].*) && empty(OS_VERSION:M2.[1-8][0-9].*) && \
+ empty(OS_VERSION:M2.9[0-8]*)
+DEPENDS_netbsd-2.0.base?= compat20>=2.0:../../emulators/compat20
+.endif