FS#13375 - [PATCH] PKGBUILD for fakeroot to support both fakeroot[-tcp]
Attached to Project:
Arch Linux
Opened by Gerardo Exequiel Pozzi (djgera) - Thursday, 19 February 2009, 14:23 GMT
Last edited by Andreas Radke (AndyRTR) - Monday, 09 March 2009, 14:34 GMT
Opened by Gerardo Exequiel Pozzi (djgera) - Thursday, 19 February 2009, 14:23 GMT
Last edited by Andreas Radke (AndyRTR) - Monday, 09 March 2009, 14:34 GMT
|
Details
Description:
fakeroot-1.12.1 (compiled with sysv ipc[by default]) is broken is some scenarios: * Running applications that use libGL from nvidia. * Multithreaded applications (using pthread) * Running under realtime-preempt kernel For fix this, exist another version of fakeroot that runs fine, this is when compiled with tcp support. Then I patched the PKGBUILD to make both fakeroot with default sysv ipc and fakeroot-tcp. The result is: usr/bin/fakeroot-tcp usr/bin/fakeroot usr/bin/faked-tcp usr/bin/faked usr/lib/libfakeroot/libfakeroot-tcp-0.so usr/lib/libfakeroot/libfakeroot.so usr/lib/libfakeroot/libfakeroot-0.so usr/lib/libfakeroot/libfakeroot-tcp.so Maybe a good idea is add a flag for makepkg (options=) that can select between the classic fakeroot and fakeroot-tcp. [#1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=516024 PS: I don't know what is broken under TCP version. |
This task depends upon
Closed by Andreas Radke (AndyRTR)
Monday, 09 March 2009, 14:34 GMT
Reason for closing: Won't implement
Monday, 09 March 2009, 14:34 GMT
Reason for closing: Won't implement
At least in the documentation of fakeroot, no references to problems with the TCP version. As far as I understand it, the TCP version was used to solve the problem of multi-threads [#1] and kernel-rt [#2]
Anyway, I am sending a mail to the author of fakeroot, asking about it.
[#1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=229050
[#2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=319474
-rwxr-xr-x root/root 37102 2009-02-20 11:20 usr/lib/libfakeroot/libfakeroot-tcp-0.so
lrwxrwxrwx root/root 0 2009-02-20 11:20 usr/lib/libfakeroot/libfakeroot-tcp.so -> libfakeroot-tcp-0.so
-rwxr-xr-x root/root 35528 2009-02-20 11:20 usr/lib/libfakeroot/libfakeroot-0.so
lrwxrwxrwx root/root 0 2009-02-20 11:20 usr/lib/libfakeroot/libfakeroot.so -> libfakeroot-0.so
I tried two different ways and both failed:
* One was simply the fakeroot package with the option for TCP (only this version), and without --program-suffix. (Like the original pkg but instead of sysvipc -> tcp ;))
* The other was to have both versions of fakeroot (the proposed above patch), adding a patch to makepkg[#1] and using the new option.
(@) Apparently for attila it's works without problems the compilation of mplayer with tcp version.
[#1] The patch is attached if any are interested to test it. But as you can read, at least I did not have good results.
EDIT: Ignore me - upstream bug linked in the original report :)
Apparently the fakeroot-tcp fails executions in parallel make (-jN). Recently I removed this flag and compile glibc with no problems. But the fact that this is quite annoying.
LD_PRELOAD=/xyz/usr/lib/libGL/libGL.so.1.2 makepkg #where "xyz" is the path to a extracted libgl package from Arch Linux for example /home/attila/libgl ;)
Would it be there a negative effect if i put a alias for this in my ~/.bashrc (alias makepkg='LD_PRELOAD=/home/packages/libgl/libGL.so.1.2 makepkg') and use it even for all other packages?
But even if you still have doubts, it might be better to create an alias "makepkg-preload" and use only in the cases that makepkg fails;)
[CHROOT][djgera@gerardo libGL]$ LD_LIBRARY_PATH="./NVIDIA-Linux-x86-180.29-pkg0/usr/lib" fakeroot ./hola
/usr/bin/fakeroot: line 178: 11836 Segmentation fault FAKEROOTKEY=$FAKEROOTKEY LD_LIBRARY_PATH="$PATHS" LD_PRELOAD="$LIB" "$@"
[CHROOT][djgera@gerardo libGL]$ LD_LIBRARY_PATH="./NVIDIA-Linux-x86-180.35-pkg0/usr/lib" fakeroot ./hola
Hola aqui estoy!