SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
i guess the subject is self explanatory and perhaps i should only give reasons of such a question.
I have been using slackware as my main OS, for almost 20yrs now. I am not a tech guru as i can barely fiddle my way around install, upgrade and solve small issues.
I recall that, since the beginning of GUI, slackware started using Xorg and then, a few years ago, this MESA came along. As far i can read throughout this forum and other distro's bug websites it has caused a considerable amount of issues (as if linux OSs weren't already dealing with their own identity).
Anyhow, while i am waiting for a new GPU for my desktop, i am using an old(ish) i7-32Gb laptop that still runs quite smoothly most demanding graphic apps, such as inkscape, kdenlinve (4K rendering) and FreeCAD.
I am still running mesa-23.3.4 as FreeCAD wouldn't launch if I upgrade MESA however, I sadly learned that with this version KDEnlive would not launch.
I thought i must have done something wrong so, i tried and re-tried several times and it is/was confirmed:
- with mesa-23.3.4, I have FreeCAD but no KDEnlive
- with mesa-24.0.5, I have KDEnlive but no FreeCAD
(i decided to solve the issue by keeping both new&old mesa packages on a folder and upgrade/downgrade every time i need to use one or the other application.
So, my question is: what does mesa offer to slackware? why does slackware need mesa?
This is not a critique, perhaps just a learning conversation for me.
OpenGL is a programming interface for 3D graphics. Mesa is an open source implementation of OpenGL. There are others, for example the NVIDIA proprietary driver.
Appimage is your problem. You could use FreeCAD built for Slackware from source, instead.
I guess the broken FreeCAD Appimage would work for you with the latest mesa package if you preloaded libdrm_amdgpu.so.1, as discussed in your other thread about this.
I am sure someone here knows whether the FreeCAD Appimage works if the NVIDIA proprietary driver is used instead of Mesa.
OpenGL is a programming interface for 3D graphics. Mesa is an open source implementation of OpenGL. There are others, for example the NVIDIA proprietary driver.
Appimage is your problem. You could use FreeCAD built for Slackware from source, instead.
I guess the broken FreeCAD Appimage would work for you with the latest mesa package if you preloaded libdrm_amdgpu.so.1, as discussed in your other thread about this.
I am sure someone here knows whether the FreeCAD Appimage works if the NVIDIA proprietary driver is used instead of Mesa.
Thank you. I suspected the appimage issue. Although, other appimage packages like 'inkscape' for example works fine (yeah, i know, different packages, different dependencies, different libraries).
I also thought of trying to install FreeCAD however, sbopkg doesnt offer it and i couldnt find the binary.
After reading your post i remembered about slackbuilds so, I will try to build it and report back.
p.s.: i am sorry, beside not being "techy-enough", i prefer not to mess with libraries (preloading, etc..) as this is the only pc i have left at the moment and I can't afford to mess it up
........
........
FreeCAD-0.21.2/tools/build/MacOS/BUILD_OSX.md
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Compiler: GNU, version: 13.2.0
-- Looking for GL/gl.h
-- Looking for GL/gl.h - found
-- Looking for C++ include istream
-- Looking for C++ include istream - found
-- Looking for C++ include ostream
-- Looking for C++ include ostream - found
-- Looking for C++ include fstream
-- Looking for C++ include fstream - found
-- Looking for C++ include sstream
-- Looking for C++ include sstream - found
-- Looking for C++ include ios
-- Looking for C++ include ios - found
-- Looking for C++ include iostream
-- Looking for C++ include iostream - found
-- Looking for C++ include iomanip
-- Looking for C++ include iomanip - found
-- Looking for C++ include iostream
-- Looking for C++ include iostream - found
-- Check for STD namespace
-- Check for STD namespace - found
-- prefix: /opt/FreeCAD
-- bindir: bin
-- datadir: share
-- docdir: share/doc/FreeCAD
-- includedir: include
-- libdir: lib64
-- cmake: 3.29.2
-- Compiling with Qt 5
-- BUILD_MESH_PART requires BUILD_SMESH to be ON, but it is ""
-- BUILD_FLAT_MESH requires BUILD_MESH_PART to be ON, but it is "OFF"
-- BUILD_OPENSCAD requires BUILD_MESH_PART to be ON, but it is "OFF"
-- Found Doxygen: /usr/bin/doxygen (found version "1.10.0") found components: doxygen dot
-- find_package() was used to locate fmt version 10.2.1
-- Found Python3: /usr/bin/python3.11 (found version "3.11.9") found components: Interpreter Development Development.Module Development.Embed
CMake Error at /usr/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Failed to find XercesC (missing: XercesC_LIBRARY XercesC_INCLUDE_DIR
XercesC_VERSION)
Call Stack (most recent call first):
/usr/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.29/Modules/FindXercesC.cmake:112 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
cMake/FreeCAD_Helpers/SetupXercesC.cmake:4 (find_package)
CMakeLists.txt:57 (SetupXercesC)
-- Configuring incomplete, errors occurred!
bash-5.2#
Now, how does an average user supposed to know how to fix this? and why a very powerful and commonly used 3d Parametric Modeler does not have a binary for slackware?
Nice that you were able to get your currently installed appimage working with the script!
When it comes to SlackBuild scripts from slackbuilds.org they all assume that you are running a full install of Slackware and also have installed any dependencies listed. In the case of FreeCAD from https://slackbuilds.org/repository/1...search=freecad a listed dependency among others is xerces-c which you also can install from a SlackBuild. In your failed attempt to build FreeCAD from source we can se:
Code:
Failed to find XercesC (missing: XercesC_LIBRARY XercesC_INCLUDE_DIR XercesC_VERSION)
so you did probably not install the xerces-c dependency.
Compiling a big software like FreeCAD usually ends up in having to install a long list of nested dependencies. There are tools like slpkg which makes it easy to resolve those dependencies when installing things from slackbuilds.org.
Nice that you were able to get your currently installed appimage working with the script!
When it comes to SlackBuild scripts from slackbuilds.org they all assume that you are running a full install of Slackware and also have installed any dependencies listed. In the case of FreeCAD from https://slackbuilds.org/repository/1...search=freecad a listed dependency among others is xerces-c which you also can install from a SlackBuild. In your failed attempt to build FreeCAD from source we can se:
Code:
Failed to find XercesC (missing: XercesC_LIBRARY XercesC_INCLUDE_DIR XercesC_VERSION)
so you did probably not install the xerces-c dependency.
Compiling a big software like FreeCAD usually ends up in having to install a long list of nested dependencies. There are tools like slpkg which makes it easy to resolve those dependencies when installing things from slackbuilds.org.
regards Henrik
It's the nth time that I hear 'techies' use the comment: full install? could anyone please, explain what that means? (I usually install 'everything' from the kernal-large and DO NOT omit any packages).
And yes, i didn't even read about the needed dependencies on slackbuilds.org. I assumed, it was a straight forward build.
slpkg? another package management tool? How may package-management tools does slackware have? (I count, slackpkg, pkgtool, sbopkg). Anyone foresee the headache in being able to remember to use what, in what situation?
anyho, i am also happy that I solved it (with help)!
full install? could anyone please, explain what that means? (I usually install 'everything' from the kernal-large and DO NOT omit any packages).
Yes, that is exactly what it means, install every package (except possibly those in the /extra or any /pasture directory) from the Slackware installation media.
During the installation process, you will get a dialog looking something like the attached file where the choices "full" and "terse" will give you a full install.
Quote:
Originally Posted by however
slpkg? another package management tool?
Yes, slpkg is yet another third party tool for package management. I prefer it for building and installing packages from slackbuilds.org.
Quote:
Originally Posted by however
How may package-management tools does slackware have? (I count, slackpkg, pkgtool, sbopkg). Anyone foresee the headache in being able to remember to use what, in what situation?
Personally, I only use the third party tool slpkg to build packages from slackbuilds.org (and get them installed) on a package building machine. I use upgradepkg or installpkg to then distribute those packages to more installations. My main reason to prefer slpkg for this is its nice handling of dependencies.
It's the nth time that I hear 'techies' use the comment: full install? could anyone please, explain what that means? (I usually install 'everything' from the kernal-large and DO NOT omit any packages).
Essentially you will want to install every package that comes with Slackware, even packages you will never use.
Considering how complex inter-dependencies are in modern Linux, it is easy to have problems like you had if you do not. Finding which package has the missing dependency can be non-obvious, or several layers of libraries deep. This is why deselecting packages from the base distribution is no longer recommended.
This is actually something I dislike about modern Linux software. There seems to be a total disregard for compatibility between library versions.
Any discussion about it seems to be met with hostility. Mainly because better compatibility would make life too easy for closed source software.
Last edited by akimmet; 04-14-2024 at 03:13 PM.
Reason: Clarification
Compiling a big software like FreeCAD usually ends up in having to install a long list of nested dependencies. There are tools like slpkg which makes it easy to resolve those dependencies when installing things from slackbuilds.org.
regards Henrik
I looked at the slpkg tool and it seems that i have to build it first. After, what is the command-syntax? Would i just launch it similarly to sbopkg with the -i option and it will automatically search and build all the required depz?
Would i just launch it similarly to sbopkg with the -i option and it will automatically search and build all the required depz?
Yes, you can do:
Code:
slpkg -i FreeCAD
and it will list FreeCAD and all needed dependencies and ask you if you want to continue. At least that is my experience from using slpkg with an older syntax combined with my reading of the instructions of the current syntax.
But as you say, first you will need to build and install slpkg and its dependencies and prepare it with:
Code:
slpkg -u
or
Code:
slpgk update
... to synchronize with the information from slackbuilds.org.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.