# Help porting for Lightworks under linux-c7 - Multimedia Production on FreeBSD?



## neogeo (Feb 14, 2022)

While studying under a Bachelors Degree program in communication at a US university, with a specialization in multimedia topics, I've had an opportunity to gain some initial experience with software tools for multimedia production.

In developing the multimedia content for some course projects last year, I'd used mostly free/open source tools under their Windows 10 distributions. I hadn't installed FreeBSD to the present laptop, at that time. I'd used audacity (audio/audacity) for the audio podcast project, later Kdenlive (multimedia/kdenlive) and - on Linux - timidity (audio/timidity, with sound fonts audio/fluid-soundfont) plus Inkscape for video title frames (graphics/inkscape) in Kdenlive - those, for a video tutorial project. For that project, I'd also used a couple of screen-recording tools on Windows 10. This may have provided an opportunity to gain at least some familiarity with user interface elements and some aspects of workflow, for production using Audacity and Kdenlive.

It seems that Kdenlive may be commonly characterized as a non-linear editor (NLE) platform for audio/video production. This could be contrasted to the streaming-media focus of OBS (multimedia/obs-studio). Perhaps the Kdenlive user interface itself may be really quite similar to that in Lightworks (LWKS) a commercially developed NLE available for Windows, Apple Macintosh, and Linux systems.

In some research about commercial NLE platforms, recently I discovered that LWKS is offering a substantial discount on the "Pro" license for their Linux-ready NLE platform, Lightworks (offers - LWKS) presently in commemoration of World Movie Day, which was this Saturday, 12 Feb.

The Lightworks free edition is said to offer a perpetual license. It may require a periodic Internet connection, in order to renew the free license. I've installed this edition on a Debian 10 installation on an older (amd64) Toshiba laptop, such that that laptop has an Nvidia GPU. In the first run with the application, it showed a Free license with a 90 day expiry. The LWKS documentation - although stating at points that the license lasts for only seven days - it states that this free license can be periodically renewed. Rather than being time-limited, the perpetual "Pro" license can be used for, at most, two installations. It may be possible to de-register any single installation under the "Pro" license, after contacting Lightworks support. So, there may be a limited opportunity for testing here, if outside of the free edition.

For purpose of testing the hardware support in Lightworks - afaict, it doesn't seem to be as steeply demanding as DaVinci Resolve - I've also installed the Lightworks for Windows distribution (the initial, free edition) on the present laptop (Intel i965 GPU) while on a third laptop - this, a dedicated FreeBSD machine - I've been trying to run Lightworks under Linux ABI emulation on FreeBSD 12.3, uname: `FreeBSD riparian.cloud.thinkum.space 12.3-STABLE FreeBSD 12.3-STABLE stable/12-n1855-ce99de0241e RIPARIAN  amd64`

In the latest "fixme" for the ostensible Lightworks installation under FreeBSD here, it seem that Lightworks requires a `libudev.so.1`. This might not be immediately available with the `libudev.so.0` wrapper available under linux-steam-utils port (games/linux-steam-utils).

Up to this point, I've installed a local build of the linux-c7 metaport pkg (emulators/lnux-c7) and the pkg for GTK3 support under Centos 7 on FreeBSD (x11-toolkits/linux-c7-gtk3). I've also installed the following RPMs via cpio, under the local `LINUXBASE` prefix

The Lighworks v2022 RPM. This is available in the Lighworks user area, after sign-up (LWKS). In the first run with this application, it will request the user's LWKS credentials for verifying the license. The distfiles for this might be available separately (RPM, Deb). Outside of testing, it may be of limited use if without an LWKS account.
The Nvidia Cg toolkit, 2012 release, x86_64 (Nvidia). This provides a libCg, which is a dependency of the Lightworks releases on Linux. While there may be other Cg codebases available for testing, this one is already built for the architecture. At least insofar as for testing at the console (LoL) it appears to meet a dependency of the Lightworks v2022 Debian and RPM releases.

For the local LINUXBASE in the linux-c7 port builds, I've used a sysctl item in the host config, such that appears to be used by the kernel modules.

```
compat.linux.emul_path=/opt/linux/compat-c7
```

I've configured the `LINUXBASE` for the port builds, under a local `make.ports.conf` which is included from `make.conf`


```
MK_LINUX_BASEDIR?=      /opt/linux
LINUXBASE=              ${MK_LINUX_BASEDIR}/compat-${linux_ARGS}
```

This local linuxbase filesystem is managed under ZFS, independent of the root filesystem. So, it's been relatively easy to use `zfs snapshot` and for an effective un-install command, `zfs rollback` with this linuxbase filesystem, under some installation testing here.

I've patched the local games/linux-steam-utils port build, to use the ports-mk `LINUXBASE` throughout, in lieu of the default `/compat/linux`. The patch was pretty simple, adding the following to the Makefile:

```
post-patch:                                                                                                                                                 
      ${FIND} ${WRKSRC} -type f -print0 | ${XARGS} -0 ${REINPLACE_CMD} 's@/compat/linux@${LINUXBASE}@g'
```

With this configuration, I was able to discover the missing libudev.so.1 dependency, as follows:

```
[gimbal@riparian /opt/linux/compat-c7 ]$ env LD_LIBRARY_PATH=$PWD/usr/lib/lightworks:$PWD/usr/lib64:$PWD/usr/local/Cg/examples/Trace:/usr/local/steam-utils/lib64/fakeudev  ${PWD}/usr/lib/lightworks/ntcardvt
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: error while loading shared libraries: libudev.so.1: cannot open shared object file: No such file or directory
```

The lighworks cmd itself is a shell script, such that calls `ntcardvt` at some point. I've patched this to use a relative path for the ntcardvt command, to the following effect:

```
#!/bin/sh

set -e
user=$HOME/Lightworks
allusers=/usr/share/lightworks

# Generate DefNetDrives.txt (if there isn't one already)
if [ ! -f $user/Projects/DefNetDrive.txt ];
then
mkdir -p $user/Media
mkdir -p $user/Logs
mkdir -p $user/Projects
mkdir -p $user/Lists
mkdir -p $user/Devices
mkdir -p $user/Databases
cat > $user/Projects/DefNetDrive.txt << EOF
$user/Media/
EOF
fi

# Generate a machine number (if there isn't one already)
if [ ! -f $user/machine.num ];
then
if [ ! -f $allusers/machine.num ];
then
cat > $user/machine.num << EOF
$((`cat /dev/urandom|od -N1 -An -i` % 2500))
EOF
else
cp $allusers/machine.num $user/machine.num
fi
fi

THIS=$(readlink -f "$0")
HERE=$(dirname "${THIS}")

#Launch the app
GDK_BACKEND=x11 GDK_SCALE=1 ${HERE}/../lib/lightworks/ntcardvt
```

For desktop applications, this shell script may need additional pathname patching, such as for the `allusers` path and the `HOME` path in the script.

Considering the relative ease of installation with the Lightworks deb under Debian 10 and the package's dependencies under the Debian and RPM releases, I hope that it may be possible to run this under FreeBSD. imoe this would really simplify a lot of the workflow, here. The FreeBSD installation on the laptop with the i965 GPU has been working out pretty well.

For testing Lightworks in this FreeBSD 12.3 environment, I'm not certain how to address the libudev dependency though.

The following is a description of the Debian package for Lightworks v2022, using something like a Debian control-file syntax:


```
Package: lightworks
Status: install ok installed
Priority: optional
Section: video
Installed-Size: 385740
Maintainer: LWKS Software Ltd <support@lwks.com>
Architecture: amd64
Version: 2022.1.1
Depends: libc6 (>= 2.17), libcairo2 (>= 1.10.0), libgcc1 (>= 1:4.1.1), libgdk-pixbuf2.0-0 (>= 2.22.0), libgl1-mesa-glx | libgl1, libglib2.0-0 (>= 2.22.0), libglu1-mesa | libglu1, libgtk-3-0 (>= 3.0.0), libpango1.0-0 (>= 1.18.0), libstdc++6 (>= 4.6), nvidia-cg-toolkit, libuuid1, libasound2, libc++1
Description: Hollywood-strength editing for everyone
 Lightworks is the fastest, most accessible and focused NLE in the industry,
 because it is based on the simple idea that the editor, not the computer
 industry, knows what’s best. The latest release of Lightworks is based on
 the cumulative knowledge from twenty years of top-flight editing.
Description-md5: 854cc61b0ade8dbf427c4ddb8e68dab5
Homepage: http://www.lwks.com
```

For the RPM:


```
#-- FreeBSD riparian.cloud.thinkum.space 12.3-STABLE FreeBSD 12.3-STABLE stable/12-n1855-ce99de0241e RIPARIAN  amd64
#-- /opt/linux/compat-c7
#-- rpm -qpR ~/Downloads/lwks/lightworks_2022.1.1_r132926.rpm
error: cannot open Packages database in /var/lib/rpm
/bin/sh
ld-linux-x86-64.so.2()(64bit)
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
libAud.so()(64bit)
libAudAtoms.so()(64bit)
libAudLMD.so()(64bit)
libCFHDDecoder.so()(64bit)
libCFHDEncoder.so()(64bit)
libCg.so()(64bit)
libCgGL.so()(64bit)
libDNxHR.so()(64bit)
libGL.so.1()(64bit)
libGLU.so.1()(64bit)
libIO.so()(64bit)
libLwFxResources.so()(64bit)
libLwIPP.so()(64bit)
libLwResources.so()(64bit)
libLwResourcesBase.so()(64bit)
libOS.so()(64bit)
libOSPrivate.so()(64bit)
libOpenCL.so.1()(64bit)
libOpenCL.so.1(OPENCL_1.0)(64bit)
libOpenCL.so.1(OPENCL_1.1)(64bit)
libOpenCL.so.1(OPENCL_1.2)(64bit)
libSDL2-2.0.so.0()(64bit)
libX11.so.6()(64bit)
libasound.so.2()(64bit)
libasound.so.2(ALSA_0.9)(64bit)
libasound.so.2(ALSA_0.9.0rc4)(64bit)
libasound.so.2(ALSA_0.9.0rc8)(64bit)
libatk-1.0.so.0()(64bit)
libatkmm-1.6.so.1()(64bit)
libatoms.so()(64bit)
libatomsplus.so()(64bit)
libaudioui.so()(64bit)
libavcodec.so.58()(64bit)
libavcodec.so.58(LIBAVCODEC_58)(64bit)
libavdevice.so.58()(64bit)
libavdevice.so.58(LIBAVDEVICE_58)(64bit)
libavfilter.so.7()(64bit)
libavfilter.so.7(LIBAVFILTER_7)(64bit)
libavformat.so.58()(64bit)
libavformat.so.58(LIBAVFORMAT_58)(64bit)
libavutil.so.56()(64bit)
libavutil.so.56(LIBAVUTIL_56)(64bit)
libbz2.so.1()(64bit)
libc++.so.1()(64bit)
libc++abi.so.1()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.16)(64bit)
libc.so.6(GLIBC_2.17)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.25)(64bit)
libc.so.6(GLIBC_2.27)(64bit)
libc.so.6(GLIBC_2.28)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.6)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libc.so.6(GLIBC_2.9)(64bit)
libcairo-gobject.so.2()(64bit)
libcairo.so.2()(64bit)
libcairomm-1.0.so.1()(64bit)
libcanvas.so()(64bit)
libcel.so()(64bit)
libcelstrip.so()(64bit)
libcomms.so()(64bit)
libconsole.so()(64bit)
libcrypto.so.1.1()(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0d)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0f)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0i)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_1)(64bit)
libcurl.so.4()(64bit)
libcxx
libdbvtools.so()(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libedit.so()(64bit)
libeditpanels.so()(64bit)
libeditplus.so()(64bit)
libedl.so()(64bit)
libfilm.so()(64bit)
libfreetype.so.6()(64bit)
libfsa.so()(64bit)
libfsys.so()(64bit)
libfxpanels.so()(64bit)
libfxtypes.so()(64bit)
libgall.so()(64bit)
libgcc_s.so.1()(64bit)
libgcc_s.so.1(GCC_3.0)(64bit)
libgdk-3.so.0()(64bit)
libgdk_pixbuf-2.0.so.0()(64bit)
libgdkmm-3.0.so.1()(64bit)
libgio-2.0.so.0()(64bit)
libgiomm-2.4.so.1()(64bit)
libglib-2.0.so.0()(64bit)
libglib.so()(64bit)
libglibmm-2.4.so.1()(64bit)
libglob.so()(64bit)
libgobject-2.0.so.0()(64bit)
libgomp.so.1()(64bit)
libgomp.so.1(GOMP_1.0)(64bit)
libgomp.so.1(GOMP_4.0)(64bit)
libgomp.so.1(GOMP_4.5)(64bit)
libgomp.so.1(OMP_1.0)(64bit)
libgrphtool.so()(64bit)
libgtk-3.so.0()(64bit)
libgtkmm-3.0.so.1()(64bit)
libimage.so()(64bit)
libjpeg.so.9()(64bit)
libjpeg.so.9(LIBJPEG_9.0)(64bit)
liblabels.so()(64bit)
liblabelsbase.so()(64bit)
liblive.so()(64bit)
liblw.so()(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.15)(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libm.so.6(GLIBC_2.27)(64bit)
libm.so.6(GLIBC_2.29)(64bit)
libmachine.so()(64bit)
libmc_bc_dec_avc.so()(64bit)
libmc_bc_dec_avc.so(libmc_bc_dec_avc.so)(64bit)
libmc_bc_enc_avc.so()(64bit)
libmc_bc_enc_avc.so(libmc_bc_enc_avc.so)(64bit)
libmc_bc_mux_mp4.so()(64bit)
libmc_bc_mux_mp4.so(libmc_bc_mux_mp4.so)(64bit)
libmc_dec_aac.so()(64bit)
libmc_dec_amr.so()(64bit)
libmc_dec_avc.so()(64bit)
libmc_dec_dv100.so()(64bit)
libmc_dec_dv100.so(libmc_dec_dv100.so)(64bit)
libmc_dec_j2k.so()(64bit)
libmc_dec_mjpg.so()(64bit)
libmc_dec_mp2v.so()(64bit)
libmc_dec_mp2v.so(libmc_dec_mp2v.so)(64bit)
libmc_dec_mp4v.so()(64bit)
libmc_dec_mpa.so()(64bit)
libmc_dec_spic.so()(64bit)
libmc_dec_vc1.so()(64bit)
libmc_dec_wma.so()(64bit)
libmc_demux_asf.so()(64bit)
libmc_demux_dv.so()(64bit)
libmc_demux_dv.so(libmc_demux_dv.so)(64bit)
libmc_demux_mp2.so.0()(64bit)
libmc_demux_mp4.so()(64bit)
libmc_demux_mp4.so(libmc_demux_mp4.so)(64bit)
libmc_demux_mxf.so()(64bit)
libmc_demux_mxf.so(libmc_demux_mxf.so)(64bit)
libmc_enc_aac.so()(64bit)
libmc_enc_aac.so(libmc_enc_aac.so)(64bit)
libmc_enc_amr.so()(64bit)
libmc_enc_amr.so(libmc_enc_amr.so)(64bit)
libmc_enc_avc.so()(64bit)
libmc_enc_avc.so(libmc_enc_avc.so)(64bit)
libmc_enc_avcsr.so()(64bit)
libmc_enc_avcsr.so(libmc_enc_avcsr.so)(64bit)
libmc_enc_dv100.so()(64bit)
libmc_enc_dv100.so(libmc_enc_dv100.so)(64bit)
libmc_enc_j2k.so()(64bit)
libmc_enc_j2k.so(libmc_enc_j2k.so)(64bit)
libmc_enc_mjpg.so()(64bit)
libmc_enc_mp2sr.so()(64bit)
libmc_enc_mp2sr.so(libmc_enc_mp2sr.so)(64bit)
libmc_enc_mp2v.so()(64bit)
libmc_enc_mp2v.so(libmc_enc_mp2v.so)(64bit)
libmc_enc_mp4v.so()(64bit)
libmc_enc_mp4v.so(libmc_enc_mp4v.so)(64bit)
libmc_enc_mpa.so()(64bit)
libmc_enc_mpa.so(libmc_enc_mpa.so)(64bit)
libmc_enc_pcm.so()(64bit)
libmc_enc_pcm.so(libmc_enc_pcm.so)(64bit)
libmc_enc_vc1.so()(64bit)
libmc_enc_vc1.so(libmc_enc_vc1.so)(64bit)
libmc_enc_wma.so()(64bit)
libmc_enc_wma.so(libmc_enc_wma.so)(64bit)
libmc_fhg_enc_aac.so()(64bit)
libmc_fhg_enc_aac.so(libmc_fhg_enc_aac.so)(64bit)
libmc_hls_playlist_generator.so()(64bit)
libmc_hls_playlist_generator.so(libmc_hls_playlist_generator.so)(64bit)
libmc_manifest_generator.so()(64bit)
libmc_mfimport.so()(64bit)
libmc_mfimport.so(libmc_mfimport.so)(64bit)
libmc_mpd_generator.so()(64bit)
libmc_mpd_generator.so(libmc_mpd_generator.so)(64bit)
libmc_mux_asf.so()(64bit)
libmc_mux_asf.so(libmc_mux_asf.so)(64bit)
libmc_mux_dv.so()(64bit)
libmc_mux_dv.so(libmc_mux_dv.so)(64bit)
libmc_mux_mp2.so()(64bit)
libmc_mux_mp2.so(libmc_mux_mp2.so)(64bit)
libmc_mux_mp4.so()(64bit)
libmc_mux_mp4.so(libmc_mux_mp4.so)(64bit)
libmc_mux_mxf.so()(64bit)
libmc_mux_mxf.so(libmc_mux_mxf.so)(64bit)
libmc_pt_audio.so()(64bit)
libmc_pt_audio.so(libmc_pt_audio.so)(64bit)
libmc_trans_audio_converter.so()(64bit)
libmc_trans_video_colorspace.so()(64bit)
libmc_trans_video_colorspace.so(libmc_trans_video_colorspace.so)(64bit)
libmc_trans_video_framerate.so()(64bit)
libmc_trans_video_imagescaler.so()(64bit)
libmc_trans_video_imagescaler.so(libmc_trans_video_imagescaler.so)(64bit)
libmcplugcore.so.5()(64bit)
libmisc.so()(64bit)
libmvec.so.1()(64bit)
libmvec.so.1(GLIBC_2.22)(64bit)
libnghttp2.so.14()(64bit)
liboledb.so()(64bit)
libpango-1.0.so.0()(64bit)
libpangocairo-1.0.so.0()(64bit)
libpangomm-1.4.so.1()(64bit)
libpanlbase.so()(64bit)
libplay.so()(64bit)
libplaybase.so()(64bit)
libplayers.so()(64bit)
libplayfile.so()(64bit)
libportaudio.so.2()(64bit)
libportaudiocpp.so.0()(64bit)
libportdlg.so()(64bit)
libportutil.so()(64bit)
libprimdata.so()(64bit)
libproject.so()(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.12)(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libpthread.so.0(GLIBC_2.3.3)(64bit)
libpthread.so.0(GLIBC_2.3.4)(64bit)
libpthread.so.0(GLIBC_2.4)(64bit)
libraw.so.20()(64bit)
librecord.so()(64bit)
librecordui.so()(64bit)
libreeldb.so()(64bit)
libreeldbui.so()(64bit)
librender.so()(64bit)
librt.so.1()(64bit)
librt.so.1(GLIBC_2.2.5)(64bit)
libscopes.so()(64bit)
libsigc-2.0.so.0()(64bit)
libssl.so.1.1()(64bit)
libssl.so.1.1(OPENSSL_1_1_0)(64bit)
libssl.so.1.1(OPENSSL_1_1_1)(64bit)
libstdc++.so.6()(64bit)
libstdc++.so.6(CXXABI_1.3)(64bit)
libstdc++.so.6(CXXABI_1.3.1)(64bit)
libstdc++.so.6(CXXABI_1.3.2)(64bit)
libstdc++.so.6(CXXABI_1.3.5)(64bit)
libstdc++.so.6(CXXABI_1.3.7)(64bit)
libstdc++.so.6(CXXABI_1.3.8)(64bit)
libstdc++.so.6(CXXABI_1.3.9)(64bit)
libstdc++.so.6(GLIBCXX_3.4)(64bit)
libstdc++.so.6(GLIBCXX_3.4.11)(64bit)
libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
libstdc++.so.6(GLIBCXX_3.4.19)(64bit)
libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
libstdc++.so.6(GLIBCXX_3.4.22)(64bit)
libstdc++.so.6(GLIBCXX_3.4.26)(64bit)
libstdc++.so.6(GLIBCXX_3.4.9)(64bit)
libstripv.so()(64bit)
libswresample.so.3()(64bit)
libswresample.so.3(LIBSWRESAMPLE_3)(64bit)
libswscale.so.5()(64bit)
libswscale.so.5(LIBSWSCALE_5)(64bit)
libtext.so()(64bit)
libtools.so()(64bit)
libudev.so.1()(64bit)
libudev.so.1(LIBUDEV_183)(64bit)
libuuid.so.1()(64bit)
libuuid.so.1(UUID_1.0)(64bit)
libwav.so()(64bit)
libxcb-shape.so.0()(64bit)
libxcb-shm.so.0()(64bit)
libxcb-xfixes.so.0()(64bit)
libxcb.so.1()(64bit)
libz.so.1()(64bit)
libz.so.1(ZLIB_1.2.0)(64bit)
libz.so.1(ZLIB_1.2.0.2)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
rtld(GNU_HASH)
```

A number of those libraries, e.g `libAudAtoms`, would be provided in the Lightworks v2022 RPM.

For a purpose of short, trivial workarounds at least, would it be possible to reuse the libudev.so.0 wrapper from games/linux-steam-utils as libudev.so.1? Assuming that the ABI may not differ substantially, a symlink might work at least for testing?

For the libCg installation itself, I wonder has anyone tried installing the `yum` package manager under the CentOS 7 support on FreeBSD?

If it can run with the linux-c7 ports, I'd be interested in developing a port for this application. The limitations with regards to licensing could probably be explained along with providing a site link, in the text of the pkg message.

I'm not certain of all of how the libCg dependency is addressed under the RPM build - I've found some CentOS 7 pkg repositories, but not a lot of documentation about it. Maybe there's something available outside of the `examples/Trace` code in this 2012 non-free binary-only libCg distribution.

There may be additional dependencies to discover, after working out the matter of `libudev.so.1`. Up to this point, it's been a fairly straightforward port. If it can be worked out under FreeBSD, perhaps it may be possible to put together some additional workflow support tools, and to draw in any compatible plugins for audio and video processing from other platforms in the free/open source software environment.


----------



## neogeo (Feb 15, 2022)

*Update*

After upgrading the local linux-c7 pkg tree to the latest local build and adding a symbolic link tentatively for libudev.so.0 => libudev.so.1 under `/usr/local/steam-utils/lib64/fakeudev` the `ntcardvt` cmd then illustrates the following errors. I believe it's an issue of ABI compatibility:


```
#-- FreeBSD riparian.cloud.thinkum.space 12.3-STABLE FreeBSD 12.3-STABLE stable/12-n1855-ce99de0241e RIPARIAN  amd64
#-- PWD: /opt/linux/compat-c7
$ env LD_LIBRARY_PATH=$PWD/usr/lib/lightworks:$PWD/usr/lib64:$PWD/usr/lib:$PWD/usr/local/Cg/examples/Trace:/usr/local/steam-utils/lib64/fakeudev  ${PWD}/usr/lib/lightworks/ntcardvt
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/ntcardvt)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/ntcardvt)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.27' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libimage.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libimage.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libimage.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libimage.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libimage.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libimage.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libimage.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libatoms.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libatoms.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libatoms.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libatomsplus.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libatomsplus.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libAud.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libAud.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libAudAtoms.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libAudAtoms.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libAudAtoms.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libAudLMD.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libcel.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libcelstrip.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libcelstrip.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libcelstrip.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libcomms.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libconsole.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libconsole.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/liblabelsbase.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libedit.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libeditpanels.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libeditpanels.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libeditplus.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libeditplus.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libfilm.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libfsys.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libfxtypes.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libfxtypes.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libglib.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libglib.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.27' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libglob.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libglob.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/liblabels.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /usr/local/steam-utils/lib64/fakeudev/libudev.so.1: no version information available (required by /opt/linux/compat-c7/usr/lib/lightworks/libOS.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libOS.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libOS.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libOS.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libOS.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libOS.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/liblive.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/liblw.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/liblw.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libLwFxResources.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libLwFxResources.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libLwResources.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libLwResourcesBase.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libmisc.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libmisc.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libmisc.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libmisc.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libmisc.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/liboledb.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libpanlbase.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libpanlbase.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libpanlbase.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libplay.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libplay.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libplaybase.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libplayfile.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libprimdata.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libprimdata.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libproject.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libproject.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libproject.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libreeldb.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/librender.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/librender.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libtext.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libgall.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libgall.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libtools.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libtools.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libplayers.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libplayers.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libstripv.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libstripv.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libstripv.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libreeldbui.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libgrphtool.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libgrphtool.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libdbvtools.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libcanvas.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libcanvas.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libmachine.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libmachine.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libfsa.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libfxpanels.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libfxpanels.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libfxpanels.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libfxpanels.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libedl.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libedl.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libportdlg.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libportdlg.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libportdlg.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libportutil.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libportutil.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/librecord.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libIO.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libwav.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libOSPrivate.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/librecordui.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/librecordui.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/librecordui.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libaudioui.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libaudioui.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libc.so.6: version `GLIBC_2.25' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libcrypto.so.1.1)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libscopes.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libscopes.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libscopes.so)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libswscale.so.5)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libavutil.so.56)
/opt/linux/compat-c7/usr/lib/lightworks/ntcardvt: /opt/linux/compat-c7/usr/lib64/libc.so.6: version `GLIBC_2.28' not found (required by /opt/linux/compat-c7/usr/lib/lightworks/libavutil.so.56)
```

I don't believe any symbolic link hacks could be of any particular use, at that point. Candidly, I'm not even certain of how to debug that incompatibility, will start by taking at look at the makefile for each port origin of the libraries denoted in field 2 in that output, under awk ...


----------



## neogeo (Feb 15, 2022)

Reviewing the output from readelf on e.g `/opt/linux/compat-c7/usr/lib64/libstdc++.so.6` perhaps the local libstdc++ build may simply not be up to date with relation to the system where the lightworks build was produced? There's the following, in the output under `readelf -a /opt/linux/compat-c7/usr/lib64/libstdc++.so.6`


```
Version definition section '.gnu.version_d' contains 30 entries:
 Addr: 0x0000000000045588  Offset: 0x045588  Link: 4 (.dynstr)
  000000: Rev: 1  Flags: BASE  Index: 1  Cnt: 1  Name: libstdc++.so.6
  0x001c: Rev: 1  Flags: none  Index: 2  Cnt: 1  Name: GLIBCXX_3.4
  0x0038: Rev: 1  Flags: none  Index: 3  Cnt: 2  Name: GLIBCXX_3.4.1
  0x0054: Parent 1: GLIBCXX_3.4
  0x005c: Rev: 1  Flags: none  Index: 4  Cnt: 2  Name: GLIBCXX_3.4.2
  0x0078: Parent 1: GLIBCXX_3.4.1
  0x0080: Rev: 1  Flags: none  Index: 5  Cnt: 2  Name: GLIBCXX_3.4.3
  0x009c: Parent 1: GLIBCXX_3.4.2
  0x00a4: Rev: 1  Flags: none  Index: 6  Cnt: 2  Name: GLIBCXX_3.4.4
  0x00c0: Parent 1: GLIBCXX_3.4.3
  0x00c8: Rev: 1  Flags: none  Index: 7  Cnt: 2  Name: GLIBCXX_3.4.5
  0x00e4: Parent 1: GLIBCXX_3.4.4
  0x00ec: Rev: 1  Flags: none  Index: 8  Cnt: 2  Name: GLIBCXX_3.4.6
  0x0108: Parent 1: GLIBCXX_3.4.5
  0x0110: Rev: 1  Flags: none  Index: 9  Cnt: 2  Name: GLIBCXX_3.4.7
  0x012c: Parent 1: GLIBCXX_3.4.6
  0x0134: Rev: 1  Flags: none  Index: 10  Cnt: 2  Name: GLIBCXX_3.4.8
  0x0150: Parent 1: GLIBCXX_3.4.7
  0x0158: Rev: 1  Flags: none  Index: 11  Cnt: 2  Name: GLIBCXX_3.4.9
  0x0174: Parent 1: GLIBCXX_3.4.8
  0x017c: Rev: 1  Flags: none  Index: 12  Cnt: 2  Name: GLIBCXX_3.4.10
  0x0198: Parent 1: GLIBCXX_3.4.9
  0x01a0: Rev: 1  Flags: none  Index: 13  Cnt: 2  Name: GLIBCXX_3.4.11
  0x01bc: Parent 1: GLIBCXX_3.4.10
  0x01c4: Rev: 1  Flags: none  Index: 14  Cnt: 2  Name: GLIBCXX_3.4.12
  0x01e0: Parent 1: GLIBCXX_3.4.11
  0x01e8: Rev: 1  Flags: none  Index: 15  Cnt: 2  Name: GLIBCXX_3.4.13
  0x0204: Parent 1: GLIBCXX_3.4.12
  0x020c: Rev: 1  Flags: none  Index: 16  Cnt: 2  Name: GLIBCXX_3.4.14
  0x0228: Parent 1: GLIBCXX_3.4.13
  0x0230: Rev: 1  Flags: none  Index: 17  Cnt: 2  Name: GLIBCXX_3.4.15
  0x024c: Parent 1: GLIBCXX_3.4.14
  0x0254: Rev: 1  Flags: none  Index: 18  Cnt: 2  Name: GLIBCXX_3.4.16
  0x0270: Parent 1: GLIBCXX_3.4.15
  0x0278: Rev: 1  Flags: none  Index: 19  Cnt: 2  Name: GLIBCXX_3.4.17
  0x0294: Parent 1: GLIBCXX_3.4.16
  0x029c: Rev: 1  Flags: none  Index: 20  Cnt: 2  Name: GLIBCXX_3.4.18
  0x02b8: Parent 1: GLIBCXX_3.4.17
  0x02c0: Rev: 1  Flags: none  Index: 21  Cnt: 2  Name: GLIBCXX_3.4.19
  0x02dc: Parent 1: GLIBCXX_3.4.18
  0x02e4: Rev: 1  Flags: none  Index: 22  Cnt: 1  Name: CXXABI_1.3
  0x0300: Rev: 1  Flags: none  Index: 23  Cnt: 2  Name: CXXABI_1.3.1
  0x031c: Parent 1: CXXABI_1.3
  0x0324: Rev: 1  Flags: none  Index: 24  Cnt: 2  Name: CXXABI_1.3.2
  0x0340: Parent 1: CXXABI_1.3.1
  0x0348: Rev: 1  Flags: none  Index: 25  Cnt: 2  Name: CXXABI_1.3.3
  0x0364: Parent 1: CXXABI_1.3.2
  0x036c: Rev: 1  Flags: none  Index: 26  Cnt: 2  Name: CXXABI_1.3.4
  0x0388: Parent 1: CXXABI_1.3.3
  0x0390: Rev: 1  Flags: none  Index: 27  Cnt: 2  Name: CXXABI_1.3.5
  0x03ac: Parent 1: CXXABI_1.3.4
  0x03b4: Rev: 1  Flags: none  Index: 28  Cnt: 2  Name: CXXABI_1.3.6
  0x03d0: Parent 1: CXXABI_1.3.5
  0x03d8: Rev: 1  Flags: none  Index: 29  Cnt: 2  Name: CXXABI_1.3.7
  0x03f4: Parent 1: CXXABI_1.3.6
  0x03fc: Rev: 1  Flags: none  Index: 30  Cnt: 1  Name: CXXABI_TM_1
```

... no `GLIBCXX_3.4.20`, `GLIBCXX_3.4.21`, `CXXABI_1.3.8`  or `CXXABI_1.3.9` there. I've also removed the libudev.so.1 symlink.

Will take a look at the providing pkg (linux_base-c7-7.9.2009) and port (emulators/linux_base-c7). Non-trivial to update, isn't it though?


----------



## zirias@ (Feb 15, 2022)

neogeo said:


> perhaps the local libstdc++ build may simply not be up to date with relation to the system where the lightworks build was produced?


That's _exactly_ the reason for this kind of errors. FreeBSD's default Linux userland uses Centos LTE releases because they are supported for a long time, but some software exists requiring newer library versions.


neogeo said:


> Will take a look at the providing pkg (linux_base-c7-7.9.2009) and port (emulators/linux_base-c7). Non-trivial to update, isn't it though?


They are kept up to date already, but you'd have to create an entirely new set of ports for e.g. a newer Centos release. That's probably not feasible for solving such problems locally.

What people do instead (e.g. for running Google Chrome) is install another Linux userland manually, e.g. Ubuntu. To avoid conflicts with the official userland in /compat/linux, it's best to do this somewhere else (e.g. /compat/ubuntu) – there are threads on here with step by step instructions...


----------



## neogeo (Feb 16, 2022)

Zirias said:


> That's _exactly_ the reason for this kind of errors. FreeBSD's default Linux userland uses Centos LTE releases because they are supported for a long time, but some software exists requiring newer library versions.


LTE releases - that makes sense. thx for the clarification.

I'm afraid LWKS may not have published any exacting information about the operating system requirements for their RPM and/or Debian packaged Lightworks releases. I'm not sure if there may be any way to query the RPM package itself for that information. If there may be, I'm sure it would be listed somewhere in the manual page.

If some guesswork and testing could be of any use, there's a CentOS 7.3 release available from Blackmagic Design (CentOS 7.3 iso, 3.0 GiB, and MD5 checksum). BMD are creators of the DaVinci Resolve NLE platform (Blackmagic Design). The ISO is documented in the PDF file for the DaVinci Resolve Linux edition.

After some initial testing for the DaVinci Resolve installer for Linux under emulation on FreeBSD, I'd installed CentOS from their ISO and then ran the DaVinci Resolve installer there, all under VirtualBox. It installed successfully in that CentOS environment. However, Resolve needs a GPU of some kind, for normal desktop usage. When there is a GPU available, but I'm not certain if it's compatible with all GPUs however.  The VM might at least serve now as a testing platform for the Lightworks RPM distribution.

If Lightworks can run in CentOS 7.3, I can try to fork the linux-c7 ports locally and test it out with a linux-c73 tree. Otherwise, I can try out a newer CentOS release or just start parsing RPM files, until finding a release that provides a GNU libc then providing an ABI of the required version. In this porting approach, there would still be the concern about the libudev.so.1 dependency. Though I'm not very well familiar with C, there's literature at Safari Books Online however. I can take a look at how it's approached in the libudev.so.0 wrapper under the steam shim.

The FreeBSD wiki mentions Linux Jails (LinuxJails) for FreeBSD 13 and FreeBSD 14. I'm running FreeBSD 12.3 from stable/12. It seems that the debootstrap port (sysutils/debootstrap) may not be incompatible with FreeBSD 12, itself - it's not marked as 'IGNORE' for this platform. Perhaps this could provide another approach for testing Lightworks under the FreeBSD Linux ABI emulation, under a jail or chroot environment. If it the bootstrapped Debian or Ubuntu environment can start an X server session with DRM/DRI and glx on the machine, then at least that would be generally on the same machine as a FreeBSD installation. Absent of any focused study about programming in C, I believe this would be an easier approach to test out.


----------



## zirias@ (Feb 16, 2022)

neogeo sounds like a lot of work! Yes, a jail would be an alternative, OR a different prefix for the "Linuxulator" userland as I mentioned above. The drawback of the latter is that only one of these overlays can be active at the same time...

As for the Linux userland ports/packages, I also have this idea to maybe don't use a distribution at all, but instead some port bootstrapping a GNU cross-toolchain targeting Linux on FreeBSD (this works surprisingly well, I'm doing this locally to cross-compile some of my own software for Linux) and then use these tools to build Linux packages from source using ports, just like it's done for native FreeBSD packages. I think this might be pretty awesome, but OTOH, a lot of work to create and maintain.


----------



## neogeo (Feb 17, 2022)

Zirias said:


> As for the Linux userland ports/packages, I also have this idea to maybe don't use a distribution at all, but instead some port bootstrapping a GNU cross-toolchain targeting Linux on FreeBSD (this works surprisingly well, I'm doing this locally to cross-compile some of my own software for Linux) and then use these tools to build Linux packages from source using ports, just like it's done for native FreeBSD packages. I think this might be pretty awesome, but OTOH, a lot of work to create and maintain.



If it could result in a usable Lightworks environment on the FreeBSD desktop, I believe I'd be willing to take a look. I think this reminds a little of the pkgsrc bootstrap process (The pkgsrc user's guide). Of course, although it may have been forked from FreeBSD ports originally, pkgsrc may be fairly a different port system by now, with all of its buildlink (dependencies under bmake) tooling and so on. I've been able to develop a working pkgsrc system on Debian 10 and FreeBSD 11.2, however. Maybe that in itself could serve to meet some of these runtime dependencies for Lightworks?
I'd be happy to take a look at any approaches for tooling a ports cross-compiler system on FreeBSD.

Unfortunately, I've not had any success so far with trying to run Lightworks here, at least under a jail/chroot approach. With a system created with debootstrap under FreeBSD, then updated under a jail container and all the dependencies for Lightworks installed then, then accessed under a chroot shell on FreeBSD, it seems to be getting stuck - lightworks starts, but no window is displayed. I believe it's polliing for xauth, which in itself seems to be quite a complex thing to debug. If I was able to work out the xauth parts here, but I'm not certain if it would be able to access the machine's GPU hardware or audio support from under a chroot or jail container environment.

Alternately, trying to run 'startx' from under a jail container for that filesystem, even when logged in at the console, it fails as the Xorg process for the xorg from  Debian under the FreeBSD linuxulator emulation, it seems to believe that it's not being started from the console.

Thirdly, with the debootstrap filesystem (under a ZFS clone produced from a snapshot right after debootstrap) then modified with brandelf and such that any absolute symbolic links will point to files under the debootstrapped filesystem, I was not able to install so much as aptitude. With a local LINUXBASE=/the/bootstrapped/linux it fails under `${LINUXBASE}/usr/bin/apt-get -o RootDir=${LINUXBASE} install -y aptitude` and differently under `${LINUXBASE}/usr/bin/apt-get install -y aptitude`. I could attach a console log from each. I'm not certain if it would be helpful at this point. (In either case, it seems that something in apt-get/dpkg might be hard-coded to use what would be the wrong 'tar' command, at this point. Limiting PATH to pathnames under LINUXBASE has not resolved it, and neither have the 'Dir' or 'RootDir' options for apt-get)

I could possibly try to snapshot and clone the filesystem with Lightworks installed, then run the scripting for brandelf and the symbolic link mangling there and see if it can start with a direct call to the script under ${LINUXBASE}. Considering the errors with apt-get, I don't believe that will work out but it might be fairly trivial to test anyway.

If pkgsrc provides anything like libudev and if that can work on FreeBSD, under some toolchain, maybe there could be a third approach available there? perhaps to bootstrap a recent pkgsrc (pkgsrc) ports tree on the machine, and build all the dependencies Lightworks needs ... with some toolchain ... ideally to an effect such that a Lightworks for Linux release would recognize those depdencies and run under some X server.

One could try bootstrapping from pkgsrc, e.g building GCC (and GNU libc? from wip/glibc) building these under pkgsrc using the gcc dist bundled under the linux-c7 ports -- with GNU's ld from the linuxbase pkg -- using this for the pkgsrc bootstrap, assuming it would produce ELF objects and so-on in a format compatible with the lighworks Linux release. I'm not certain if that would need additional compiler flags, or how to navigate the documentation about such. If that GCC would simply produce binary objects of a kind similar to how that GCC was distributed, maybe it would not be a lot of a complex thing to configure.

The rpm tooling could also be built under pkgsrc, then to install from the Lightworks rpm using the cross-ported pkgsrc ${LINUXBASE}/pkg directory. Maybe it could work out then. Perhaps the pkgsrc-built X.org server could access the machine's GPU and run everything as if it was a bare metal install, under the Linux root filesystem?

The build might take some time. When I was tinkering with pkgsrc I was able to put together something of an albeit non-succinct set of system bootstrap scripts and corresponding configuration flags for pkgsrc's version of make.conf. This was usable to an effect of producing a working Emacs GTK build under pkgsrc on Debian and FreeBSD, albeit compiled in each for the host's "actual ABI." If I can update that tooling and configuration for some recent pkgsrc distribution, can try the bootstrap process with the GCC from under the linux-c7 ports.

If that works out, I can try to trim out the configuration and scripting for some kind of a publishinig to github. Of course it may be possible without these add-on parts, using simply the pkgsrc bootstrap scripting, any possible quirks notwithstanding.


*Update*

With a LINUXBASE=/opt/linux/debian-11 and a brandelf-modified, symlink-retargeted, debootstrapped filesystem under that prefix directory, I created a symbolic link and now apt-get at least will run successfully with the `-o RootDir=${LINUXBASE}` option.


```
# LINUXBASE=/opt/linux/debian-11
# cd ${LINUXBASE}/$(dirname ${LINUXBASE})
# ln -s   ../../   $(basename ${LINUXBASE})
# ${LINUXBASE}/usr/bin/apt-get -o RootDir=${LINUXBASE} install -y aptitude
```

It still produces some warnings, but  with the quirky (recursive) prefix pathname hack, at least there's no problem with finding the right ld.so under any pathname mangling and apt-get's own chroot behaviors

With that worked out now, will try installing the dependencies for lightworks under this linuxulator-no-chroot filesystem.


Pending any sucess, will try to make a port for any of the reproducible scripting in this

In a second udpate: calling ntcardvt directly - under this approach - it showed the initial Lightworks project window ... then exited under SIGABRT

```
$ PFX=/opt/linux/debian-11
$ env LD_LIBRARY_PATH=${PFX}/usr/lib/lightworks:${PFX}/lib:${PFX}/usr/lib   ${PFX}/usr/lib/lightworks/ntcardvt

19:47:33.793: Default overridden: timeline_font_scale = 0.850000 (dflt 0.850000)

(process:40562): Gtk-WARNING **: 19:47:33.805: Locale not supported by C library.
        Using the fallback 'C' locale.

(ntcardvt:40562): dbind-WARNING **: 19:47:33.819: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Abort trap (core dumped)
```

That's a relative success though?

After patching the `lightworks` launcher script to use pathnames under any active LINUXBASE, an excerpt of running it under `ktrace -fi` :

```
(sic)
40672 ntcardvt NAMI  "/opt/linux/debian-11/opt/linux/debian-11/usr/lib/lightworks"                                                                  
 40672 ntcardvt RET   linux_openat 10/0xa                                                                                                            
 40672 ntcardvt CALL  linux_newfstat(0xa,0x80ab3ba90)                                                                                                
 40672 ntcardvt STRU  struct stat {dev=17641383549324237605, ino=36154, mode=040755, nlink=5, uid=0, gid=0, rdev=18446744073709551615, atime=1645068380, mtime=164506839
1.595348000, ctime=1645068391.595348000, birthtime=1644428723, size=267, blksize=131072, blocks=97, flags=0x800 }                                    
 40672 ntcardvt RET   linux_newfstat 0                                                                                                               
 40672 ntcardvt CALL  linux_mprotect(0x1086002b000,0x5000,0x3)                                                                                       
 40672 ntcardvt RET   linux_mprotect 0                           
 40672 ntcardvt CALL  linux_getdents64(0xa,0x108600013f0,0x20000)                                                                                    
 40672 ntcardvt RET   linux_getdents64 11488/0x2ce0           
 40672 ntcardvt CALL  linux_getdents64(0xa,0x108600013f0,0x20000)
 40672 ntcardvt RET   linux_getdents64 0                                                                                                             
 40672 ntcardvt CALL  linux_statx(0xffffff9c,0x108600258e0,0x900,0xfff,0x80ab3a940)                                                                  
 40672 ntcardvt RET   linux_statx -1 errno -38 Function not implemented
 40672 ntcardvt CALL  linux_newfstatat(0xffffff9c,0x108600258e0,0x80ab3a720,0x900)
 40672 ntcardvt RET   linux_newfstatat -1 errno -22 Invalid argument
 40672 ntcardvt CALL  close(0xa)
 40672 ntcardvt RET   close 0
 40672 ntcardvt CALL  linux_clock_gettime(0,0x80ab3bf90)
 40672 ntcardvt RET   linux_clock_gettime 0                
 40672 ntcardvt CALL  gettimeofday(0x80ab3b780,0)          
 40672 ntcardvt RET   gettimeofday 0                             
 40672 ntcardvt CALL  gettimeofday(0x80ab3b820,0)                                                                                                    
 40672 ntcardvt RET   gettimeofday 0                             
 40672 ntcardvt PSIG  SIGSEGV caught handler=0x808ce4ab0 mask=0x0 code=SEGV_MAPERR                                                                   
 40672 ntcardvt CALL  linux_sys_futex(0x8055caf68,0x81,0x7fffffff,0,0,0x8028b51a8)
 40672 ntcardvt RET   linux_sys_futex 0                          
 40672 ntcardvt CALL  linux_sys_futex(0x8028cd1e0,0x81,0x7fffffff,0,0xca,0x1)
 40672 ntcardvt RET   linux_sys_futex 0                          
 40672 ntcardvt CALL  linux_sys_futex(0x8055c9f60,0x81,0x7fffffff,0,0x802ffa360,0x1)
 40672 ntcardvt RET   linux_sys_futex 0                                                                                                              
 40672 ntcardvt CALL  write(0x1,0x189b980,0x761)                 
 40672 ntcardvt GIO   fd 1 wrote 1889 bytes
                                                                                                   
       "Lightworks 64-bit (Release, build Lw : 132926 Common : 132108 Dependencies : 132677 dated Feb  9 2022)                                     
                                                                                                                                                   
        OS Version            : Linux version 3.2.0 (des@freebsd.org) (gcc version Clang 11.0.1) #4 Sun Dec 18 04:30:00 CET 1977                   
        Available memory      : 11.4 GB                                                                                                            
        Total memory          : 15.8 GB                                                                                                            
        Virtual Address Range : 16777216.0 TB                                                                                                      
        Number of CPUs        : 4                                                                                                                  
        User has admin rights : No                                                                                                                 
        Graphics driver       : Intel Open Source Technology Center
        OpenGL version        : 3.0 Mesa 20.3.5
                                                               
        19:55:22.326: Setting project base directory /usr/home/gimbal/Lightworks/Projects/
        19:55:22.327: Starting window manager
        19:55:22.328: FreeImage version: 3.18.0
        This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
        19:55:22.479: License initialisation error <License initialisation error>
        19:55:22.485: Checking library versions..
        ASSERTION : Lightworks, No .fx files found in /usr/share/lightworks/Shaders/Shaders
        19:55:22.490: Preferred device System Sound is not available, loading software only mode instead.
        19:55:22.490: WARNING!! There are no audio resources present
                                                               
        ---------------- Segmentation fault :( ----------------
                     
        LwOS::exceptionHandler(int)
        linux_vdso.so.1() [0x7ffffffff514]        
        /opt/linux/debian-11/usr/lib/lightworks/ntcardvt(+0xc2550) [0x10e3550]
        /opt/linux/debian-11/usr/lib/lightworks/ntcardvt(+0xc63cd) [0x10e73cd]
        BackgroundTaskBase::execute()                          
        BackgroundTaskQueueBase::despatch(Lw::Ptr<iBackgroundTask, Lw::DtorTraits, Lw::InternalRefCountTraits>&)
        DecouplingQueue<iBackgroundTask>::decoupledThread(void*)
        Thread::protectedExecute(iThread::eExecRC (*)(void*), void*, void (*)(iThread::Exception const&))
        Thread::execute(void*)                                 
        /lib/x86_64-linux-gnu/libpthread.so.0(+0x8ea7) [0x802fe5ea7]
        /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x805505def]
                                                               

        --------------------------------------
```

Running lightworks' ntcardvt directly, under lldb:


```
bash -c 'PFX=/opt/linux/debian-11; env LD_LIBRARY_PATH=${PFX}/usr/lib/lightworks:${PFX}/lib:${PFX}/usr/lib lldb /opt/linux/debian-11/usr/lib/lightworks/ntcardvt'

(lldb) target create "/opt/linux/debian-11/usr/lib/lightworks/ntcardvt"
Current executable set to '/opt/linux/debian-11/usr/lib/lightworks/ntcardvt' (x86_64).
(lldb) run
Process 40713 launched: '/opt/linux/debian-11/usr/lib/lightworks/ntcardvt' (x86_64)
20:13:09.728: Default overridden: timeline_font_scale = 0.850000 (dflt 0.850000)

(process:40713): Gtk-WARNING **: 20:13:09.739: Locale not supported by C library.
        Using the fallback 'C' locale.

(ntcardvt:40713): dbind-WARNING **: 20:13:09.752: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Process 40713 stopped
* thread #4, name = 'ntcardvt', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
    frame #0: 0x00000000010e3550
->  0x10e3550: movq   (%rax), %rdx
    0x10e3553: movq   0x48(%rdx), %rdx
    0x10e3557: cmpq   0x30780a(%rip), %rdx
    0x10e355e: jne    0x10e3f88
(lldb) bt
* thread #4, name = 'ntcardvt', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
  * frame #0: 0x00000000010e3550
    frame #1: 0x00000008190e0550
(lldb)
```

The incomplete GUI, displayed so far as up to the point of segfault (Cinnamon desktop environment)





The center box, in that window, should be displaying something other than a background color - it should show a graph of tiles and thumbnails for any projects, just shortly under the dimensions of the main window.

Alternately, there might be anything causing the segfault, in how the tutorial/hint popups would be displayed. After seeing how it works out with an installation on Debian 10, those popups would be displayed on first run.

If this could have anything to do with dbus and/or GTK and/or fonts with the installation under the linuxulator + Debian filesystem, I believe it might be easier to just write something new from scratch LoL.

In the odd chance that it might work out to bootstrap pkgsrc, gcc, and GNU libc using the gcc from linux-c7 with pkgsrc, then to build and install the dependencies from there, maybe that long way around could serve to produce a set of libraries that might "Just work" for launching Lightworks itself, under this emulated environment.

Of course, there's still the idea to try to fork the linux-c7 ports to something that might match the lightworks RPM release. With this partial success under the approach using Debian, maybe that could work out, using the prebuilt GNU libc from some release of CentOS.

Notwithstanding the segfault, it seems that it was at least able to use the GPU from the install under the debootstrap + linuxulator filesystem. The audio system in this environment might be a whole other thing, I believe Lightworks uses ALSA though.


----------

