Re: Phix, IUP issues - FIXED
- Posted by petelomax Feb 01, 2022
- 964 views
Well, as promised I made some notes....
First a Linux VM, obviously skip this part if you've got the real thing.
On Windows 10: Download linuxmint-20.3-cinnamon-64bit.iso (2.09GB) Create a new VirtualBox Machine. I have put everything (iso + vdi) in E:\downloads\misc\Phix101\mint Make sure you've got <del>1024MB</del> 2048MB ram, 20G (>13G anyway) vdi Using the default C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso Add a shared folder ( mine is C:\Users\Pete\Downloads\qman70\Share ) Enable clipboard (and drag 'n drop, why not) Boot, right-click open the 'Install Linux Mint' desktop icon (6:15pm...crashed @6:30pm, increased mem to 2GB:) (6:40pm...files copied 6:52pm, installing... rebooted 7:05ish) Right-click open the guest additions and install that (top right button). Reboot. --sudo mkdir /mnt/share --sudo chmod 777 /mnt/share --sudo mount -t vboxsf -o uid=1000,gid=1000 share /mnt/share --sudo chmod 777 /media/sf_Share usermod -aG vboxsf pete (Reboot)
Then onto what we came here for.
OK, so I installed (via my shared folder) a pre-release of 1.0.2... mkdir -p phix rm -r phix unzip phix.1.0.2.zip -d phix unzip phix.1.0.2.1.zip -d phix unzip phix.1.0.2.2.zip -d phix unzip phix.1.0.2.3.zip -d phix mv p64 phix/p cd phix chmod 777 p ./p -test ./p -c p ./p -test cd .. Following IUP instructions (I had to do these in three parts, and manually 'cd ..' each time) mkdir cd cd cd tar -xpvzf ../cd-5.13_Linux54_64_lib.tar.gz sudo ./install cd .. mkdir im cd im tar -xpvzf ../im-3.14_Linux54_64_lib.tar.gz sudo ./install cd .. mkdir iup cd iup tar -xpvzf ../iup-3.29_Linux54_64_lib.tar.gz sudo ./install cd .. cd phix Now we get the predicted error from './p pdemo'... pete@pete-VirtualBox:~/phix$ ./p pdemo /home/pete/phix/demo/pGUI/pGUI.e:1091 link error: libiup.so --> see /home/pete/phix/ex.err pete@pete-VirtualBox:~/phix$ ldd libiup.so ldd: ./libiup.so: No such file or directory pete@pete-VirtualBox:~/phix$ ldd /usr/lib64/libiup.so linux-vdso.so.1 (0x00007ffc4106d000) libgtk-3.so.0 => /lib/x86_64-linux-gnu/libgtk-3.so.0 (0x00007ff5489ca000) libgdk-3.so.0 => /lib/x86_64-linux-gnu/libgdk-3.so.0 (0x00007ff5488c5000) libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007ff5488b3000) libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007ff548790000) libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007ff548768000) libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007ff548719000) libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007ff5486b7000) libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007ff54858e000) libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007ff548451000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff548302000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff548110000) libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007ff54810a000) libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007ff5480f6000) libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007ff5480ee000) libcairo-gobject.so.2 => /lib/x86_64-linux-gnu/libcairo-gobject.so.2 (0x00007ff5480e2000) libatk-1.0.so.0 => /lib/x86_64-linux-gnu/libatk-1.0.so.0 (0x00007ff5480b8000) libatk-bridge-2.0.so.0 => /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0 (0x00007ff548081000) libepoxy.so.0 => /lib/x86_64-linux-gnu/libepoxy.so.0 (0x00007ff547f4e000) libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007ff547f2f000) libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007ff547d4e000) libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007ff547d35000) libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007ff547c30000) libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007ff547be9000) libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007ff547b2a000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff547b05000) libXinerama.so.1 => /lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007ff547b00000) libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007ff547af3000) libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007ff547ae6000) libXcomposite.so.1 => /lib/x86_64-linux-gnu/libXcomposite.so.1 (0x00007ff547ae1000) libXdamage.so.1 => /lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007ff547adc000) libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007ff547a98000) libwayland-cursor.so.0 => /lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007ff547a8d000) libwayland-egl.so.1 => /lib/x86_64-linux-gnu/libwayland-egl.so.1 (0x00007ff547a88000) libwayland-client.so.0 => /lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007ff547a77000) libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007ff547a62000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff547a57000) libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007ff5479ae000) libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007ff547976000) libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007ff547971000) libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007ff547947000) libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007ff547938000) libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007ff54772c000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff547710000) libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0 (0x00007ff547705000) libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007ff5476f9000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007ff547686000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff54767e000) /lib64/ld-linux-x86-64.so.2 (0x00007ff54930e000) libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007ff54762d000) libatspi.so.0 => /lib/x86_64-linux-gnu/libatspi.so.0 (0x00007ff5475f6000) libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007ff547596000) libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007ff54756b000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007ff54754d000) libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007ff547520000) libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007ff5474f2000) libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007ff5474e9000) libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007ff5474e3000) libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007ff5474d9000) libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007ff5474cf000) libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007ff547420000) libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007ff5473c9000) libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007ff547339000) libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007ff54731d000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007ff5472f4000) liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007ff5472d3000) libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007ff5471b5000) libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007ff547192000) Hmm, that looks pretty good to me... so how do I make /lib/x86_64-linux-gnu/xxx.so look at /usr/lib64/xxx.so ??? --I then ran sudo chmod 777 /etc/ld.so.conf.d/fakeroot-x86_64-linux-gnu.conf --so that I could add /usr/lib64 to that file, no joy. (Since undone) Anyway, I changed line 147 in (cd|iup|im)/tec_uname files from TEC_SYSTEM_LIB=/usr/lib64 to TEC_SYSTEM_LIB=/lib/x86_64-linux-gnu and re-ran sudo (cd|iup|im)/install [I cd'd into and out of each directory]. More no joy. So, let's just change demo/pGUI/pGUI.e line 1140: -- res = open_dll(path) res = open_dll("/lib/x86_64-linux-gnu/"&path) And yet still more no joy. Rebooted. It all works. Ish: sudo cp iup/ftgl/lib/Linux54_64/libftgl.so /lib/x86_64-linux-gnu and then ./p demo/pGUI/aaline.exw works, as do cdtest, graph1/2/R, r3d, rubik, simple_paint, triangle (which is not meant to move), mandelbrot (but very slow, see also boids3D), and matrix (but only if I comment out both the DROPSELECT_CB and DRAW_CB callbacks as those have >6 args and need some work doing in builtins/pcfunc.e.) boids3d does not show a window, but I do get a taskbar icon, and it responds to Escape. On Windows the mandlebrot window appears straight away in white, then is slowly painted left-to-right, whereas on Linux it does not appear until drawing completely finishes, and maybe since boids3d never stops drawing, it could well be the very same bug, and the same can perhaps be said for teselation. change demo/pGUI/opengl.e line 1502 and boidscs gets a smigde further: --string dll_so = iff(platform()=LINUX?GL_LIBPATH & "libGL.so":"opengl32.dll") string dll_so = iff(platform()=LINUX?GL_LIBPATH & "libiupgl.so":"opengl32.dll") buffer.exw gives me an all-red screen, should be a faint cross... Chat: builtins\sockets.e is currently windows-only, though getting it to work on Linux should in theory be a little more straightforward than average. getparam and glcanvas_cube crash here too. mglplotdemo is incomplete anyway, as is PhixLogo which is really just a copy of aaline, and now they both work.