diff options
author | jlam <jlam@pkgsrc.org> | 2007-08-21 22:49:02 +0000 |
---|---|---|
committer | jlam <jlam@pkgsrc.org> | 2007-08-21 22:49:02 +0000 |
commit | ffd0fa8226d0808ce1982c1aede01b2328403b8f (patch) | |
tree | c963fbe349aa6c3a854fc36e80c1b467ee94113c /emulators/compat12 | |
parent | f7addad279e6d9bddee039abf2c4e73c32086181 (diff) | |
download | pkgsrc-ffd0fa8226d0808ce1982c1aede01b2328403b8f.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/compat12')
-rw-r--r-- | emulators/compat12/DEINSTALL | 14 | ||||
-rw-r--r-- | emulators/compat12/DESCR | 7 | ||||
-rw-r--r-- | emulators/compat12/INSTALL | 50 | ||||
-rw-r--r-- | emulators/compat12/MESSAGE | 7 | ||||
-rw-r--r-- | emulators/compat12/Makefile | 61 | ||||
-rw-r--r-- | emulators/compat12/PLIST | 5 | ||||
-rw-r--r-- | emulators/compat12/PLIST.a.out | 7 | ||||
-rw-r--r-- | emulators/compat12/PLIST.i386 | 2 | ||||
-rw-r--r-- | emulators/compat12/PLIST.m68k | 3 | ||||
-rw-r--r-- | emulators/compat12/PLIST.ns32k | 2 | ||||
-rw-r--r-- | emulators/compat12/PLIST.sparc | 2 | ||||
-rw-r--r-- | emulators/compat12/distinfo | 26 | ||||
-rw-r--r-- | emulators/compat12/emulator.mk | 51 |
13 files changed, 113 insertions, 124 deletions
diff --git a/emulators/compat12/DEINSTALL b/emulators/compat12/DEINSTALL deleted file mode 100644 index 5bb3b58fdf7..00000000000 --- a/emulators/compat12/DEINSTALL +++ /dev/null @@ -1,14 +0,0 @@ -# $NetBSD: DEINSTALL,v 1.2 2003/08/30 18:53:07 jlam Exp $ - -case ${STAGE} in -POST-DEINSTALL) - COMPAT_LIBDIR=@COMPAT_LIBDIR@ - - ${RMDIR} -p ${PKG_PREFIX}/${COMPAT_LIBDIR} 2>/dev/null || ${TRUE} - - # Regenerate the shared library cache. This should work on either - # a.out or on ELF with the 1.5 release. - # - ( @LDCONFIG@ || ${TRUE} ) >/dev/null 2>&1 - ;; -esac diff --git a/emulators/compat12/DESCR b/emulators/compat12/DESCR index 3d5301a947f..53b97b9704b 100644 --- a/emulators/compat12/DESCR +++ b/emulators/compat12/DESCR @@ -1,5 +1,2 @@ -This package supplies the user files necessary for full compatibility with -dynamically linked executables compiled under NetBSD 1.1 through 1.2.1. -You still need the option COMPAT_12 in your kernel configuration (and -probably others; see options(4) for more information) to make use of -NetBSD 1.2 binaries. +This package supplies the user files needed to run dynamically linked +executables compiled under NetBSD 1.1 through 1.2. diff --git a/emulators/compat12/INSTALL b/emulators/compat12/INSTALL deleted file mode 100644 index 41d5c283040..00000000000 --- a/emulators/compat12/INSTALL +++ /dev/null @@ -1,50 +0,0 @@ -# $NetBSD: INSTALL,v 1.2 2003/08/30 18:53:07 jlam Exp $ - -case ${STAGE} in -POST-INSTALL) - MACHINE_ARCH=@MACHINE_ARCH@ - OBJECT_FMT=@OBJECT_FMT@ - - # Only create the symlink on certain platform/object combinations. - # - create_emul_symlink=0 - if [ "${OBJECT_FMT}" = "ELF" ] && \ - [ "${MACHINE_ARCH}" = "i386" -o "${MACHINE_ARCH}" = "sparc" ] - then - create_emul_symlink=1 - fi - - if [ ${create_emul_symlink} = 1 ] - then - # Create a symlink from /emul/aout --> ${PKG_PREFIX}/emul/out - # if it doesn't already exist. Warn if we can't do this. - # - emul=aout - if [ "`cd /etc && cd ${PKG_PREFIX}/emul/$emul 2>/dev/null && pwd -P`" \ - != "`cd / && cd /emul/$emul 2>/dev/null && pwd -P`" ] - then - if [ -e /emul/$emul -o -L /emul/$emul ] || \ - [ \( -e /emul -o -L /emul \) -a ! -d /emul ] - then - ${CAT} <<EOF -============================================================================== - IMPORTANT: You must create a symbolic link from /emul/$emul - to ${PKG_PREFIX}/emul/$emul in order for this package to work - properly. - - (It seems there is something else located at /emul/$emul.) -============================================================================== -EOF - else - ${MKDIR} -p /emul - ${LN} -sf ${PKG_PREFIX}/emul/$emul /emul/$emul - fi - fi - fi - - # Regenerate the shared library cache. This should work on either - # a.out or on ELF with the 1.5 release. - # - ( @LDCONFIG@ || ${TRUE} ) >/dev/null 2>&1 - ;; -esac diff --git a/emulators/compat12/MESSAGE b/emulators/compat12/MESSAGE new file mode 100644 index 00000000000..ab811cd3b1f --- /dev/null +++ b/emulators/compat12/MESSAGE @@ -0,0 +1,7 @@ +=========================================================================== +$NetBSD: MESSAGE,v 1.1 2007/08/21 22:49:03 jlam Exp $ + +The COMPAT_12 option must be included in the kernel configuration (and +possibly others; see options(4) for more information) to make use of +NetBSD 1.2 binaries. +=========================================================================== diff --git a/emulators/compat12/Makefile b/emulators/compat12/Makefile index c0e8a99c274..b495acb9c95 100644 --- a/emulators/compat12/Makefile +++ b/emulators/compat12/Makefile @@ -1,44 +1,31 @@ -# $NetBSD: Makefile,v 1.32 2006/10/19 19:37:38 wiz Exp $ -# +# $NetBSD: Makefile,v 1.33 2007/08/21 22:49:04 jlam Exp $ -DISTNAME= compat12-${MACHINE_ARCH} -PKGNAME= compat12-1.2.1 -CATEGORIES= emulators -MASTER_SITES= ${MASTER_SITE_LOCAL} +DISTNAME= compat12 # overridden below +NETBSD_VERSION= 1.2 +PKGREVISION= 1 -MAINTAINER= pkgsrc-users@NetBSD.org HOMEPAGE= http://www.NetBSD.org/Releases/formal-1.2/index.html -COMMENT= Shared libraries for NetBSD 1.2 (and earlier) compatibility - -ONLY_FOR_PLATFORM= NetBSD-*-i386 NetBSD-*-m68k NetBSD-*-ns32k \ - NetBSD-*-sparc -NO_SRC_ON_FTP= Already in MASTER_SITE_LOCAL - -NO_BUILD= yes -NO_MTREE= yes -CHECK_SHLIBS_SUPPORTED= no - -FILES_SUBST+= COMPAT_LIBDIR=${COMPAT_LIBDIR:Q} -FILES_SUBST+= MACHINE_ARCH=${MACHINE_ARCH:Q} -FILES_SUBST+= OBJECT_FMT=${OBJECT_FMT:Q} -FILES_SUBST+= LDCONFIG=${LDCONFIG:Q} - -.include "../../mk/bsd.prefs.mk" - -# This installs in /usr (or /emul/aout/usr) to avoid dynamic linker annoyances -.if ${OBJECT_FMT} == "ELF" && \ - (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "sparc") -EMULSUBDIR= emul/aout -COMPAT_LIBDIR= ${EMULSUBDIR}/usr/lib -.elif ${OPSYS} == "NetBSD" -LOCALBASE= /usr -COMPAT_LIBDIR= lib -.endif +COMMENT= Shared libraries for NetBSD 1.2 compatibility + +EMUL_PLATFORMS= netbsd-i386 netbsd-m68k netbsd-ns32k netbsd-sparc + +ONLY_FOR_PLATFORM= NetBSD-1.2[A-Z]*-* NetBSD-1.[3-9]*-* \ + NetBSD-[2-9]*-* NetBSD-[1-9][0-9]*-* -PLIST_SUBST+= COMPAT_LIBDIR=${COMPAT_LIBDIR:Q} +.include "../../emulators/compat_netbsd/Makefile.common" -do-install: - ${INSTALL_DATA_DIR} ${PREFIX}/${COMPAT_LIBDIR} - ${INSTALL_DATA} ${WRKDIR}/lib*.so* ${PREFIX}/${COMPAT_LIBDIR} +.if (${EMUL_PLATFORM} == "netbsd-ns32k") +DISTNAME= compat12-${EMUL_ARCH}-1.2 +.else +DISTNAME= compat12-${EMUL_ARCH}-1.2.1 +.endif + +# We need to depend on the compat13 package to supply shared libraries +# missing from compat12 on NetBSD>1.3. +# +.if empty(OS_VERSION:M0.[0-9]*) && empty(OS_VERSION:M1.[0-2]*) && \ + empty(OS_VERSION:M1.3) && empty(OS_VERSION:M1.3.*) +DEPENDS+= compat13>=1.3:../../emulators/compat13 +.endif .include "../../mk/bsd.pkg.mk" diff --git a/emulators/compat12/PLIST b/emulators/compat12/PLIST deleted file mode 100644 index dbf2bf5e0e5..00000000000 --- a/emulators/compat12/PLIST +++ /dev/null @@ -1,5 +0,0 @@ -@comment $NetBSD: PLIST,v 1.1 2001/10/31 23:52:20 zuntum Exp $ -${COMPAT_LIBDIR}/libedit.so.0.0 -${COMPAT_LIBDIR}/libg++.so.2.0 -${COMPAT_LIBDIR}/libg++.so.3.0 -${COMPAT_LIBDIR}/libutil.so.3.2 diff --git a/emulators/compat12/PLIST.a.out b/emulators/compat12/PLIST.a.out new file mode 100644 index 00000000000..cf0d0e35810 --- /dev/null +++ b/emulators/compat12/PLIST.a.out @@ -0,0 +1,7 @@ +@comment $NetBSD: PLIST.a.out,v 1.1 2007/08/21 22:49:04 jlam Exp $ +${EMULSUBDIRSLASH}usr/lib/libedit.so.0.0 +${EMULSUBDIRSLASH}usr/lib/libg++.so.2.0 +${EMULSUBDIRSLASH}usr/lib/libg++.so.3.0 +${EMULSUBDIRSLASH}usr/lib/libutil.so.3.2 +@dirrm ${EMULSUBDIRSLASH}usr/lib +@dirrm ${EMULSUBDIRSLASH}usr diff --git a/emulators/compat12/PLIST.i386 b/emulators/compat12/PLIST.i386 new file mode 100644 index 00000000000..fa3cdabe3cc --- /dev/null +++ b/emulators/compat12/PLIST.i386 @@ -0,0 +1,2 @@ +@comment $NetBSD: PLIST.i386,v 1.1 2007/08/21 22:49:04 jlam Exp $ +${EMULSUBDIRSLASH}usr/lib/libkafs.so.2.0 diff --git a/emulators/compat12/PLIST.m68k b/emulators/compat12/PLIST.m68k new file mode 100644 index 00000000000..37eb2228d0b --- /dev/null +++ b/emulators/compat12/PLIST.m68k @@ -0,0 +1,3 @@ +@comment $NetBSD: PLIST.m68k,v 1.1 2007/08/21 22:49:04 jlam Exp $ +${EMULSUBDIRSLASH}usr/lib/libkafs.so.2.0 +${EMULSUBDIRSLASH}usr/lib/libkvm.so.4.0 diff --git a/emulators/compat12/PLIST.ns32k b/emulators/compat12/PLIST.ns32k new file mode 100644 index 00000000000..4d55f4260ac --- /dev/null +++ b/emulators/compat12/PLIST.ns32k @@ -0,0 +1,2 @@ +@comment $NetBSD: PLIST.ns32k,v 1.1 2007/08/21 22:49:04 jlam Exp $ +${EMULSUBDIRSLASH}usr/lib/libkvm.so.4.0 diff --git a/emulators/compat12/PLIST.sparc b/emulators/compat12/PLIST.sparc new file mode 100644 index 00000000000..4fd75a9191b --- /dev/null +++ b/emulators/compat12/PLIST.sparc @@ -0,0 +1,2 @@ +@comment $NetBSD: PLIST.sparc,v 1.1 2007/08/21 22:49:05 jlam Exp $ +${EMULSUBDIRSLASH}usr/lib/libkvm.so.4.0 diff --git a/emulators/compat12/distinfo b/emulators/compat12/distinfo index a0a1efa216f..e932d7558bd 100644 --- a/emulators/compat12/distinfo +++ b/emulators/compat12/distinfo @@ -1,14 +1,14 @@ -$NetBSD: distinfo,v 1.4 2005/10/23 14:32:06 rillig Exp $ +$NetBSD: distinfo,v 1.5 2007/08/21 22:49:05 jlam Exp $ -SHA1 (compat12-i386.tar.gz) = bce1f72c4fd9cdbe25a219a65ee0af7dd5257f16 -RMD160 (compat12-i386.tar.gz) = 63ea39032c6ea1a514aea0e80494d3910b31b33f -Size (compat12-i386.tar.gz) = 285376 bytes -SHA1 (compat12-m68k.tar.gz) = d319f63b47dbf28692796be296bbf7fcba2e5b4f -RMD160 (compat12-m68k.tar.gz) = 55bb1555c20f617f950a917c2ebdf35ae5a7bcea -Size (compat12-m68k.tar.gz) = 277202 bytes -SHA1 (compat12-ns32k.tar.gz) = 66cb355f99369d2ce0a0e07c0f97593d57a5c2f1 -RMD160 (compat12-ns32k.tar.gz) = 688e2b2b812945861a289a8bc8459c7b1116bdee -Size (compat12-ns32k.tar.gz) = 267367 bytes -SHA1 (compat12-sparc.tar.gz) = 4af06ed70c66af5d676b292fe24dd0f945337916 -RMD160 (compat12-sparc.tar.gz) = e8e6d4a8b090e1f4bac9783ed49813bda70d52b7 -Size (compat12-sparc.tar.gz) = 298095 bytes +SHA1 (compat12-i386-1.2.1.tar.bz2) = 84a9c002fc3a67f5a6eccbaee395f01980d562f8 +RMD160 (compat12-i386-1.2.1.tar.bz2) = 38c9d8dd303f6e8d14837cbc205bb5bbeb23449c +Size (compat12-i386-1.2.1.tar.bz2) = 243236 bytes +SHA1 (compat12-m68k-1.2.1.tar.bz2) = 0cccfcff8e7fea3177fa963afbed44aa16923cb0 +RMD160 (compat12-m68k-1.2.1.tar.bz2) = 1ca54e91cb4d0025d30e30ed1fe02438d82a6b82 +Size (compat12-m68k-1.2.1.tar.bz2) = 240457 bytes +SHA1 (compat12-ns32k-1.2.tar.bz2) = dfcd0f03e554dec5622a4e1a12b27cdbf467714b +RMD160 (compat12-ns32k-1.2.tar.bz2) = 3d0b27a62b825a297b9592730302f7492d94274e +Size (compat12-ns32k-1.2.tar.bz2) = 235752 bytes +SHA1 (compat12-sparc-1.2.1.tar.bz2) = fe9b7b34b71332cdf1cf7a86f10ea1ce7be015b6 +RMD160 (compat12-sparc-1.2.1.tar.bz2) = d7d19aa0d5ed30185f16b4504474a82183f3a40a +Size (compat12-sparc-1.2.1.tar.bz2) = 255268 bytes diff --git a/emulators/compat12/emulator.mk b/emulators/compat12/emulator.mk new file mode 100644 index 00000000000..e94e38bfcdb --- /dev/null +++ b/emulators/compat12/emulator.mk @@ -0,0 +1,51 @@ +# $NetBSD: emulator.mk,v 1.1 2007/08/21 22:49:05 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. +# +# OPSYS_EMULDIR +# Path through which the platform expects to find a "chroot" +# installation of the files and directories, e.g. /emul/aout. +# +# DEPENDS_${EMUL_DISTRO}.* +# A table that maps "modules" to NetBSD package dependencies. +# + +EMUL_DISTRO= netbsd-1.2 + +# i386 and sparc switched from a.out to ELF post-1.4. +# arm, m68k and vax switched from a.out to ELF post-1.5. +# ns32k never switched from a.out. +# +.if (${EMUL_ARCH} == "arm") || (${EMUL_ARCH} == "i386") || \ + (${EMUL_ARCH} == "m68k") || (${EMUL_ARCH} == "ns32k") || \ + (${EMUL_ARCH} == "sparc") || (${EMUL_ARCH} == "vax") +EMUL_EXEC_FMT= a.out +.else +EMUL_EXEC_FMT= ELF +.endif + +.if (${NATIVE_EXEC_FMT} == "ELF") && (${EMUL_EXEC_FMT} == "a.out") +EMULSUBDIR= emul/aout +OPSYS_EMULDIR= ${_OPSYS_EMULDIR.aout} +.else +EMULSUBDIR= emul/netbsd +OPSYS_EMULDIR= ${_OPSYS_EMULDIR.netbsd} +.endif + +# We need a dependency only for NetBSD>=1.3. +.if empty(OS_VERSION:M0.[0-9]*) && empty(OS_VERSION:M1.[0-1]*) && \ + empty(OS_VERSION:M1.2) && empty(OS_VERSION:M1.2.*) +DEPENDS_netbsd-1.2.base?= compat12>=1.2:../../emulators/compat12 +.endif |