Posted inInformation Technology

CopperSpice Experiments – Pt. 10

Introducing OpenSuSE into this process was a whim. Bad whim! Bad whim! Don’t listen to that whim!

The real problem with not creating The Four Holy Documents up front is that you tend to get distracted by bright shiny objects. As you learned in my last post I decided to give Diamond a Debian build script/process. I’ve done a few of these over the years and firmly believe both CopperSpice and Diamond won’t be picked up by any distros unless it has ready made Debian packaging. Ninja scripts aren’t going to cut it.

One thing I’ve always managed to avoid is having to create an RPM. Always managed to dodge that bullet. I remember getting trapped in RPM Hell many times with SuSE and dial-up modem updates. When applying an RPM it could fail in such a way you could neither uninstall it nor install anything else. That was always fun.

NVidia

Silly me, I decided to set up one of my BOINC machines with an NVidia graphics card as OpenSuSE Leap 15.2 and try CopperSpice on there along with Diamond. Maybe, if all things worked I would look at creating an RPM for Diamond. Creating a package is a completely different event when you are just doing it to learn something. Clients always want it done in under an hour despite the fact that ain’t gonna happen in this or any other lifetime.

It is true OpenSuSE isn’t on the list of supported platforms. I just can’t stand Fedora. I would give up computing and drive a truck if that were the only OS available. One can use the build requirements from the above link as a “guide” when attempting to build CopperSpice on another platform. I was really kind of surprised Fedora and Arch were on the list. Those aren’t popular distros.

OpenSuSE has a much bigger footprint due to the footprint SuSE commercial had prior to becoming OpenSuSE. I think the other reason is OpenSuSE isn’t a “one desktop wonder.” Not only can you install all of the supported desktops, they won’t clobber each other because they are tested together. Ubuntu has a different release for each desktop because they don’t test shit.

Keep in mind I installed the NVidia driver stuff per the instructions. Some of the build stuff gets installed when you do this. I didn’t keep track of what, just did the 1-click thing and walked away for a bit.

GitKraken

Really wounded by GitKraken. I dutifully download the RPM and it failed to install. Heavy sigh. I poke around and find the Snap instructions that supposedly work for OpenSuse. Yeah, right!

roland@roland-HP-Compaq-8100-Elite-SFF-PC:~> gitkraken
Gtk-Message: 17:05:27.500: Failed to load module "unity-gtk-module"
Gtk-Message: 17:05:27.501: Failed to load module "canberra-gtk-module"

(gitkraken:8627): GdkPixbuf-WARNING **: 17:05:27.525: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.
state:  update-not-available
state:  update-not-available
(node:8737) Electron: Loading non-context-aware native module in renderer: '/snap/gitkraken/162/usr/share/gitkraken/resources/app.asar.unpacked/node_modules/@axosoft/nodegit/build/Release/nodegit-fedora-28.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
(node:8737) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(node:8737) [DEP0106] DeprecationWarning: crypto.createDecipher is deprecated.

(gitkraken:8627): GdkPixbuf-WARNING **: 17:05:36.980: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(gitkraken:8627): Gtk-WARNING **: 17:05:36.981: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.

(gitkraken:8627): GdkPixbuf-WARNING **: 17:05:36.981: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.
**
Gtk:ERROR:/build/gtk+3.0-24RAPQ/gtk+3.0-3.22.24/./gtk/gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination)
--2020-09-13 17:05:37--  https://crash.gitkraken.com/submit
Resolving crash.gitkraken.com (crash.gitkraken.com)... 174.46.225.159
Connecting to crash.gitkraken.com (crash.gitkraken.com)|174.46.225.159|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 40 [text/html]
Saving to: ‘/dev/fd/4’

/dev/fd/4                          100%[==============================================================>]      40  --.-KB/s    in 0s      


Failed to get crash dump id.
Report Id: bp-b9f6f8ef-af6d
Aborted (core dumped)

Back to the terminal we go.

roland@roland-HP-Compaq-8100-Elite-SFF-PC:~/Projects> mkdir copperspice

git clone https://github.com/copperspice/copperspice.git copperspice

Given I’m just building and won’t be doing development on this system I don’t mind cloning from the command line. I use sooo many different code control systems though. Seems I have a cheat sheet for every project somewhere. GitKraken made things kind of nice.

I created the following script.

zypper install freetype-devel fontconfig-devel glib2-devel \
 gstreamer-devel gstreamer-plugins-base-devel libICE-devel \
 Mesa-libGL-devel glibc-devel libtirpc-devel \
 libnsl-devel libSM-devel libXcursor-devel libXext-devel \
 libXfixes-devel libXi-devel libXinerama-devel libXrandr-devel \
 libXrender-devel libX11-devel
 
zypper install libxcb-devel libX11-xcb1 libxcb1 xcb-util-wm-devel \
 xcb-util-image-devel xcb-util-keysyms-devel libxcb-devel \
 xcb-util-renderutil-devel
 
zypper install gcc-c++ libxml2-devel libxkbcommon-devel postgresql-server-devel \
 pulseaudio alsa-devel cups-devel libopenssl-1_1-devel libxkbcommon-x11-devel \
 libpulse-devel

Let’s just say it was a long crawl to get that script.

Script run 1

Not everything is officially part of SuSE

I had to learn about zypper search

There was a lot of back and forth looking for the bits and pieces that were needed.

Joy and Goodness

Eventually the above joy and goodness happens. MySQL is the only thing it can’t find and honestly, who really cares? I don’t actually know of anyone actually using MySQL anymore. Once Oracle got involved the world left.

XKB failure
roland@roland-HP-Compaq-8100-Elite-SFF-PC:/> sudo find -iname xkbcommon.h
[sudo] password for root: 
find: File system loop detected; ‘./.snapshots/1/snapshot’ is part of the same file system loop as ‘.’.
./.snapshots/49/snapshot/usr/include/libxkbcommon/xkbcommon/xkbcommon.h
./.snapshots/50/snapshot/usr/include/libxkbcommon/xkbcommon/xkbcommon.h
./.snapshots/51/snapshot/usr/include/libxkbcommon/xkbcommon/xkbcommon.h
./usr/include/libxkbcommon/xkbcommon/xkbcommon.h
find: ‘./run/user/1000/gvfs’: Permission denied

Well, it should have fund it. I’m really wondering how the configure step found it (did not flag it as missing) but the compilation step could not. Then I take a closer look at the file it died on. Oh! That’s Webkit. I don’t need Webkit for a test editor! Fly back to this page and check out the build options. Yeah! -DWITH_WEBKIT=NO

roland@roland-HP-Compaq-8100-Elite-SFF-PC:~/Projects> rm -rf cs_build
roland@roland-HP-Compaq-8100-Elite-SFF-PC:~/Projects> mkdir cs_build
roland@roland-HP-Compaq-8100-Elite-SFF-PC:~/Projects> cd cs_build
roland@roland-HP-Compaq-8100-Elite-SFF-PC:~/Projects/cs_build> cd /

cmake -G "Ninja" -DWITH_WEBKIT=NO -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/lib/cs_lib ~/Projects/copperspice
No Joy in Mudville

I have to punt on OpenSuSE. That is sad.

<Previous-part Next-part>

Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++/Qt touchscreen/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the "Zinc It!" book series for John Gordon Burke Publisher, Inc.

A decade later he released a massive (nearly 800 pages) tome "The Minimum You Need to Know to Be an OpenVMS Application Developer" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there "The Minimum You Need to Know" book series was born.

Three years later he wrote his first novel "Infinite Exposure" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of "The Earth That Was" trilogy:
Infinite Exposure
Lesedi - The Greatest Lie Ever Told
John Smith - Last Known Survivor of the Microsoft Wars

When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.