Gentoo Archives: gentoo-user

From: tuxic@××××××.de
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Re: FreeCAD permission problems
Date: Sat, 06 May 2017 12:43:13
Message-Id: 20170506124259.m5e5s2etb7d2hm35@solfire
In Reply to: [gentoo-user] Re: FreeCAD permission problems by Kai Krakow
1 On 05/06 02:16, Kai Krakow wrote:
2 > Am Sat, 6 May 2017 12:55:24 +0200
3 > schrieb tuxic@××××××.de:
4 >
5 > > On 05/06 12:28, Kai Krakow wrote:
6 > > > Am Sat, 6 May 2017 04:18:57 +0200
7 > > > schrieb tuxic@××××××.de:
8 > > >
9 > > > > On 05/05 09:17, Kai Krakow wrote:
10 > > [...]
11 > > [...]
12 > > > > [...]
13 > > > > [...]
14 > > [...]
15 > > > > [...]
16 > > [...]
17 > > > > [...]
18 > > [...]
19 > > > > [...]
20 > > > > [...]
21 > > > > [...]
22 > > > > [...]
23 > > [...]
24 > > [...]
25 > > > >
26 > > > > Hi Kai,
27 > > > >
28 > > > >
29 > > > > here the results:
30 > > > > LD_PRELOAD=/usr/lib64/opengl/nvidia/lib/. FreeCAD
31 > > > > ERROR: ld.so: object '/usr/lib64/opengl/nvidia/lib/.' from
32 > > > > LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
33 > > > > FreeCAD 0.16, Libs: 0.16RUnknown © Juergen Riegel, Werner Mayer,
34 > > > > Yorik van Havre 2001-2015 ##### #### ### ####
35 > > > > # # # # # #
36 > > > > # ## #### #### # # # # #
37 > > > > #### # # # # # # # ##### # #
38 > > > > # # #### #### # # # # #
39 > > > > # # # # # # # # # ## ## ##
40 > > > > # # #### #### ### # # #### ## ## ##
41 > > > >
42 > > > > libGL error: No matching fbConfigs or visuals found
43 > > > > libGL error: failed to load driver: swrast
44 > > > > using visual class 4, id 2b
45 > > > > [1] 17990 segmentation fault
46 > > > > LD_PRELOAD=/usr/lib64/opengl/nvidia/lib/. FreeCAD
47 > > >
48 > > > This makes no sense... You have to give an .so file.
49 > > >
50 > > > >LD_PRELOAD=/usr/lib64/opengl/nvidia/lib/libGL.so FreeCAD
51 > > > > FreeCAD 0.16, Libs: 0.16RUnknown
52 > > > > © Juergen Riegel, Werner Mayer, Yorik van Havre 2001-2015
53 > > > > ##### #### ### ####
54 > > > > # # # # # #
55 > > > > # ## #### #### # # # # #
56 > > > > #### # # # # # # # ##### # #
57 > > > > # # #### #### # # # # #
58 > > > > # # # # # # # # # ## ## ##
59 > > > > # # #### #### ### # # #### ## ## ##
60 > > > >
61 > > > > using visual class 4, id 2b
62 > > > > [1] 17552 segmentation fault
63 > > > > LD_PRELOAD=/usr/lib64/opengl/nvidia/lib/libGL.so FreeCAD
64 > > >
65 > > > Okay, so this fixes the problem with the visual as I expected. But
66 > > > now it's segfaulting.
67 > > >
68 > > > Are you using an NVIDIA card with proprietary driver?
69 > > >
70 > > >
71 > > > --
72 > > > Regards,
73 > > > Kai
74 > > >
75 > > > Replies to list-only preferred.
76 > > >
77 > > >
78 > > >
79 > >
80 > > Hi,
81 > >
82 > > ...it runs now at least for root (called as user it crashes still).
83 > >
84 > > I did the following:
85 > >
86 > >
87 > > mv /usr/lib64/libGL.so /usr/lib64/off.libGL.so
88 > >
89 > > for all libGL.so* in /usr/lib64/libGL.so*
90 >
91 > You shouldn't shuffle those files around. They are controlled by the
92 > package manager.
93 >
94 > I think it's a bug of the software that it overwrites ld paths. With a
95 > Gentoo standard configuration and eselect opengl switched to nvidia,
96 > every software should find and load the nvidia opengl stuff first.
97 >
98 > Could you show the output of
99 >
100 > # lddtree $(which FreeCAD)
101 >
102 > E.g., lddtree $(which kwin_x11) shows a line for me:
103 >
104 > libGL.so.1 => /usr/lib64/opengl/nvidia/lib/libGL.so.1
105 >
106 > which clearly says it's linking libGL.so.1 from nvidia first.
107 >
108 > If a libGL line is missing for FreeCAD, it is dynamically loaded by the
109 > application itself. Then it's a FreeCAD bug that should be fixed.
110 >
111 > If it's loading from /usr/lib64/libGL* for you, then some paths and
112 > configs are borked in your system.
113 >
114 >
115 > > Addtionally I added 06nvidia to /etc/ld.so.config.d/. with this
116 > > contents:
117 > > /usr/lib64/opengl/nvidia/lib
118 > > and did a ldconfig afterwards and reboot to release any filehandle.
119 >
120 > I wonder why these paths are missing for you... My ld.so.conf has nvidia
121 > paths right in the beginning (first two lines). It's actually made
122 > from /etc/env.d/000opengl. There's nothing nvidia specific in the .d
123 > directory.
124 >
125 >
126 > > One question remains:
127 > > It works for root but not for any other user.
128 > > I (as user) am in the video group.
129 > >
130 > > I checked the directory/file permissions of opencascade and they
131 > > seem to be ok.
132 >
133 > I don't think that modern kernels and desktop managers still use the
134 > video group. It should be handled by ACLs. Please have a look at the
135 > ACLs of the device nodes.
136 >
137 > It all depends on your login manager and pam configuration. You should
138 > check that if things don't work right. If you're using systemd, you are
139 > using systemd-logind, otherwise you're probably using consolekit.
140 >
141 > If you're not using either of those, the system would fall back to
142 > standard unix group permissions. But I'm not sure if this works
143 > correctly if you didn't configure the whole chain to work that way.
144 >
145 >
146 > > I straced FreeCAD...but...I fear not to see anything suspicious
147 > > because the output contains a lot of noise (much more as normally
148 > > seen in such traces)...
149 >
150 > You can use call filters to limit that to what you want to see. Also,
151 > there's ltrace which could be interesting.
152 >
153 >
154 > > The eselects show:
155 > > >eselect opengl list
156 > > Available OpenGL implementations:
157 > > [1] nvidia *
158 > > [2] xorg-x11
159 > > >eselect mesa list
160 > > i915 (Intel 915, 945)
161 > > i965 (Intel GMA 965, G/Q3x, G/Q4x, HD)
162 > > r300 (Radeon R300-R500)
163 > > r600 (Radeon R600-R700, Evergreen, Northern Islands)
164 > > sw (Software renderer)
165 > > [1] classic
166 > > [2] gallium *
167 > >
168 > > Why is nvidia not listed with the second command?
169 >
170 > Afaik, it does not provide mesa drivers. That's probably why it cannot
171 > find an "swrast" driver/visual then. Directly using nvidia OpenGL fixes
172 > that, which is what you did now.
173 >
174 > I think the bug with FreeCAD is, that it cannot properly handle
175 > multiple opengl implementations which it tries to do itself. It should
176 > be left to the system to correctly load the correct opengl
177 > implementation.
178 >
179 > I guess FreeCAD looks up visuals by loading libGL from /usr/lib, then it
180 > loads libGL again using means provided by the system, which ends up
181 > loading the nvidia implementation. But that does not provide swrast. I
182 > can only guess why they did that. But I could also be totally wrong.
183 >
184 >
185 > --
186 > Regards,
187 > Kai
188 >
189 > Replies to list-only preferred.
190 >
191
192
193
194
195 Hi Kai,
196
197 NO PANIC! :) the renaming of libGL and friends was for
198 testing/experimenting purposes only! :)
199
200 After renaming those back to normal and doing a ldconfig
201 these were back for root and user:
202
203 libGL error: No matching fbConfigs or visuals found
204 libGL error: failed to load driver: swrast
205 *** Abort *** an exception was raised, but no catch was found.
206 ... The exception is:SIGSEGV 'segmentation violation' detected. Address 0
207
208 I checked for the 000opengl file in /etc/env.d on my installation and
209 it is there...so I removed my file under /etc/ld.config.d/.
210
211 lddtree /usr/bin/FreeCAD gives me:
212
213 FreeCAD => /usr/bin/FreeCAD (interpreter => /lib64/ld-linux-x86-64.so.2)
214 libFreeCADGui.so => /usr/lib64/libFreeCADGui.so
215 libCoin.so.60 => /usr/lib64/libCoin.so.60
216 libX11.so.6 => /usr/lib64/libX11.so.6
217 libxcb.so.1 => /usr/lib64/libxcb.so.1
218 libXau.so.6 => /usr/lib64/libXau.so.6
219 libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6
220 libbsd.so.0 => /usr/lib64/libbsd.so.0
221 librt.so.1 => /lib64/librt.so.1
222 libbz2.so.1 => /lib64/libbz2.so.1
223 libz.so.1 => /lib64/libz.so.1
224 libfreetype.so.6 => /usr/lib64/libfreetype.so.6
225 libpng16.so.16 => /usr/lib64/libpng16.so.16
226 libdl.so.2 => /lib64/libdl.so.2
227 ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
228 libpthread.so.0 => /lib64/libpthread.so.0
229 libQtOpenGL.so.4 => /usr/lib64/qt4/libQtOpenGL.so.4
230 libXrender.so.1 => /usr/lib64/libXrender.so.1
231 libQtSvg.so.4 => /usr/lib64/qt4/libQtSvg.so.4
232 libQtWebKit.so.4 => /usr/lib64/qt4/libQtWebKit.so.4
233 libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0
234 libgstapp-0.10.so.0 => /usr/lib64/libgstapp-0.10.so.0
235 libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0
236 libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0
237 libxml2.so.2 => /usr/lib64/libxml2.so.2
238 libgstinterfaces-0.10.so.0 => /usr/lib64/libgstinterfaces-0.10.so.0
239 libgstpbutils-0.10.so.0 => /usr/lib64/libgstpbutils-0.10.so.0
240 libgstvideo-0.10.so.0 => /usr/lib64/libgstvideo-0.10.so.0
241 liborc-0.4.so.0 => /usr/lib64/liborc-0.4.so.0
242 libgstbase-0.10.so.0 => /usr/lib64/libgstbase-0.10.so.0
243 libgstreamer-0.10.so.0 => /usr/lib64/libgstreamer-0.10.so.0
244 libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0
245 libffi.so.6 => /usr/lib64/libffi.so.6
246 libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0
247 libpcre.so.1 => /lib64/libpcre.so.1
248 libQtXml.so.4 => /usr/lib64/qt4/libQtXml.so.4
249 libQtNetwork.so.4 => /usr/lib64/qt4/libQtNetwork.so.4
250 libssl.so.1.0.0 => /usr/lib64/libssl.so.1.0.0
251 libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0
252 libboost_regex.so.1.63.0 => /usr/lib64/libboost_regex.so.1.63.0
253 libboost_signals.so.1.63.0 => /usr/lib64/libboost_signals.so.1.63.0
254 libboost_system.so.1.63.0 => /usr/lib64/libboost_system.so.1.63.0
255 libGL.so.1 => /usr/lib64/libGL.so.1
256 libexpat.so.1 => /usr/lib64/libexpat.so.1
257 libxcb-dri3.so.0 => /usr/lib64/libxcb-dri3.so.0
258 libxcb-present.so.0 => /usr/lib64/libxcb-present.so.0
259 libxcb-sync.so.1 => /usr/lib64/libxcb-sync.so.1
260 libxshmfence.so.1 => /usr/lib64/libxshmfence.so.1
261 libglapi.so.0 => /usr/lib64/libglapi.so.0
262 libXext.so.6 => /usr/lib64/libXext.so.6
263 libXdamage.so.1 => /usr/lib64/libXdamage.so.1
264 libXfixes.so.3 => /usr/lib64/libXfixes.so.3
265 libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1
266 libxcb-glx.so.0 => /usr/lib64/libxcb-glx.so.0
267 libxcb-dri2.so.0 => /usr/lib64/libxcb-dri2.so.0
268 libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1
269 libdrm.so.2 => /usr/lib64/libdrm.so.2
270 libshiboken-python2.7.so.1.2 => /usr/lib64/libshiboken-python2.7.so.1.2
271 libxerces-c-3.1.so => /usr/lib64/libxerces-c-3.1.so
272 libicuuc.so.58 => /usr/lib64/libicuuc.so.58
273 libicudata.so.58 => /usr/lib64/libicudata.so.58
274 libm.so.6 => /lib64/libm.so.6
275 libFreeCADApp.so => /usr/lib64/libFreeCADApp.so
276 libboost_program_options.so.1.63.0 => /usr/lib64/libboost_program_options.so.1.63.0
277 libFreeCADBase.so => /usr/lib64/libFreeCADBase.so
278 libpython2.7.so.1.0 => /usr/lib64/libpython2.7.so.1.0
279 libutil.so.1 => /lib64/libutil.so.1
280 libQtGui.so.4 => /usr/lib64/qt4/libQtGui.so.4
281 libSM.so.6 => /usr/lib64/libSM.so.6
282 libuuid.so.1 => /lib64/libuuid.so.1
283 libICE.so.6 => /usr/lib64/libICE.so.6
284 libXi.so.6 => /usr/lib64/libXi.so.6
285 libXrandr.so.2 => /usr/lib64/libXrandr.so.2
286 libXcursor.so.1 => /usr/lib64/libXcursor.so.1
287 libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1
288 libQtCore.so.4 => /usr/lib64/qt4/libQtCore.so.4
289 libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/libstdc++.so.6
290 libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/libgcc_s.so.1
291 libc.so.6 => /lib64/libc.so.6
292
293
294 Next: ACL
295
296 What? ;)
297
298 Sorry Kai...you hit the blank spot of my knowledge of Linux here.
299 Please give me some hints...
300
301 To summarize:
302 I am using good 'ole openrc. Consolekit is installed.
303 My login manager is slim.
304
305 ltrace:
306 I will take a look, what I may find with that one.
307 strace: It is difficult to filter unimportant things
308 as long I dont know the reason (the important thing)
309 for the problem... ;) :)
310 But I will take a deeper look...
311
312
313 Cheers
314 Meino

Replies

Subject Author
[gentoo-user] Re: FreeCAD permission problems Kai Krakow <hurikhan77@×××××.com>