This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch 3.6.x-rpm-debug in repository nx-libs. from 7ff14e3 Merge branch 'arctica-3.6.x' into 3.6.x-rpm-debug new d2ff04c nxagent: implement RPATH/RUNPATH override for libX11. new 5543dc6 nxcompshad/src/Makefile.am: implement libX11 RPATH/RUNPATH override. new 9843aa2 nx-X11/config/cf/{gnu,lnx}Lib.rules: enable new ELF dtags to force RUNPATH creation for nxagent. new d68cffa nxcompshad/src/Makefile.am: enable new ELF dtags to force RUNPATH creation for libXcompshad. new b21228f Merge branch 'bugfix/rpath' into 3.6.x-rpm-debug The 5 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: nx-X11/config/cf/gnuLib.rules | 6 +++--- nx-X11/config/cf/lnxLib.rules | 6 +++--- nxcompshad/src/Makefile.am | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x-rpm-debug in repository nx-libs. commit d2ff04c0b64cc9c2701aabfab2f8eff4a2756369 Author: Mihai Moldovan <ionic@ionic.de> Date: Tue Dec 26 04:06:40 2017 +0100 nxagent: implement RPATH/RUNPATH override for libX11. As discussed in ArcticaProject/nx-libs#610, we need a way to load libNX_X11 as a fake version of libX11 into nxagent's address space. For doing so, we have to link against libX11 at build-time and specify a(n) RPATH/RUNPATH to our libX11 -> libNX_X11 compat symlinks. This commit is essentially doing a cross between options 3 and 4 discussed in the provided GH issue. We link libX11 early (before specifying -Lcompat_symlinks_dir), so that the linker finds the "real" libX11 version with the libX11 SONAME. This leads to our binary depending upon both libX11 and libNX_X11 SONAMEs. We already always added RPATH/RUNPATH, but these values are not passed down to dependent libraries. What happens at run-time is that the loader searches for a libX11 SONAME, takes RPATH/RUNPATH into account and loads our libNX_X11 library instead via the compat symlinks. This satisfies the libX11 SONAME and dependent libraries will *not* load the system libX11 version again. Debian's dpkg-shlibdeps isn't quite happy about this mismatching SONAME situation, so instruct to look the other way while we're minding our business. Fixes: ArcticaProject/nx-libs#610 --- debian/rules | 8 ++++++++ nx-X11/config/cf/Imake.rules | 4 ++-- nx-X11/config/cf/Imake.tmpl | 1 + nx-X11/programs/Xserver/Imakefile | 4 ++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/debian/rules b/debian/rules index 90234c5..b2258cd 100755 --- a/debian/rules +++ b/debian/rules @@ -124,5 +124,13 @@ override_dh_strip: override_dh_makeshlibs: dh_makeshlibs -n +# Needed for the libX11 RUNPATH/RPATH link-time hack. +# dh_shlibdeps will follow dependencies within binaries and choke +# on the libX11 dependency, since the SONAME (libX11.*) used while linking +# does not match the later detected SONAME (libNX_X11.*) obtained through +# the libX11 -> libNX_X11 compat symlink. +override_dh_shlibdeps: + dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info + get-orig-source: uscan --noconf --force-download --rename --download-current-version --destdir=.. diff --git a/nx-X11/config/cf/Imake.rules b/nx-X11/config/cf/Imake.rules index 06b7899..f53a15b 100644 --- a/nx-X11/config/cf/Imake.rules +++ b/nx-X11/config/cf/Imake.rules @@ -1103,11 +1103,11 @@ CplusplusProgramTargetHelper(program,SRCS10,OBJS10,DEPLIBS10,locallib,syslib) AllTarget(ProgramTargetName(server)) @@\ ProgramTargetName(server): subdirs objects libs @@\ MoveToBakFile($@) @@\ - LinkRule($@,$(LDOPTIONS),objects,libs $(LDLIBS) syslibs) @@\ + LinkRule($@,$(SERVERLDOPTIONS),objects,libs $(LDLIBS) syslibs) @@\ @@\ Concat(load,server): @@\ MoveToBakFile(ProgramTargetName(server)) @@\ - LinkRule(ProgramTargetName(server),$(LDOPTIONS),objects,libs $(LDLIBS) syslibs) @@\ + LinkRule(ProgramTargetName(server),$(SERVERLDOPTIONS),objects,libs $(LDLIBS) syslibs) @@\ @@\ loadX:: Concat(load,server) @@\ @@\ diff --git a/nx-X11/config/cf/Imake.tmpl b/nx-X11/config/cf/Imake.tmpl index 5d989d1..307d00d 100644 --- a/nx-X11/config/cf/Imake.tmpl +++ b/nx-X11/config/cf/Imake.tmpl @@ -1995,6 +1995,7 @@ XEXT_EXTRA_DEFINES = LDPRELIB = LdPreLib $(INSTALLED_LIBS) LDPOSTLIB = LdPostLib LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS) + SERVERLDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS) LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES) diff --git a/nx-X11/programs/Xserver/Imakefile b/nx-X11/programs/Xserver/Imakefile index 25ebd73..efab0de 100644 --- a/nx-X11/programs/Xserver/Imakefile +++ b/nx-X11/programs/Xserver/Imakefile @@ -319,6 +319,7 @@ NXAGENTNXLIBS = -L/usr/sfw/lib \ -L../../../nxcompshad/src/.libs \ -L../../lib/src/.libs \ -lrt \ + -lX11 \ -lXcomp \ -lXcompshad \ -lXrender \ @@ -334,6 +335,7 @@ NXAGENTNXLIBS = -L/usr/sfw/lib \ NXAGENTNXLIBS = -L../../../nxcomp/src/.libs \ -L../../../nxcompshad/src/.libs \ -L../../lib/src/.libs \ + -lX11 \ -lXcomp \ -lXcompshad \ -lXrender \ @@ -349,6 +351,7 @@ NXAGENTNXLIBS = -L../../../nxcomp/src/.libs \ -L../../../nxcompshad/src/.libs \ -L../../lib/src/.libs \ -lkvm \ + -lX11 \ -lXcomp \ -lXcompshad \ -lXrender \ @@ -364,6 +367,7 @@ NXAGENTNXLIBS = -L../../../nxcomp/src/.libs \ NXAGENTNXLIBS = -L../../../nxcomp/src/.libs \ -L../../../nxcompshad/src/.libs \ -L../../lib/src/.libs \ + -lX11 \ -lXcomp \ -lXcompshad \ -lXrender \ -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x-rpm-debug in repository nx-libs. commit 9843aa26b15815c1c52ee79110472fa13064ba89 Author: Mihai Moldovan <ionic@ionic.de> Date: Thu Dec 28 23:12:50 2017 +0100 nx-X11/config/cf/{gnu,lnx}Lib.rules: enable new ELF dtags to force RUNPATH creation for nxagent. --- nx-X11/config/cf/gnuLib.rules | 6 +++--- nx-X11/config/cf/lnxLib.rules | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/nx-X11/config/cf/gnuLib.rules b/nx-X11/config/cf/gnuLib.rules index 7b057c1..fe0e82d 100644 --- a/nx-X11/config/cf/gnuLib.rules +++ b/nx-X11/config/cf/gnuLib.rules @@ -40,7 +40,7 @@ XCOMM XXX To rpath or not to rpath... #endif #ifndef RpathLoadFlags #if UseRpath -#define RpathLoadFlags -Wl,-rpath=$(USRLIBDIRPATH) +#define RpathLoadFlags -Wl,--enable-new-dtags -Wl,-rpath=$(USRLIBDIRPATH) #else #define RpathLoadFlags /**/ #endif @@ -60,9 +60,9 @@ XCOMM XXX To rpath or not to rpath... #ifndef ExtraLoadFlags #ifdef UseInstalled XCOMM XXX Maybe superfluous. -#define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link=$(USRLIBDIRPATH) +#define ExtraLoadFlags RpathLoadFlags -Wl,--enable-new-dtags -Wl,-rpath-link=$(USRLIBDIRPATH) #else -#define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link=$(BUILDLIBDIR) +#define ExtraLoadFlags RpathLoadFlags -Wl,--enable-new-dtags -Wl,-rpath-link=$(BUILDLIBDIR) #endif #endif diff --git a/nx-X11/config/cf/lnxLib.rules b/nx-X11/config/cf/lnxLib.rules index e415db8..76fcb39 100644 --- a/nx-X11/config/cf/lnxLib.rules +++ b/nx-X11/config/cf/lnxLib.rules @@ -51,7 +51,7 @@ # endif #ifndef RpathLoadFlags #if UseRpath -#define RpathLoadFlags -Wl,-rpath,$(USRLIBDIRPATH) +#define RpathLoadFlags -Wl,--enable-new-dtags -Wl,-rpath,$(USRLIBDIRPATH) #else #define RpathLoadFlags /**/ #endif @@ -72,10 +72,10 @@ # if LinuxBinUtilsMajorVersion >= 26 # ifdef UseInstalled # if LinuxBinUtilsMajorVersion < 27 -# define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link,$(USRLIBDIRPATH) +# define ExtraLoadFlags RpathLoadFlags -Wl,--enable-new-dtags -Wl,-rpath-link,$(USRLIBDIRPATH) # endif # else -# define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link,$(BUILDLIBDIR) +# define ExtraLoadFlags RpathLoadFlags -Wl,--enable-new-dtags -Wl,-rpath-link,$(BUILDLIBDIR) # endif # else # define ExtraLoadFlags RpathLoadFlags -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x-rpm-debug in repository nx-libs. commit 5543dc6a1523c9ea1e86af559da216674055d086 Author: Mihai Moldovan <ionic@ionic.de> Date: Tue Dec 26 04:10:27 2017 +0100 nxcompshad/src/Makefile.am: implement libX11 RPATH/RUNPATH override. Same method as used in the previous commit, but easier done thanks to autotools and libtool. Fixes: ArcticaProject/nx-libs#610 --- nxcompshad/src/Makefile.am | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nxcompshad/src/Makefile.am b/nxcompshad/src/Makefile.am index 33f3abd..670bc4d 100644 --- a/nxcompshad/src/Makefile.am +++ b/nxcompshad/src/Makefile.am @@ -13,6 +13,7 @@ libXcompshad_la_SOURCES = \ $(NULL) libXcompshad_la_LIBADD = \ + -lX11 \ @Xext_LIBS@ \ @Xdamage_LIBS@ \ @Xrandr_LIBS@ \ @@ -36,7 +37,10 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/../nx-X11/exports/include \ $(NULL) -libXcompshad_la_LDFLAGS = -version-number @LT_COMPSHAD_VERSION@ -no-undefined +libXcompshad_la_LDFLAGS = \ + -version-number @LT_COMPSHAD_VERSION@ -no-undefined \ + -R '$(libdir)/nx/X11' \ + $(NULL) libXcompshadincludedir = $(includedir)/nx libXcompshadinclude_HEADERS = \ -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x-rpm-debug in repository nx-libs. commit b21228f750241f3c862b6c4d7d5e20a7aa715595 Merge: 7ff14e3 d68cffa Author: Mihai Moldovan <ionic@ionic.de> Date: Thu Dec 28 23:22:25 2017 +0100 Merge branch 'bugfix/rpath' into 3.6.x-rpm-debug nx-X11/config/cf/gnuLib.rules | 6 +++--- nx-X11/config/cf/lnxLib.rules | 6 +++--- nxcompshad/src/Makefile.am | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x-rpm-debug in repository nx-libs. commit d68cffa37e1279bc2889984be270f33d684238a3 Author: Mihai Moldovan <ionic@ionic.de> Date: Thu Dec 28 23:16:32 2017 +0100 nxcompshad/src/Makefile.am: enable new ELF dtags to force RUNPATH creation for libXcompshad. --- nxcompshad/src/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/nxcompshad/src/Makefile.am b/nxcompshad/src/Makefile.am index 670bc4d..f7beac8 100644 --- a/nxcompshad/src/Makefile.am +++ b/nxcompshad/src/Makefile.am @@ -39,6 +39,7 @@ AM_CPPFLAGS = \ libXcompshad_la_LDFLAGS = \ -version-number @LT_COMPSHAD_VERSION@ -no-undefined \ + -Wl,--enable-new-dtags \ -R '$(libdir)/nx/X11' \ $(NULL) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git