Update to Squeak3.10.2.7179-basic image.

Finish splitting package into VM and Image parts.
This commit is contained in:
asau 2010-02-11 02:18:34 +00:00
parent a44c1d3006
commit c9981d9958
21 changed files with 30 additions and 805 deletions

View file

@ -1,13 +1,14 @@
# $NetBSD: Makefile,v 1.40 2010/02/10 23:33:09 bad Exp $
# $NetBSD: Makefile,v 1.41 2010/02/11 02:18:34 asau Exp $
#
DISTNAME= Squeak-3.9-8
PKGNAME= squeak-3.9.8
PKGREVISION= 2
SQUEAK_VERSION= 3.11.3.2135 # see lang/squeak-vm
DISTNAME= Squeak3.10.2-7179-basic
PKGNAME= squeak-3.10.2.7179
CATEGORIES= lang
MASTER_SITES= http://ftp.squeak.org/3.9/unix-linux/
DISTFILES= Squeak-3.9-8.src.tar.gz
DISTFILES+= Squeak3.9-final-7067.zip
MASTER_SITES= http://ftp.squeak.org/3.10/
EXTRACT_SUFX= .zip
DISTFILES= $(DISTNAME)$(EXTRACT_SUFX) SqueakV39.sources.gz
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://squeakvm.org/unix/
@ -15,58 +16,22 @@ COMMENT= Full Smalltalk 80 with portability to UN*X, Mac, and Windows
PKG_DESTDIR_SUPPORT= user-destdir
GNU_CONFIGURE= yes
USE_LIBTOOL= yes
USE_TOOLS+= automake14 gmake gzip bash:run
REPLACE_BASH+= platforms/unix/npsqueak/npsqueakrun.in
DEPENDS= squeak-vm-[0-9]*:../../lang/squeak-vm
AUTOCONF_REQD= 2.57
AUTOMAKE_REQD= 1.4.6
DIST_SUBDIR= squeak
USE_TOOLS+= gzip unzip
NO_BUILD= yes
BUILD_DIRS= ${WRKDIR}/build
CONFIGURE_DIRS= ${WRKDIR}/build
CONFIGURE_SCRIPT= ${WRKSRC}/platforms/unix/config/configure
OVERRIDE_DIRDEPTH= 3
LIBTOOL_OVERRIDE= ${BUILD_DIRS}/libtool
DIST_SUBDIR= squeak
INSTALLATION_DIRS= lib/squeak/$(SQUEAK_VERSION)
SQUEAK_CHANGES= Squeak3.9-final-7067/Squeak3.9-final-7067.changes.gz
SQUEAK_IMAGE= Squeak3.9-final-7067/Squeak3.9-final-7067.image.gz
SQUEAK_SOURCES= Squeak3.9-final-7067/SqueakV39.sources
INSTALLATION_DIRS= bin lib/squeak
INSTALL_ENV+= ROOT=${DESTDIR:Q}
SQUEAK_SOURCES= SqueakV39.sources
post-extract:
${GZIP_CMD} ${WRKDIR}/${SQUEAK_IMAGE:S/.gz$//W}
${GZIP_CMD} ${WRKDIR}/${SQUEAK_CHANGES:S/.gz$//W}
$(GZIP_CMD) -dc $(DISTDIR)/$(DIST_SUBDIR)/$(SQUEAK_SOURCES).gz > $(WRKDIR)/$(SQUEAK_SOURCES)
pre-configure:
cd ${WRKSRC}/platforms/unix/config \
&& ${SETENV} PATH=${PREFIX}/bin:${PATH} ${MAKE} configure
${MKDIR} ${CONFIGURE_DIRS}
do-install:
$(INSTALL_DATA) $(WRKDIR)/$(DISTNAME:=.image) $(DESTDIR)$(PREFIX)/lib/squeak/$(SQUEAK_VERSION)/
$(INSTALL_DATA) $(WRKDIR)/$(DISTNAME:=.changes) $(DESTDIR)$(PREFIX)/lib/squeak/$(SQUEAK_VERSION)/
$(INSTALL_DATA) $(WRKDIR)/$(SQUEAK_SOURCES) $(DESTDIR)$(PREFIX)/lib/squeak/$(SQUEAK_VERSION)/$(SQUEAK_SOURCES)
post-install:
${INSTALL_DATA} ${WRKDIR}/${SQUEAK_CHANGES} ${DESTDIR}${PREFIX}/lib/squeak/
${INSTALL_DATA} ${WRKDIR}/${SQUEAK_IMAGE} ${DESTDIR}${PREFIX}/lib/squeak/
${INSTALL_DATA} ${WRKDIR}/${SQUEAK_SOURCES} ${DESTDIR}${PREFIX}/lib/squeak/
cd ${DESTDIR}${PREFIX}/lib/squeak \
&& ${LN} -s ${SQUEAK_CHANGES:C/.*\///} squeak.changes.gz \
&& ${LN} -s ${SQUEAK_IMAGE:C/.*\///} squeak.image.gz
${INSTALL_SCRIPT} ${WRKDIR}/build/inisqueak ${DESTDIR}${PREFIX}/bin
.include "../../mk/bsd.prefs.mk"
.if ${MACHINE_ARCH} == i386
CONFIGURE_ARGS+= --enable-mpg-mmx
.endif
CONFIGURE_ARGS+= --x-libraries=${X11BASE}
.include "../../audio/nas/buildlink3.mk"
.include "../../graphics/MesaLib/buildlink3.mk"
.include "../../x11/libXt/buildlink3.mk"
.include "../../x11/libXext/buildlink3.mk"
.include "../../x11/xextproto/buildlink3.mk"
.include "../../mk/oss.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

View file

@ -1,40 +1,4 @@
@comment $NetBSD: PLIST,v 1.6 2010/02/10 23:33:09 bad Exp $
bin/inisqueak
bin/squeak
lib/squeak/3.9-8/AioPlugin.a
lib/squeak/3.9-8/AioPlugin.so
lib/squeak/3.9-8/B3DAcceleratorPlugin.a
lib/squeak/3.9-8/B3DAcceleratorPlugin.so
lib/squeak/3.9-8/PseudoTTYPlugin.a
lib/squeak/3.9-8/PseudoTTYPlugin.so
lib/squeak/3.9-8/Squeak3D.a
lib/squeak/3.9-8/Squeak3D.so
lib/squeak/3.9-8/UnixOSProcessPlugin.a
lib/squeak/3.9-8/UnixOSProcessPlugin.so
lib/squeak/3.9-8/XDisplayControlPlugin.a
lib/squeak/3.9-8/XDisplayControlPlugin.so
lib/squeak/3.9-8/npsqueak.so
lib/squeak/3.9-8/squeak
lib/squeak/3.9-8/vm-display-X11.a
lib/squeak/3.9-8/vm-display-X11.so
lib/squeak/3.9-8/vm-display-null.a
lib/squeak/3.9-8/vm-display-null.so
lib/squeak/3.9-8/vm-sound-NAS.a
lib/squeak/3.9-8/vm-sound-NAS.so
lib/squeak/3.9-8/vm-sound-null.a
lib/squeak/3.9-8/vm-sound-null.so
lib/squeak/Squeak3.9-final-7067.changes.gz
lib/squeak/Squeak3.9-final-7067.image.gz
lib/squeak/SqueakV39.sources
lib/squeak/npsqueakregister
lib/squeak/npsqueakrun
lib/squeak/squeak.changes.gz
lib/squeak/squeak.image.gz
man/man1/inisqueak.1
man/man1/squeak.1
share/doc/squeak/COPYING
share/doc/squeak/COPYRIGHT
share/doc/squeak/LICENSE
share/doc/squeak/README.Contributing
share/doc/squeak/README.Keyboard
share/doc/squeak/README.Sound
@comment $NetBSD: PLIST,v 1.7 2010/02/11 02:18:34 asau Exp $
lib/squeak/3.11.3.2135/Squeak3.10.2-7179-basic.changes
lib/squeak/3.11.3.2135/Squeak3.10.2-7179-basic.image
lib/squeak/3.11.3.2135/SqueakV39.sources

View file

@ -1,9 +0,0 @@
@comment $NetBSD: PLIST.Linux,v 1.2 2010/02/10 23:33:09 bad Exp $
lib/squeak/3.9-8/UUIDPlugin.a
lib/squeak/3.9-8/UUIDPlugin.so
lib/squeak/3.9-8/vm-display-fbdev.a
lib/squeak/3.9-8/vm-display-fbdev.so
lib/squeak/3.9-8/vm-sound-ALSA.a
lib/squeak/3.9-8/vm-sound-ALSA.so
lib/squeak/3.9-8/vm-sound-OSS.a
lib/squeak/3.9-8/vm-sound-OSS.so

View file

@ -1,3 +0,0 @@
@comment $NetBSD: PLIST.NetBSD,v 1.2 2010/02/10 23:33:09 bad Exp $
lib/squeak/3.9-8/vm-sound-NetBSD.a
lib/squeak/3.9-8/vm-sound-NetBSD.so

View file

@ -1,24 +1,8 @@
$NetBSD: distinfo,v 1.13 2010/02/10 23:33:09 bad Exp $
$NetBSD: distinfo,v 1.14 2010/02/11 02:18:34 asau Exp $
SHA1 (squeak/Squeak-3.9-8.src.tar.gz) = 9d8b88de09b07a6603cea7447cd3cdfe6c23d463
RMD160 (squeak/Squeak-3.9-8.src.tar.gz) = d97bc098a3a948edc59c522e8a8baeda97fd9de9
Size (squeak/Squeak-3.9-8.src.tar.gz) = 4158596 bytes
SHA1 (squeak/Squeak3.9-final-7067.zip) = 5f6d3c2419f1979bb88f046621a2c7cbf270684c
RMD160 (squeak/Squeak3.9-final-7067.zip) = c2d78cbe0a4b7e4e6cd13a09f80a54e73f28cf8c
Size (squeak/Squeak3.9-final-7067.zip) = 11842207 bytes
SHA1 (patch-aa) = fdb5b9c06e02056d1c52344c1e5577ac9d09a5e6
SHA1 (patch-ab) = f0f2383208e48a33eac912d2c84c731a65a4e4b3
SHA1 (patch-ac) = 38eb12424792eba344c4963132012aa90c70dd8d
SHA1 (patch-ad) = 9acec5fd3cd8677cf3c01aa971a1b882401ed59b
SHA1 (patch-ae) = 54e06ce67bbe71280e846dfbb81e7ebd6becd3f7
SHA1 (patch-af) = 41561264023700df277d81f528c9dad42a11e31f
SHA1 (patch-ag) = b0c63611d88c94d05485e0e113879d197268d739
SHA1 (patch-ah) = b366ba8454e1bc5f182c51f6b39d7621498ee063
SHA1 (patch-ai) = 8ca9289dea3484205b65759f2aa052d57d6af2ee
SHA1 (patch-aj) = 18d81c878ee88bf334e3700d46d66dfa458618d0
SHA1 (patch-ak) = fabbf4d71aaa39fb77d2b51a6e0402500d825009
SHA1 (patch-al) = d58a1800600ff1a124c3db7aa382b085218160f3
SHA1 (patch-am) = a302a00bceff51e43b2af3299433f710917526c3
SHA1 (patch-an) = ab36cdee3ecf1b374ce75780d310596cefe40152
SHA1 (patch-ao) = ff65b7596568178fd1c4e6eb3f8418f6daa8410f
SHA1 (patch-ap) = ebc1dafbbb5018bd19e8775e7d6fb6bd4d0d6cc0
SHA1 (squeak/Squeak3.10.2-7179-basic.zip) = 9eb3c6a617b1e6605867102081b24351dc425697
RMD160 (squeak/Squeak3.10.2-7179-basic.zip) = ba89642f16de25b521f1ca11bf4799589a06f9ff
Size (squeak/Squeak3.10.2-7179-basic.zip) = 7470879 bytes
SHA1 (squeak/SqueakV39.sources.gz) = 44f1438c797457ef0981a905da7928c28b13e2f9
RMD160 (squeak/SqueakV39.sources.gz) = 23ad84695bc3e0596a94fdff8502448579722819
Size (squeak/SqueakV39.sources.gz) = 4170964 bytes

View file

@ -1,12 +0,0 @@
$NetBSD: patch-aa,v 1.5 2004/04/26 07:10:16 fredb Exp $
--- platforms/unix/config/Makefile 2002-06-05 00:17:14.000000000 -0500
+++ platforms/unix/config/Makefile 2004-04-25 15:13:34.000000000 -0500
@@ -1,6 +1,6 @@
configure : .force
./mkacinc > acplugins.m4
- aclocal
+ aclocal-1.4
autoconf
rm acplugins.m4

View file

@ -1,13 +0,0 @@
$NetBSD: patch-ab,v 1.6 2008/01/12 23:30:38 bad Exp $
--- platforms/unix/config/Makefile.install.orig 2006-10-10 13:01:45.000000000 -0600
+++ platforms/unix/config/Makefile.install
@@ -65,7 +65,7 @@ install-doc : squeak.1
echo $(INSTALL_DATA) $(topdir)/platforms/unix/doc/$$f $(ROOT)$(docdir); \
$(INSTALL_DATA) $(topdir)/platforms/unix/doc/$$f $(ROOT)$(docdir); \
done
- -gzip -f9 $(ROOT)$(docdir)/*
+ #-gzip -f9 $(ROOT)$(docdir)/*
$(MKINSTALLDIRS) $(ROOT)$(mandir)/man1
$(INSTALL_DATA) squeak.1 $(ROOT)$(mandir)/man1
rm -f $(ROOT)$(mandir)/man1/inisqueak.1 $(ROOT)$(mandir)/man1/inisqueak.1.gz

View file

@ -1,12 +0,0 @@
$NetBSD: patch-ac,v 1.4 2004/04/26 07:10:16 fredb Exp $
--- platforms/unix/config/config.h.in 2003-09-03 10:43:23.000000000 -0500
+++ platforms/unix/config/config.h.in 2003-09-15 15:15:41.000000000 -0500
@@ -65,6 +65,7 @@
#undef USE_AUDIO_OSS
#undef USE_AUDIO_MACOSX
#undef OSS_DEVICE
+#undef USE_AUDIO_NETBSD
/* header files */

View file

@ -1,12 +0,0 @@
$NetBSD: patch-ad,v 1.3 2008/01/12 23:30:38 bad Exp $
--- platforms/unix/config/configure.ac.orig 2006-10-10 13:01:45.000000000 -0600
+++ platforms/unix/config/configure.ac
@@ -178,6 +178,7 @@ AC_HAVE_HEADERS(features.h)
AC_HAVE_HEADERS(alloca.h) # SunOS5
AC_HEADER_TIME
AC_HEADER_DIRENT
+AC_HAVE_HEADERS(sys/audioio.h)
if test -f "${vmmdir}/vm/interp.h"; then
AC_DEFINE(HAVE_INTERP_H, 1)

View file

@ -1,13 +0,0 @@
$NetBSD: patch-ae,v 1.2 2004/04/26 07:10:16 fredb Exp $
--- platforms/unix/config/make.cfg.in 2003-08-31 12:55:21.000000000 -0500
+++ platforms/unix/config/make.cfg.in 2004-04-25 21:38:41.000000000 -0500
@@ -74,7 +74,7 @@
mandir= @mandir@
imgdir= @imgdir@
plgdir= @plgdir@
-docdir= $(prefix)/doc/squeak
+docdir= $(prefix)/share/doc/squeak
SHELL= @SHELL@
MKINSTALLDIRS= $(SHELL) $(cfgdir)/mkinstalldirs

View file

@ -1,14 +0,0 @@
$NetBSD: patch-af,v 1.2 2004/04/26 07:10:16 fredb Exp $
--- platforms/unix/doc/squeak.1 2003-09-16 00:05:38.000000000 -0500
+++ platforms/unix/doc/squeak.1 2004-04-25 20:45:36.000000000 -0500
@@ -370,6 +370,9 @@
.B \ \ \ sound=NAS
provides sound i/o via the Network Audio System.
.TP
+.B \ \ \ sound=NetBSD
+provides sound via the NetBSD device-independent audio layer.
+.TP
.B \ \ \ sound=Sun
provides sound on Sun Microsystems hardware.
.TP

View file

@ -1,16 +0,0 @@
$NetBSD: patch-ag,v 1.4 2008/01/14 20:39:35 bad Exp $
--- platforms/unix/vm/sqUnixCharConv.c.orig 2006-10-11 06:09:43.000000000 +0200
+++ platforms/unix/vm/sqUnixCharConv.c
@@ -158,7 +158,11 @@ void *uxTextEncoding= (void *)"iso5";
void *uxXWinEncoding= (void *)"iso5";
void *uxUTF8Encoding= (void *)"UTF-8";
#else
+#ifdef __NetBSD__
+void *sqTextEncoding= (void *)"ISO-8859-15";
+#else
void *sqTextEncoding= (void *)"MACINTOSH"; /* xxxFIXME -> "ISO-8859-15" */
+#endif
void *uxPathEncoding= (void *)"UTF-8";
void *uxTextEncoding= (void *)"ISO-8859-15";
void *uxXWinEncoding= (void *)"ISO-8859-1";

View file

@ -1,30 +0,0 @@
$NetBSD: patch-ah,v 1.2 2008/01/12 23:30:38 bad Exp $
--- platforms/unix/vm/sqUnixMain.c.orig 2006-10-10 20:38:14.000000000 -0600
+++ platforms/unix/vm/sqUnixMain.c
@@ -63,7 +63,7 @@
#include <signal.h>
#include <fcntl.h>
-#if defined(__alpha__)
+#if defined(__alpha__) && !defined(__NetBSD__)
# include <sys/sysinfo.h>
# include <sys/proc.h>
#endif
@@ -685,6 +685,7 @@ static struct moduleDescription moduleDe
/* defaults */
{ &displayModule, "display", "Quartz" },
{ &soundModule, "sound", "MacOSX" },
+ { &soundModule, "sound", "NetBSD" },
{ &soundModule, "sound", "Sun" },
{ &soundModule, "sound", "ALSA" },
{ &soundModule, "sound", "null" },
@@ -1306,7 +1307,7 @@ int main(int argc, char **argv, char **e
signal(SIGSEGV, sigsegv);
-#if defined(__alpha__)
+#if defined(__alpha__) && !defined(__NetBSD__)
/* disable printing of unaligned access exceptions */
{
int buf[2]= { SSIN_UACPROC, UAC_NOPRINT };

View file

@ -1,36 +0,0 @@
$NetBSD: patch-ai,v 1.1 2004/04/26 07:10:16 fredb Exp $
--- platforms/unix/vm-display-X11/acinclude.m4 2004-01-29 21:58:37.000000000 -0600
+++ platforms/unix/vm-display-X11/acinclude.m4 2004-04-25 15:04:40.000000000 -0500
@@ -27,12 +27,31 @@
AC_DEFINE(USE_X11, [1])
AC_DEFINE_UNQUOTED(VM_X11DIR, "${x_libraries}")
LIBS="${LIBS} -lX11"
+ case "$host" in
+ *-netbsd*)
+ LIBS="${LIBS} -L${x_libraries} -R${x_libraries}" ;;
+ esac
AC_CHECK_LIB(Xext, XShmAttach)
if test "$have_gl" = ""; then have_gl="no"; fi
AC_CHECK_HEADERS(GL/gl.h, [
have_gl=yes
AC_DEFINE(USE_X11_GLX, [1])
AC_CHECK_LIB(GL,glIsEnabled)
+ case "$host" in
+ *-netbsd*)
+ case "$host" in
+ *-netbsd1*)
+ ;;
+ *-netbsdelf1*)
+ break
+ ;;
+ *)
+ CFLAGS="${CFLAGS} -pthread"
+ LDFLAGS="${LDFLAGS} -pthread"
+ ;;
+ esac
+ ;;
+ esac
])
],[
AC_PLUGIN_DISABLE

View file

@ -1,17 +0,0 @@
$NetBSD: patch-aj,v 1.1 2004/04/26 07:10:16 fredb Exp $
--- platforms/unix/vm-sound-NetBSD/acinclude.m4 1969-12-31 18:00:00.000000000 -0600
+++ platforms/unix/vm-sound-NetBSD/acinclude.m4 2004-04-25 15:05:47.000000000 -0500
@@ -0,0 +1,12 @@
+# -*- sh -*-
+
+AC_MSG_CHECKING([for NetBSD audio])
+AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/audioio.h>],
+ [struct audio_info info; info.blocksize;],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE_UNQUOTED(USE_AUDIO_NETBSD,1)
+],[
+ AC_MSG_RESULT(no)
+ AC_PLUGIN_DISABLE
+])

View file

@ -1,383 +0,0 @@
$NetBSD: patch-ak,v 1.2 2008/01/12 23:30:38 bad Exp $
--- platforms/unix/vm-sound-NetBSD/sqUnixSoundNetBSD.c.orig 2007-12-06 18:47:09.000000000 -0600
+++ platforms/unix/vm-sound-NetBSD/sqUnixSoundNetBSD.c
@@ -0,0 +1,378 @@
+/* sqUnixSoundNetBSD.c -- sound support for NetBSD
+ *
+ * Copyright (C) 1996-2002 Ian Piumarta and other authors/contributors
+ * as listed elsewhere in this file.
+ * All rights reserved.
+ *
+ * This file is part of Unix Squeak.
+ *
+ * This file is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * You may use and/or distribute this file ONLY as part of Squeak, under
+ * the terms of the Squeak License as described in `LICENSE' in the base of
+ * this distribution, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment to the original author(s) (and any
+ * other contributors mentioned herein) in the product documentation
+ * would be appreciated but is not required.
+ *
+ * 2. This notice must not be removed or altered in any source distribution.
+ *
+ * Using (or modifying this file for use) in any context other than Squeak
+ * changes these copyright conditions. Read the file `COPYING' in the
+ * directory `platforms/unix/doc' before proceeding with any such use.
+ *
+ * You are not allowed to distribute a modified version of this file
+ * under its original name without explicit permission to do so. If
+ * you change it, rename it.
+ *
+ * Authors: Ian.Piumarta@inria.fr, Lex Spoon <lex@cc.gatech.edu> and
+ * Frederick Bruckman <fredb@NetBSD.org>.
+ *
+ */
+
+#include "sq.h"
+#include "sqaio.h"
+
+#include <stdio.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <sys/audioio.h>
+#include <errno.h>
+
+
+/* Globals */
+static int auFd= -1; /* open file descriptor on AUDIODEVICE */
+static int fmtStereo; /* whether to use stereo or not */
+static int auBlockCount; /* VM's block size, in frames */
+static int auBlockSize; /* hardware blocksize, in bytes */
+static int auDuplexMode; /* 0: half duplex, !0: full duplex */
+static int auLatency; /* "fudge factor", to help keep the audio
+ hardware buffer filled */
+static int auPlaySemaIndex; /* identifier of audio system semaphore */
+static const char *auDevice; /* AUDIODEVICE, or "/dev/audio" by default */
+
+
+static int sound_AvailableSpace(void);
+
+
+static void auHandle(int fd, void *data, int flags)
+{
+ if (auFd == -1)
+ return;
+
+ if (sound_AvailableSpace() >= (auBlockSize >> 1))
+ signalSemaphoreWithIndex(auPlaySemaIndex);
+
+ aioHandle(fd, auHandle, flags);
+ return;
+}
+
+
+static int sound_Stop(void)
+{
+ if (auFd == -1)
+ return false;
+
+ aioDisable(auFd);
+ close(auFd);
+ auFd= -1;
+
+ return true;
+}
+
+
+static int sound_Start(int frameCount, int samplesPerSec, int stereo, int semaIndex)
+{
+ struct audio_info info;
+
+ /* Set some globals. */
+ auBlockCount= frameCount;
+ fmtStereo= stereo;
+ auPlaySemaIndex= semaIndex;
+
+ if (auFd != -1)
+ sound_Stop();
+
+ if ((auFd= open(auDevice, O_RDWR|O_NONBLOCK)) == -1)
+ {
+ perror(auDevice);
+ return false;
+ }
+
+ AUDIO_INITINFO(&info);
+ info.play.precision= 16;
+ info.play.encoding= AUDIO_ENCODING_SLINEAR;
+ info.play.channels= stereo ? 2 : 1;
+ info.play.sample_rate= samplesPerSec;
+ /*
+ Request desired HW blocksize to be the same as the VM's blocksize.
+ The blocksize could end up being different than what we asked for.
+ */
+ info.blocksize= auBlockSize= frameCount * (stereo ? 4 : 2);
+ info.mode= AUMODE_PLAY|AUMODE_PLAY_ALL;
+
+ if (ioctl(auFd, AUDIO_SETINFO, &info) == -1)
+ {
+ perror("AUDIO_SETINFO");
+ close(auFd);
+ auFd= -1;
+ return false;
+ }
+
+ if (info.blocksize == auBlockSize && info.hiwat > 1)
+ {
+ /*
+ Hurrah! Now tune the high- and low- water marks. Because of the
+ auLatency term, sound_AvailableSpace() will return slightly more
+ than one block after the VM returns from select(). The VM will
+ utilize the headroom to "sync up" when necessary, and thereafter
+ mostly write one full block at a time.
+ */
+ info.hiwat= (info.hiwat > 2) ? 2 : info.hiwat;
+ info.lowat= info.hiwat - 1;
+ if (ioctl(auFd, AUDIO_SETINFO, &info) == -1)
+ {
+ perror("AUDIO_SETINFO");
+ close(auFd);
+ auFd= -1;
+ return false;
+ }
+ /*
+ Set the initial fudge factor to 1/8 of the blocksize.
+ */
+ if (auLatency == 0)
+ auLatency= info.blocksize >> 3;
+ }
+ else
+ {
+ /*
+ The hardware buffer is probably too small, so just use the
+ defaults for high- and low- water marks. Don't bother with the
+ latency term, either, as we can't now sensibly calculate it.
+ */
+ warn("%s: asked for blocksize of %d, got %d!",
+ auDevice, auBlockSize, info.blocksize);
+ auBlockSize= info.blocksize;
+ }
+
+ aioEnable(auFd, 0, AIO_EXT);
+ aioHandle(auFd, auHandle, AIO_W);
+ return true;
+}
+
+
+static int sound_AvailableSpace(void)
+{
+ struct audio_info info;
+ int space;
+
+ if (auFd == -1)
+ return 0;
+
+ if (ioctl(auFd, AUDIO_GETINFO, &info) == -1)
+ {
+ perror("AUDIO_GETINFO");
+ return 0;
+ }
+
+ space= info.hiwat * info.blocksize - info.play.seek + auLatency;
+ return space;
+}
+
+
+static int sound_PlaySamplesFromAtLength(int frameCount, int arrayIndex, int startIndex)
+{
+ int size, totalWritten, written;
+ char *start;
+
+ if (auFd == -1 || frameCount == 0)
+ return 0;
+
+ start= (char *)arrayIndex + 4 * startIndex;
+ size= frameCount * (fmtStereo ? 4 : 2);
+ totalWritten= 0;
+
+ while (totalWritten < size)
+ if ((written= write(auFd, start, size)) == -1)
+ {
+ if (errno == EAGAIN)
+ /*
+ Astute listeners may now hear a "tick", but only the first
+ time the audio is started, as auLatency is preserved across
+ sound_Start() calls.
+ */
+ auLatency= auLatency >> 1;
+ else
+ perror(auDevice);
+ /*
+ In any case, bail. Typically, we've gotten an EAGAIN because
+ the auLatency was initially too high. This means the audio
+ hardware buffer is already full, so there's no sense sitting
+ here in a tight loop, while if write() failed for some other
+ reason, then we *really* want to return control to the VM.
+ */
+#ifdef AUDIO_DEBUG
+ printf("Bytes written: %d; Latency: %d\n", totalWritten, auLatency);
+#endif
+ frameCount= totalWritten/(fmtStereo ? 4 : 2);
+ return frameCount;
+ }
+ else
+ {
+ start += written;
+ size -= written;
+ totalWritten += written;
+ }
+
+#ifdef AUDIO_DEBUG
+ printf("Bytes written: %d; Latency: %d\n", totalWritten, auLatency);
+#endif
+ frameCount= totalWritten/(fmtStereo ? 4 : 2);
+ return frameCount;
+}
+
+
+static int sound_InsertSamplesFromLeadTime(int frameCount, int srcBufPtr,
+ int samplesOfLeadTime)
+{
+ /*
+ We could actually implement this with an mmap()-able audio device,
+ via double-buffering, but it doesn't seem to be worth the trouble.
+ */
+ success(false);
+ return 0;
+}
+
+
+static int sound_PlaySilence(void)
+{
+ int framesWritten;
+ char *buffer;
+
+ if (auFd == -1 || auBlockCount == 0)
+ return 0;
+
+ if ((buffer= calloc(auBlockCount, (fmtStereo ? 4 : 2))) == 0)
+ {
+ perror("calloc");
+ return 0;
+ }
+
+ framesWritten= sound_PlaySamplesFromAtLength(auBlockCount, (int)buffer, 0);
+ return framesWritten;
+}
+
+
+/*
+ Keep it clean, and try to use the simplified "audio" interface to set the
+ level, even though, due to a bug, it will do nothing on most systems older
+ than NetBSD 2.0. In that case, the user may still access the real mixer
+ controls via the command line tool "mixerctl", or various grapical mixers.
+ */
+static int sound_SetRecordLevel(int level)
+{
+ struct audio_info info;
+
+ AUDIO_INITINFO (&info);
+ info.record.gain= (level > AUDIO_MAX_GAIN) ? AUDIO_MAX_GAIN : level;
+
+ if (ioctl(auFd, AUDIO_SETINFO, &info) == -1)
+ perror("AUDIO_SETINFO");
+
+ return;
+}
+
+
+static int sound_StartRecording(int desiredSamplesPerSec, int stereo, int semaIndex)
+{
+ success(false);
+ return 0;
+}
+
+
+static int sound_StopRecording(void)
+{
+ success(false);
+ return 0;
+}
+
+
+static double sound_GetRecordingSampleRate(void)
+{
+ success(false);
+ return 0;
+}
+
+
+static int sound_RecordSamplesIntoAtLength(int buf, int startSliceIndex,
+ int bufferSizeInBytes)
+{
+ success(false);
+ return 0;
+}
+
+
+/*
+ See the comment associated with sound_SetRecordLevel().
+ */
+static void sound_Volume(double *left, double *right)
+{
+ struct audio_info info;
+
+ if (ioctl(auFd, AUDIO_GETINFO, &info) == -1)
+ {
+ perror("AUDIO_GETINFO");
+ success(false);
+ return;
+ }
+
+ *left= *right= (double)info.play.gain/AUDIO_MAX_GAIN;
+
+ return;
+}
+
+
+/*
+ This may not do anything at all. See the comment associated with
+ sound_SetRecordLevel().
+ */
+static void sound_SetVolume(double left, double right)
+{
+ struct audio_info info;
+
+ AUDIO_INITINFO (&info);
+ info.play.gain= AUDIO_MAX_GAIN * left;
+
+ if (ioctl(auFd, AUDIO_SETINFO, &info) == -1)
+ perror("AUDIO_SETINFO");
+
+ return;
+}
+
+
+#include "SqSound.h"
+
+SqSoundDefine(NetBSD);
+
+
+#include "SqModule.h"
+
+static void sound_parseEnvironment(void)
+{
+ char *ev= 0;
+ if ((ev= getenv("AUDIODEVICE"))) auDevice= strdup(ev);
+ else auDevice= strdup("/dev/audio");
+}
+
+static int sound_parseArgument(int argc, char **argv) { return 0; }
+static void sound_printUsage(void) {}
+static void sound_printUsageNotes(void) {}
+static void *sound_makeInterface(void) { return &sound_NetBSD_itf; }
+
+SqModuleDefine(sound, NetBSD);

View file

@ -1,18 +0,0 @@
$NetBSD: patch-al,v 1.1 2004/04/26 07:10:16 fredb Exp $
--- platforms/unix/vm-sound-Sun/acinclude.m4 2003-02-09 10:35:06.000000000 -0600
+++ platforms/unix/vm-sound-Sun/acinclude.m4 2003-09-15 15:15:42.000000000 -0500
@@ -3,11 +3,12 @@
AC_MSG_CHECKING([for SunOS/Solaris audio])
AC_TRY_COMPILE([#include <sys/audioio.h>],[AUDIO_SUNVTS;],[
AC_MSG_RESULT(yes)
- AC_DEFINE_UNQUOTED(HAVE_SYS_AUDIOIO_H,1)
+ AC_DEFINE_UNQUOTED(USE_SUN_AUDIO,1)
],[
AC_TRY_COMPILE([#include <sun/audioio.h>],[AUDIO_SUNVTS;],[
AC_MSG_RESULT(yes)
AC_DEFINE_UNQUOTED(HAVE_SUN_AUDIOIO_H,1)
+ AC_DEFINE_UNQUOTED(USE_SUN_AUDIO,1)
],[
AC_MSG_RESULT(no)
AC_PLUGIN_DISABLE

View file

@ -1,40 +0,0 @@
$NetBSD: patch-am,v 1.1 2008/01/12 23:30:38 bad Exp $
--- platforms/unix/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c.orig 2007-12-06 19:11:42.000000000 -0600
+++ platforms/unix/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c
@@ -1870,7 +1870,7 @@ EXPORT(sqInt) primitiveLockFileRegion(vo
/* Set up the flock structure parameter for fcntl() */
- fileNo = fileno(sqFile->file);
+ fileNo = fileno((FILE *)sqFile->file);
if (exclusive) {
lockStruct.l_type = F_WRLCK;
} else {
@@ -2897,7 +2897,7 @@ EXPORT(sqInt) primitiveTestLockableFileR
/* Set up the flock structure parameter for fcntl() */
- fileNo = fileno(sqFile->file);
+ fileNo = fileno((FILE *)sqFile->file);
if (exclusive) {
lockStruct.l_type = F_WRLCK;
} else {
@@ -2957,7 +2957,7 @@ EXPORT(sqInt) primitiveUnixFileNumber(vo
return interpreterProxy->primitiveFail();
}
sqFile = interpreterProxy->arrayValueOf(sqFileOop);
- fileNo = fileno(sqFile->file);
+ fileNo = fileno((FILE *)sqFile->file);
interpreterProxy->pop(2);
interpreterProxy->pushInteger(fileNo);
}
@@ -3001,7 +3001,7 @@ EXPORT(sqInt) primitiveUnlockFileRegion(
/* Set up the flock structure parameter for fcntl() */
- fileNo = fileno(sqFile->file);
+ fileNo = fileno((FILE *)sqFile->file);
lockStruct.l_type = F_UNLCK;
lockStruct.l_whence = SEEK_SET;
lockStruct.l_start = start;

View file

@ -1,13 +0,0 @@
$NetBSD: patch-an,v 1.1 2008/01/12 23:30:38 bad Exp $
--- platforms/unix/config/inisqueak.in.orig 2006-04-05 19:40:24.000000000 +0200
+++ platforms/unix/config/inisqueak.in
@@ -86,7 +86,7 @@ if test "$1" != ""; then
fi
SQUEAK=${bindir}/squeak
-SOURCES=SqueakV${MAJOR}.sources
+SOURCES=SqueakV39.sources
IMAGE=squeak.image.gz
CHANGES=squeak.changes.gz

View file

@ -1,22 +0,0 @@
$NetBSD: patch-ao,v 1.1 2010/02/10 23:33:09 bad Exp $
--- platforms/unix/config/Makefile.in.orig 2006-04-05 19:40:24.000000000 +0200
+++ platforms/unix/config/Makefile.in 2010-02-08 01:34:56.000000000 +0100
@@ -52,7 +52,7 @@
# VM
$(squeak) : config.sh $(SQLIBS) version.o
- $(LINK) $(squeak) $(SQLIBS) version.o $(LIBS) [plibs] vm/vm.a
+ $(LINK) $(squeak) vm/vm.a $(SQLIBS) version.o $(LIBS) [plibs]
@echo
@size $(squeak)
@echo
@@ -123,7 +123,7 @@
NPSqueak : config.sh $(SQLIBS) version.o $(NPOBJS)
gcc -bundle -flat_namespace -undefined suppress -o NPSqueak \
- $(NPLIBS) $(SQLIBS) version.o $(LIBS) vm/vm.a
+ $(NPLIBS) vm/vm.a $(SQLIBS) version.o $(LIBS)
# manual page

View file

@ -1,25 +0,0 @@
$NetBSD: patch-ap,v 1.1 2010/02/10 23:33:09 bad Exp $
--- platforms/unix/npsqueak/MakefileMakefile.orig 2006-10-10 21:01:44.000000000 +0200
+++ platforms/unix/npsqueak/MakefileMakefile 2010-02-11 00:13:25.000000000 +0100
@@ -5,9 +5,9 @@
############ Customize flags here #######################
INC = -I./include -I/usr/X11R6/include
-CC = gcc
+CC = cc
CFLAGS = $(INC) -O2 -fPIC -Wall
-LD = gcc
+LD = cc
LDFLAGS =
# usually overridden from top level makefile
@@ -26,7 +26,7 @@
npsqueak.so : npsqueak.la
-@rm -f $@
- ln .libs/npsqueak $@
+ ln .libs/npsqueak.so $@
npsqueak.la : npsqueak.lo npunix.lo
../libtool --mode=link $(LD) $(LDFLAGS) npsqueak.lo npunix.lo -avoid-version -module -rpath $(plgdir) -o $@