[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

Reply via email to