[Vm-dev] Newly built VM not finding its display plugin :-(

Fabio Niephaus lists at fniephaus.com
Mon Nov 14 00:17:11 UTC 2016


-- 

On Mon, Nov 14, 2016 at 12:41 AM Hans-Martin Mosner <hmm at heeg.de> wrote:

>
> Hi, I'm in the process of creating a simple and reproducible automated VM
> build environment using Docker. My current
> docker image basically seems to work, however, I've not been able to run
> the created executable yet.
>
> I've naively assumed that the shell script "squeak" in directory
> .../products/sqcogspur64linux would do the right thing,
> but it complains that it could not find the display driver: "could not
> find display driver vm-display-X11".
>

Do you have all dependencies installed for your platform?
Especially: libx11-dev/libx11-dev:i386

https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/3453ebe4a374a21b0e9a058d353b45437c540bf7/.travis_install.sh#L3-L32


Fabio


>
> The direcory structure in "products" differs a bit from the release VM
> directory structure, but it looks like it is
> supposed to work anyway.
>
> I've done an strace of the process, and it finds and opens the plugin just
> fine (twice, actually), but just before
> writing the error message it seems to want to open it again under various
> different names, just not the right one...
>
> Here are the relevant strace lines of the first two plugin maps:
>
> stat("sqcogspur64linux/lib/squeak/5.0-/vm-display-X11",
> {st_mode=S_IFREG|0755, st_size=373136, ...}) = 0
> open("sqcogspur64linux/lib/squeak/5.0-/vm-display-X11",
> O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 j\0\0\0\0\0\0"...,
> 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=373136, ...}) = 0
> getcwd("/tmp/products", 128)            = 14
> mmap(NULL, 2212928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
> = 0x7f3938d0d000
> mprotect(0x7f3938d26000, 2097152, PROT_NONE) = 0
> mmap(0x7f3938f26000, 8192, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19000) = 0x7f3938f26000
> mmap(0x7f3938f28000, 5184, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3938f28000
> close(3)                                = 0
>
> stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11",
> {st_mode=S_IFREG|0755, st_size=373136, ...}) = 0
> open("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11",
> O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 j\0\0\0\0\0\0"...,
> 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=373136, ...}) = 0
> mmap(NULL, 2212928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
> = 0x7f3938d0d000
> mprotect(0x7f3938d26000, 2097152, PROT_NONE) = 0
> mmap(0x7f3938f26000, 8192, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19000) = 0x7f3938f26000
> mmap(0x7f3938f28000, 5184, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3938f28000
> close(3)                                = 0
>
> But the last attempt fails:
>
> stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11.so",
> 0x7ffd9d228780) = -1 ENOENT (No such file or
> directory)
> stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11.dylib",
> 0x7ffd9d228780) = -1 ENOENT (No such file or
> directory)
> stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/libvm-display-X11",
> 0x7ffd9d228780) = -1 ENOENT (No such file or
> directory)
> stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/libvm-display-X11.so",
> 0x7ffd9d228780) = -1 ENOENT (No such file or
> directory)
> stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/libvm-display-X11.dylib",
> 0x7ffd9d228780) = -1 ENOENT (No such file
> or directory)
> stat("/lib/x86_64-linux-gnu/vm-display-X11", 0x7ffd9d228780) = -1 ENOENT
> (No such file or directory)
> stat("/lib/x86_64-linux-gnu/vm-display-X11.so", 0x7ffd9d228780) = -1
> ENOENT (No such file or directory)
> stat("/lib/x86_64-linux-gnu/vm-display-X11.dylib", 0x7ffd9d228780) = -1
> ENOENT (No such file or directory)
> stat("/lib/x86_64-linux-gnu/libvm-display-X11", 0x7ffd9d228780) = -1
> ENOENT (No such file or directory)
> stat("/lib/x86_64-linux-gnu/libvm-display-X11.so", 0x7ffd9d228780) = -1
> ENOENT (No such file or directory)
> stat("/lib/x86_64-linux-gnu/libvm-display-X11.dylib", 0x7ffd9d228780) = -1
> ENOENT (No such file or directory)
> stat("/lib/vm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or
> directory)
> stat("/lib/vm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file
> or directory)
> stat("/lib/vm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such
> file or directory)
> stat("/lib/libvm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file
> or directory)
> stat("/lib/libvm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such
> file or directory)
> stat("/lib/libvm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such
> file or directory)
> stat("/usr/lib/x86_64-linux-gnu/vm-display-X11", 0x7ffd9d228780) = -1
> ENOENT (No such file or directory)
> stat("/usr/lib/x86_64-linux-gnu/vm-display-X11.so", 0x7ffd9d228780) = -1
> ENOENT (No such file or directory)
> stat("/usr/lib/x86_64-linux-gnu/vm-display-X11.dylib", 0x7ffd9d228780) =
> -1 ENOENT (No such file or directory)
> stat("/usr/lib/x86_64-linux-gnu/libvm-display-X11", 0x7ffd9d228780) = -1
> ENOENT (No such file or directory)
> stat("/usr/lib/x86_64-linux-gnu/libvm-display-X11.so", 0x7ffd9d228780) =
> -1 ENOENT (No such file or directory)
> stat("/usr/lib/x86_64-linux-gnu/libvm-display-X11.dylib", 0x7ffd9d228780)
> = -1 ENOENT (No such file or directory)
> stat("/usr/lib/vm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file
> or directory)
> stat("/usr/lib/vm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such
> file or directory)
> stat("/usr/lib/vm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such
> file or directory)
> stat("/usr/lib/libvm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such
> file or directory)
> stat("/usr/lib/libvm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such
> file or directory)
> stat("/usr/lib/libvm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No
> such file or directory)
> stat("/home/hmm/Squeak/images/vm-display-X11", 0x7ffd9d228780) = -1 ENOENT
> (No such file or directory)
> stat("/home/hmm/Squeak/images/vm-display-X11.so", 0x7ffd9d228780) = -1
> ENOENT (No such file or directory)
> stat("/home/hmm/Squeak/images/vm-display-X11.dylib", 0x7ffd9d228780) = -1
> ENOENT (No such file or directory)
> stat("/home/hmm/Squeak/images/libvm-display-X11", 0x7ffd9d228780) = -1
> ENOENT (No such file or directory)
> stat("/home/hmm/Squeak/images/libvm-display-X11.so", 0x7ffd9d228780) = -1
> ENOENT (No such file or directory)
> stat("/home/hmm/Squeak/images/libvm-display-X11.dylib", 0x7ffd9d228780) =
> -1 ENOENT (No such file or directory)
> stat("/usr/local/lib/vm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such
> file or directory)
> stat("/usr/local/lib/vm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No
> such file or directory)
> stat("/usr/local/lib/vm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT
> (No such file or directory)
> stat("/usr/local/lib/libvm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No
> such file or directory)
> stat("/usr/local/lib/libvm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT
> (No such file or directory)
> stat("/usr/local/lib/libvm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT
> (No such file or directory)
> stat("vm-display-X11", 0x7ffd9d22a7a0)  = -1 ENOENT (No such file or
> directory)
> stat("vm-display-X11.so", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or
> directory)
> stat("vm-display-X11.dylib", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or
> directory)
> stat("libvm-display-X11", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or
> directory)
> stat("libvm-display-X11.so", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or
> directory)
> stat("libvm-display-X11.dylib", 0x7ffd9d22a7a0) = -1 ENOENT (No such file
> or directory)
> stat("/vm-display-X11", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or
> directory)
> stat("/vm-display-X11.so", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or
> directory)
> stat("/vm-display-X11.dylib", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or
> directory)
> stat("/libvm-display-X11", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or
> directory)
> stat("/libvm-display-X11.so", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or
> directory)
> stat("/libvm-display-X11.dylib", 0x7ffd9d22a7a0) = -1 ENOENT (No such file
> or directory)
> stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11/.libs/vm-display-X11",
> 0x7ffd9d22a790) = -1 ENOTDIR
> (Not a directory)
> stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11/.libs/vm-display-X11.so",
> 0x7ffd9d22a790) = -1
> ENOTDIR (Not a directory)
> stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11/.libs/vm-display-X11.dylib",
> 0x7ffd9d22a790) = -1
> ENOTDIR (Not a directory)
> stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11/.libs/libvm-display-X11",
> 0x7ffd9d22a790) = -1
> ENOTDIR (Not a directory)
> stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11/.libs/libvm-display-X11.so",
> 0x7ffd9d22a790) = -1
> ENOTDIR (Not a directory)
> stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11/.libs/libvm-display-X11.dylib",
> 0x7ffd9d22a790) = -1
> ENOTDIR (Not a directory)
> write(2, "could not find display driver vm"..., 54could not find display
> driver vm-display-X11; either:
> ) = 54
> write(2, "  - check that /tmp/products/sqc"..., 92  - check that
> /tmp/products/sqcogspur64linux/lib/squeak/5.0-//vm-display-X11.so exists,
> or
> ) = 92
> write(2, "  - use the '-plugins <path>' op"..., 64  - use the '-plugins
> <path>' option to tell me where it is, or
> ) = 64
> write(2, "  - remove DISPLAY from your env"..., 42  - remove DISPLAY from
> your environment.
> ) = 42
>
> Any idea what I might be missing?
>
> Cheers,
>
> Hans-Martin
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20161114/5c508d62/attachment.html>


More information about the Vm-dev mailing list