[I intended this message to go to the list, not just Anonymous, as I thought that others might find it helpful, as it documents, and can auto-install, supporting library packages for IM/CD/IUP, both on at least some Ubuntu-related distributions, and on at least some Red Hat-related distributions.
cheers, s-b etc -------- Forwarded Message -------- Subject: Re: [Iup-users] Discussion of MX 21.3 build troubles... Date: Sat, 5 Aug 2023 18:22:40 +0930 From: sur-behoffski <sur_behoff...@grouse.com.au> To: Anonymous <anonuser8313...@gmail.com> On 8/3/23 23:18, Anonymous wrote: > Yes, thank you Sur_Behoffski! > [...] > For your information, the IUP documentation says "/*IUP's purpose is to allow > a program to run in different systems without changes - the toolkit provides > the application portability. Supported systems include: GTK+, Motif and > Windows*/", which is clearly not true. The documentation needs to clarify > this. As a Linux noobie, had I known known this was not true, I would not > have chosen IUP as a GUI framework, but if you are going through all this > trouble for me to get IUP to compile on MX Linux, I will not make the switch > for now. > > Why are you being so nice like that Sur_Behoffski? That seems above and > beyond the call of duty, so yes, thank you so very much for your time and > effort! > > Signed, > Andres > [...] G'day Anonymous, Thank you so much for your kind words. As so often happens, I started merely by wanting to scratch an itch for myself -- as I said before, for Linux Mint, not Ubuntu. The project has grown, and grown, for there. A crucial point was when I decided to also start supporting CentOS7, as well as Ubuntu-derived (Debian-derived?) distributions. I decided to add support for MX as (a) it was an Ubuntu derivative, which I knew was well covered, and (b) It was #1 on the Distributions "hits per day" (? popularity?) list at DistroWatch. Now, to some extent, it serves as an online resume for me, letting others see for themselves what I can do, how I go about working in a community, and see for themselves my Lua/Bash (and even a touch of C) skills. I'm underemployed, and would dearly like to do more *paying* work. Please contact me for details. ------------------ Ok, enough of the commercial. let's get back onto your MX 21.3 path, since it is supported by lglicua. (Note, however, that the support is ultimately based on running a stand-alone Lua interpreter first, and then "require()ing" any or all of im/cd/iup, as needed. ------------------ For semi-arbitrary reasons, my rig creates a directory, "/home/qm", as the starting point for testing. (I actually use qemu-nbd and bash/lua scripts on the host side, to prepare a test machine, as follows: # export TARGET_VM="MX21.3_ahs_64" # export LGL_BASENAME="lglicua-0.1-beta1" # export LGL_TARBALL="${LGL_BASENAME}.tar.gz" ## First, remove any spurious VM-on-network-block-dev association # qemu-nbd -d /dev/nbd0 # sync # udevadm settle --timeout=2 # qemu-ndb -d /dev/nbd0 # sync ## Next, clone a "Master" VM into a working slave VM. But before ## doing that, remove any earlier clone. # VM_REMOVE "$TARGET_VM" # sync # $VM-CLONE "${TARGET_VM}-Master" "$TARGET_VM" # sync # udevadm settle --timeout=2 I use qemu-nbd on the host side, to: - Make the direcory "/home/qm" on TARGET_VM; - Copy lglicua tarball onto the clone: - Use tar to unpack the tarball in-place, so that - we can confidently use, e.g: /home/qm/lglicua-0.1-beta1/ as our working base, e.g. When we run up the VM, we can see this: $ # (Open up a terminal.) $ cd /home/qm/lglicua-0.1-beta1 $ ls archives build config.ld demos HISTORY.md install LICENSE patches README.md svn $ I'll skip the installation steps, except to note that they help install lua, luarocks, and a raft of "Build-Essential" packages, e.g. g++ wget subversion git gcc patch libssl-dev libssh-dev libncurses-dev libreadline-dev The installer works by using Bash to get the Lua interpreter (e.g. including libreadline-dev) and LuaRocks working, and then to switch to using Lua for later steps. ------------------ One of those "later steps" is to install the OS packages needed to compile the Tecgraf im/gtgl/pdflib7/cd/iup packages. On any system, we use: $ cd /home/qm/lglicua-0.1-beta1/build $ ./q os-dependencies **** For MX21.3_ahs_x64 (Ubuntu-based), we get: # Commands and OS/Distribution dependencies for package "im": LGL_IMCDIUP_ASSIST_COMMAND_INSTALL_PACKAGE="apt-get install -y --ignore-missing" LGL_IMCDIUP_ASSIST_COMMAND_REMOVE_PACKAGE="apt-get remove -y" LGL_IMCDIUP_ASSIST_REQUIRED_PACKAGES="libfftw3-dev libpng-dev" # (No OS/environment dependencies for pdflib7) # Commands and OS/Distribution dependencies for package "ftgl": LGL_IMCDIUP_ASSIST_COMMAND_INSTALL_PACKAGE="apt-get install -y --ignore-missing" LGL_IMCDIUP_ASSIST_COMMAND_REMOVE_PACKAGE="apt-get remove -y" LGL_IMCDIUP_ASSIST_REQUIRED_PACKAGES="libfftw3-dev libpng-dev libfreetype6-dev libglu1-mesa-dev" # Commands and OS/Distribution dependencies for package "cd": LGL_IMCDIUP_ASSIST_COMMAND_INSTALL_PACKAGE="apt-get install -y --ignore-missing" LGL_IMCDIUP_ASSIST_COMMAND_REMOVE_PACKAGE="apt-get remove -y" LGL_IMCDIUP_ASSIST_REQUIRED_PACKAGES="libfftw3-dev libpng-dev libfreetype6-dev libglu1-mesa-dev libgtk-3-dev" # Commands and OS/Distribution dependencies for package "iup": LGL_IMCDIUP_ASSIST_COMMAND_INSTALL_PACKAGE="apt-get install -y --ignore-missing" LGL_IMCDIUP_ASSIST_COMMAND_REMOVE_PACKAGE="apt-get remove -y" LGL_IMCDIUP_ASSIST_REQUIRED_PACKAGES="libfftw3-dev libpng-dev libfreetype6-dev libglu1-mesa-dev libgtk-3-dev libwebkit2gtk-4.0-dev" **** For a significant contrast, look at the output for the same command on Red-Hat-based Rocky9.2: # Commands and OS/Distribution dependencies for package "im": LGL_IMCDIUP_ASSIST_COMMAND_INSTALL_PACKAGE="yum install -q -y" LGL_IMCDIUP_ASSIST_COMMAND_REMOVE_PACKAGE="yum remove -qy" LGL_IMCDIUP_ASSIST_REQUIRED_PACKAGES="fftw fftw-devel" # (No OS/environment dependencies for pdflib7) # Commands and OS/Distribution dependencies for package "ftgl": LGL_IMCDIUP_ASSIST_COMMAND_INSTALL_PACKAGE="yum install -q -y" LGL_IMCDIUP_ASSIST_COMMAND_REMOVE_PACKAGE="yum remove -qy" LGL_IMCDIUP_ASSIST_REQUIRED_PACKAGES="fftw fftw-devel fontconfig-devel mesa-libGLU-devel" # Commands and OS/Distribution dependencies for package "cd": LGL_IMCDIUP_ASSIST_COMMAND_INSTALL_PACKAGE="yum install -q -y" LGL_IMCDIUP_ASSIST_COMMAND_REMOVE_PACKAGE="yum remove -qy" LGL_IMCDIUP_ASSIST_REQUIRED_PACKAGES="fftw fftw-devel fontconfig-devel mesa-libGLU-devel gtk3-devel" # Commands and OS/Distribution dependencies for package "iup": LGL_IMCDIUP_ASSIST_COMMAND_INSTALL_PACKAGE="yum install -q -y" LGL_IMCDIUP_ASSIST_COMMAND_REMOVE_PACKAGE="yum remove -qy" LGL_IMCDIUP_ASSIST_REQUIRED_PACKAGES="fftw fftw-devel fontconfig-devel mesa-libGLU-devel gtk3-devel webkit2gtk3-devel" ------------------ The Tecgraf documentation specifies that CD depends on IM, and IUP depends on CD (and therefore, also on IM). The accumulation of dependencies above reflects this -- lglicua even has a rudimentary scripting language to incorporate/append/delete dependencies. ------------------ Okay, enough for this message. Bottom line is, lglicua is EXACTLY designed, and has been developed over a five-year-or-so period, to let GNU/Linux newbies share in the veritable goodness of Lua, LuaRocks and Tecgraf's IM/CD/IUP. By far, the biggest caveat at the moment is the assumption that the user starts from a Lua script, and require()s Tecgraf modules (which is based on dynamic loading (shared-object) files). Static libraries, such that a program could run with lua/Tecgraf libraries pre-linked, has not been addressed at this stage. [As said above, if you like my stuff, and are in a position to give me paying work, PLEASE do so! The lack of static library support is one such case of me being unable to afford more time to work on on lglicua.] cheers, sur-behoffski (Brenton Hoff) programmer, Grouse Software _______________________________________________ Iup-users mailing list Iup-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iup-users