LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 04-13-2024, 02:37 AM   #1
however
Member
 
Registered: Jan 2019
Distribution: slackware current
Posts: 497

Rep: Reputation: Disabled
MESA, what is it and why do we need it?


Hi everyone,

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.

Thanks
 
Old 04-13-2024, 03:18 AM   #2
Petri Kaukasoina
Senior Member
 
Registered: Mar 2007
Posts: 1,791

Rep: Reputation: 1470Reputation: 1470Reputation: 1470Reputation: 1470Reputation: 1470Reputation: 1470Reputation: 1470Reputation: 1470Reputation: 1470Reputation: 1470
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.
 
6 members found this post helpful.
Old 04-13-2024, 04:35 AM   #3
however
Member
 
Registered: Jan 2019
Distribution: slackware current
Posts: 497

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by Petri Kaukasoina View Post
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
 
Old 04-13-2024, 04:35 AM   #4
nobodino
Senior Member
 
Registered: Jul 2010
Location: Near Bordeaux in France
Distribution: slackware, slackware from scratch, LFS, slackware [arm], linux Mint...
Posts: 1,564

Rep: Reputation: 892Reputation: 892Reputation: 892Reputation: 892Reputation: 892Reputation: 892Reputation: 892
no problem here with FreeCAD AppImage and mesa-24.0.5

My FreeCAD script:

Code:
#!/bin/sh
export LD_LIBRARY_PATH=/opt/OpenCASCADE/lib64:$LD_LIBRARY_PATH
export QTWEBENGINE_DISABLE_SANDBOX=1
export LD_PRELOAD=/usr/lib64/libdrm_amdgpu.so.1 
exec /opt/FreeCAD/FreeCAD.AppImage "$@"
and

Code:
FreeCAD.AppImage -> FreeCAD_0.21.2-2023-12-17-conda-Linux-x86_64-py310.AppImage
 
2 members found this post helpful.
Old 04-13-2024, 04:47 AM   #5
however
Member
 
Registered: Jan 2019
Distribution: slackware current
Posts: 497

Original Poster
Rep: Reputation: Disabled
and here it is:
Code:
........
........
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?
 
Old 04-13-2024, 04:55 AM   #6
however
Member
 
Registered: Jan 2019
Distribution: slackware current
Posts: 497

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by nobodino View Post
no problem here with FreeCAD AppImage and mesa-24.0.5

My FreeCAD script:

Code:
#!/bin/sh
export LD_LIBRARY_PATH=/opt/OpenCASCADE/lib64:$LD_LIBRARY_PATH
export QTWEBENGINE_DISABLE_SANDBOX=1
export LD_PRELOAD=/usr/lib64/libdrm_amdgpu.so.1 
exec /opt/FreeCAD/FreeCAD.AppImage "$@"
and

Code:
FreeCAD.AppImage -> FreeCAD_0.21.2-2023-12-17-conda-Linux-x86_64-py310.AppImage
I can see that you also preloaded the libdrm_amdgpu.so.1 library.

i went to read the other thread and saw the same script that solved the issue for you. I never tried it.

I would be thankful if you could explain how i can copy what you did: - where do i insert these lines?

edit: i created a script but i noticed that i do not have an /opt/OpenCASADE and/or /opt/FreeCAD

Last edited by however; 04-13-2024 at 05:04 AM.
 
Old 04-13-2024, 05:10 AM   #7
however
Member
 
Registered: Jan 2019
Distribution: slackware current
Posts: 497

Original Poster
Rep: Reputation: Disabled
OK solved it.

I was launching the script through the Application Menu. But when i executed it from console FreeCAD launched OK.

Thank you

Last edited by however; 04-13-2024 at 05:20 AM.
 
Old 04-13-2024, 05:41 AM   #8
henca
Member
 
Registered: Aug 2007
Location: Linköping, Sweden
Distribution: Slackware
Posts: 961

Rep: Reputation: 650Reputation: 650Reputation: 650Reputation: 650Reputation: 650Reputation: 650
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
 
1 members found this post helpful.
Old 04-13-2024, 08:23 AM   #9
however
Member
 
Registered: Jan 2019
Distribution: slackware current
Posts: 497

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by henca View Post
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)!
 
Old 04-13-2024, 06:07 PM   #10
henca
Member
 
Registered: Aug 2007
Location: Linköping, Sweden
Distribution: Slackware
Posts: 961

Rep: Reputation: 650Reputation: 650Reputation: 650Reputation: 650Reputation: 650Reputation: 650
Quote:
Originally Posted by however View Post
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 View Post
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 View Post
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.

regards Henrik
Attached Thumbnails
Click image for larger version

Name:	setup_install_cl.png
Views:	35
Size:	7.5 KB
ID:	42691  
 
1 members found this post helpful.
Old 04-14-2024, 08:59 AM   #11
akimmet
Member
 
Registered: Jul 2018
Location: NW Ohio, USA
Distribution: Slackware64 -current
Posts: 62

Rep: Reputation: 62
Quote:
Originally Posted by however View Post
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
 
1 members found this post helpful.
Old 04-17-2024, 03:41 AM   #12
however
Member
 
Registered: Jan 2019
Distribution: slackware current
Posts: 497

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by henca View Post

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?
 
Old 04-17-2024, 02:17 PM   #13
henca
Member
 
Registered: Aug 2007
Location: Linköping, Sweden
Distribution: Slackware
Posts: 961

Rep: Reputation: 650Reputation: 650Reputation: 650Reputation: 650Reputation: 650Reputation: 650
Quote:
Originally Posted by however View Post
I looked at the slpkg tool and it seems that i have to build it first. After, what is the command-syntax?

I use an older version of slpkg myself with a slightly different syntax, but the entire current syntax is described here:

https://dslackw.gitlab.io/slpkg/cli_usage/

and with some examples here:

https://dslackw.gitlab.io/slpkg/how_to_start/

Quote:
Originally Posted by however View Post
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.

regards Henrik
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
TW 64 bit: Problem: the to be installed Mesa-libEGL-devel-22.3.2-336.1.x86_64 requires 'Mesa-libEGL1 = 22.3.2', but this requirement cannot MakeTopSite SUSE / openSUSE 10 01-02-2023 09:34 AM
MESA Stellar Physics on Slackware - NOT the 'Graphics' Mesa... jrch Slackware 6 03-13-2020 07:36 PM
LXer: Mesa 9.2-devel vs. Mesa 9.3-devel For Intel Haswell LXer Syndicated Linux News 0 08-17-2013 12:51 PM
Why is software rendering slow?(Mesa, etc.) slantoflight Programming 3 03-05-2006 07:50 PM
Installing Mesa & Mesa-demos... bozotix Linux - Software 2 05-09-2002 12:55 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 10:18 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration