Squeak for FreeBSD

ここは、Squeakをむとうが使ってみた時の記録です。 多分、FreeBSDでSqueakを使う話になるかと思います。

最近の作業

FreeBSDのscratchでカメラが使えない

  • 20170303
% DISPLAY=:0 scratch
Executing: /usr/local/lib/squeak/4.10.2-2614/squeakvm -encoding UTF-8 -vm-display-x11 -xshm -plugins /usr/local/share/scratch/Plugins/:/usr/local/lib/squeak/4.10.2-2614/ -vm-sound-ALSA /usr/local/share/scratch/Scratch.image 
Fontconfig warning: "local.conf", line 1093: saw number, expected matrix
/usr/local/share/scratch/Plugins//so.CameraPlugin: Undefined symbol "convertImageYUYVToARGB32"
/usr/local/lib/squeak/4.10.2-2614//so.CameraPlugin: Undefined symbol "v4l2_open"
/usr/local/share/scratch/Plugins//so.CameraPlugin: Undefined symbol "convertImageYUYVToARGB32"
/usr/local/lib/squeak/4.10.2-2614//so.CameraPlugin: Undefined symbol "v4l2_open"

Scratch 1.4が、FreeBSD portsやNetBSD pkgsrcで動かないよん

Scratch 1.4が、FreeBSD portsやNetBSD pkgsrcのSqueak VM 4.10.2だと動かないっす。 OpenBSDのVM 3.10だと動いている。

LinuxのVMも4.10.2の様子。

Scratch関連のプラグインかなと思って、とりあえず簡単にコンパイルできたso.ScratchPluginとso.UnicodePluginを入れてみたけど、動かないのは一緒。

落ちたときのスタックトレースは、以下のような感じ。

CHECKING squeakvm

out of memory

1070698616 Behavior>isVariable
1070698524 Behavior>basicNew:
  (snip; Behavior>basicNew: * たくさん)
1070682240 Behavior>basicNew:
1070682148 Behavior>new:
1070682056 Form>setExtent:depth:
1070681964 ColorForm>setExtent:depth:
1070681808 Form class>extent:depth:
1070681716 Form class>extent:
1070663580 DisplayText>composeForm
1070663488 DisplayText>form
1070660892 DisplayText>displayOn:at:clippingBox:rule:fillColor:
1070660800 DisplayObject>displayOn:at:
1070660708 String>displayOn:at:
1070660616 String>displayAt:
  (snip)

ports/171291: lang/squeak 4.4.7_2 - invalid UTF8 - UTF8TextConverter class>> errorMalFormedInput:

Logs

  • SqueakDebug.log
  • Build log (squeak.20120906.txt)

Some more information

differences plugins and ldds vs. squeakvm.org VM

  • ldd.diff.20120906.txt

本家で提供されていないリビジョンのtar ballを作成する。

  • 2012年05月27日(日)

UNIX用のSqueak VMのソースは、以下で提供されている。

ただ、ここではあるマイルストーンを達成した段階のソースだけが公開されていて、欲しいバージョンが提供されていないことがあったりする。 特に、FreeBSDの lang/squeak では、マイルストーンのrev. 2357では動作せず、rev. 2375だと動作する。 また、amd64用には、rev. 2383を使ったバイナリが提供されている。

そこで、今回は、欲しいリビジョンのソースtar ballを作成する手順を紹介する。

実際の作業

リビジョン2383を指定して、VMソースを取ってくる。

mutoubushinokonpyuta-4 [ ~ ] % svn checkout -r 2383 http://squeakvm.org/svn/squeak/trunk/platforms/
  (snip)

platforms内は、以下のとおり。

mutoubushinokonpyuta-4 [ ~ ] % cd platforms
mutoubushinokonpyuta-4 [ ~/platforms ] % ls   
Cross   Mac OS  RiscOS  iOS     unix    win32

(FreeBSD buildに) 不要なアーキテクチャを消す。

mutoubushinokonpyuta-4 [ ~/platforms ] % rm -rf Mac\ OS RiscOS iOS win32

FreeBSD lang/squeakが期待するディレクトリを作成して、platformsの中身を持っていく。

mutoubushinokonpyuta-4 [ ~/platforms ] % cd ..
mutoubushinokonpyuta-4 [ ~ ] % mkdir Squeak-4.4.7.2383-src
mutoubushinokonpyuta-4 [ ~ ] % mv platforms/* Squeak-4.4.7.2383-src

ライブラリのインストールディレクトリ場所などとして利用されるリビジョン情報を作成する。

mutoubushinokonpyuta-4 [ ~ ] % echo "2383" > Squeak-4.4.7.2383-src/unix/svnversion

Subversion管理データを消す。

mutoubushinokonpyuta-4 [ ~ ] % rm -rf Squeak-4.4.7.2383-src/**/.svn

tar ballを作る。

mutoubushinokonpyuta-4 [ ~ ] % tar zcvf Squeak-4.4.7.2383-src.tar.gz Squeak-4.4.7.2383-src

lang/squeak VMの4.4.7.2357への更新

  • 2011/03/24

すごく時間があいてしまった。

とりあえず、squeak-vmを4.4.7.2357に更新するべく作業をする。

まだ、以下のような感じ。

insp9100% sudo make
  (snip)
insp9100% sudo make
===>   squeak-4.4.7 depends on executable: unzip - found
===>   squeak-4.4.7 depends on file: /usr/local/libdata/pkgconfig/x11.pc - found
===>   squeak-4.4.7 depends on file: /usr/local/bin/cmake - found
===>   squeak-4.4.7 depends on shared library: audio - found
===>   squeak-4.4.7 depends on shared library: ffi - found
===>   squeak-4.4.7 depends on shared library: GLU.1 - found
===>  Configuring for squeak-4.4.7
pwd
/usr/home/mutoh/work/squeak/4.4.7.2357/squeak
echo --with-x
--with-x
/bin/mkdir -p /usr/home/mutoh/work/squeak/4.4.7.2357/squeak/work/Squeak-4.4.7.2357-src
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at CMakeLists.txt:58 (STRING):
  string sub-command REGEX, mode REPLACE needs at least 6 arguments total to
  command.


CMake Error at CMakeLists.txt:59 (STRING):
  string sub-command REGEX, mode REPLACE needs at least 6 arguments total to
  command.


CMake Error at CMakeLists.txt:60 (STRING):
  string sub-command REGEX, mode REPLACE needs at least 6 arguments total to
  command.


-- Using CFLAGS -O2 -pipe -fno-strict-aliasing
CMake Error at vm/config.cmake:5 (STRING):
  string sub-command REGEX, mode REPLACE needs at least 6 arguments total to
  command.
Call Stack (most recent call first):
  CMakeLists.txt:124 (INCLUDE)


CMake Error at vm/config.cmake:6 (STRING):
  string sub-command REGEX, mode REPLACE needs at least 6 arguments total to
  command.
Call Stack (most recent call first):
  CMakeLists.txt:124 (INCLUDE)


CMake Error at vm/config.cmake:7 (STRING):
  string sub-command REGEX, mode REPLACE needs at least 6 arguments total to
  command.
Call Stack (most recent call first):
  CMakeLists.txt:124 (INCLUDE)


CMake Error at vm/config.cmake:8 (STRING):
  string sub-command REGEX, mode REPLACE needs at least 6 arguments total to
  command.
Call Stack (most recent call first):
  CMakeLists.txt:124 (INCLUDE)


-- Looking for XOpenDisplay in /usr/local/lib/libX11.so;/usr/local/lib/libXext.so
-- Looking for XOpenDisplay in /usr/local/lib/libX11.so;/usr/local/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/local/lib/libX11.so
-- Found OpenGL: /usr/local/lib/libGL.so 
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Looking for atexit
-- Looking for atexit - found
-- Looking for on_exit
-- Looking for on_exit - not found
-- Looking for interp.h
-- Looking for interp.h - found
-- Check size of int
-- Check size of int - done
-- Check size of long
-- Check size of long - done
-- Check size of long long
-- Check size of long long - done
-- Check size of void *
-- Check size of void * - done
-- Looking for alloca.h
-- Looking for alloca.h - not found
-- Looking for alloca
-- Looking for alloca - not found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Looking for sys/filio.h
-- Looking for sys/filio.h - found
-- Looking for nanosleep
-- Looking for nanosleep - found
-- Looking for iconv.h
-- Looking for iconv.h - not found
-- Looking for langinfo.h
-- Looking for langinfo.h - found
-- Looking for dlfcn.h
-- Looking for dlfcn.h - found
-- Looking for dlopen in dl
-- Looking for dlopen in dl - not found
-- Looking for dlopen
-- Looking for dlopen - found
-- Looking for _dyld_present
-- Looking for _dyld_present - not found
-- Looking for snprintf
-- Looking for snprintf - found
-- Looking for __snprintf
-- Looking for __snprintf - not found
-- Looking for tzset
-- Looking for tzset - found
-- Looking for timezone
-- Looking for timezone - found
-- Performing Test HAVE_TM_GMTOFF
-- Performing Test HAVE_TM_GMTOFF - Success
-- Looking for mmap
-- Looking for mmap - found
-- checking for module 'freetype2'
--   found freetype2, version 12.2.6
-- FT2Plugin: freetype2 found
-- Looking for dirent.h
-- Looking for dirent.h - found
-- Looking for sys/ndir.h
-- Looking for sys/ndir.h - not found
-- Looking for sys/dir.h
-- Looking for sys/dir.h - found
-- Looking for ndir.h
-- Looking for ndir.h - not found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Check if the system is big endian
-- Searching 16 bit integer
-- Using unsigned short
-- Check if the system is big endian - little endian
-- SocketPlugin: libsocket not found
-- SocketPlugin: libnsl not found
-- Looking for GL/gl.h
-- Looking for GL/gl.h - found
-- PseudoTTYPlugin: util.h not found
-- PseudoTTYPlugin: /usr/include/libutil.h
-- PseudoTTYPlugin: /usr/lib/libutil.so
-- PseudoTTYPlugin: pty.h not found
-- PseudoTTYPlugin: stropts.h not found
-- Looking for openpty
-- Looking for openpty - not found
-- Looking for openpty in util
-- Looking for openpty in util - found
-- UnixOSProcessPlugin: /usr/lib/libpthread.so
-- Looking for unsetenv
-- Looking for unsetenv - found
-- Looking for XShmAttach in Xext
-- Looking for XShmAttach in Xext - found
-- Looking for X11/extensions/Xrender.h
-- Looking for X11/extensions/Xrender.h - found
-- Looking for XRenderQueryVersion in Xrender
-- Looking for XRenderQueryVersion in Xrender - found
-- Looking for GL/glx.h
-- Looking for GL/glx.h - found
-- Looking for sys/select.h
-- Looking for sys/select.h - found
-- vm-sound-NAS: /usr/local/include/audio/audio.h
-- vm-sound-NAS: /usr/local/lib/libaudio.so
-- vm-sound-Sun: sys/audioio.h not found
-- vm-sound-Sun: sun/audioio.h not found
-- vm-sound-Sun: stropts.h not found
!! vm-sound-Sun disabled
-- vm-sound-OSS: alsa/asoundlib.h not found
-- vm-sound-OSS: libasound not found
!! vm-sound-OSS disabled
!! vm-display-Quartz disabled
-- vm-sound-pulse: /usr/local/lib/libpulse-simple.so
!! vm-sound-MacOSX disabled
-- vm-display-fbdev: linux/fb.h not found
!! vm-display-fbdev disabled
-- vm-sound-ALSA: alsa/asoundlib.h not found
-- vm-sound-ALSA: libasound not found
!! vm-sound-ALSA disabled
-- Configuring incomplete, errors occurred!
*** Error code 1

Stop in /usr/home/mutoh/work/squeak/4.4.7.2357/squeak.
*** Error code 1

Stop in /usr/home/mutoh/work/squeak/4.4.7.2357/squeak.

全然、あかんやん(;-;)

とりあえず、NetBSDのパッチを地味に取り込もう。

Pharo by example

  • 2009年10月19日(月)

twitter:umejavaより、 Pharo by example

例によって、lulu.comのオンデマンド印刷も可能で、PDFはフリーで公開です。

ゲームセンターあらしだった

  • 2009年10月17日(土)

ここに書くべきことでは無いような気もするけど、他に適当な所もないのでまあいいや。

1970年生まれのわたくしにとって、原点は間違いなく「ゲームセンターあらし」でした。 それ以外にも、向かいの団地の友人がPC-6001持ってたのも大きいんだけど。

リンク

シロクマの力

  • 2009年10月14日(水)

twitterのumajavaさんのつぶやきから、 GNU Smalltalk本がフリーで提供されていることを知った。

umejavaさん、またLiveCD(PowerOfWhiteBear)作ってはる… タフだなぁ。

Last modified: 2008-12-30
Post-it: New Post-it (help)

Text color: [_][_][_][_]

Background: [_][_][_][_][_][_]

Draw Line:

x: y: