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.
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.
I was 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)... 184.108.40.206 Connecting to crash.gitkraken.com (crash.gitkraken.com)|220.127.116.11|: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.
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.
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.
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
I have to punt on OpenSuSE. That is sad.