From c45cab1ba5a6ffe3832039d89c26a6d11068d417 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Sat, 4 Feb 2017 18:52:04 +0100 Subject: Makefile: Align variable names USRLIBDIR, SHLIBDIR (and NX_DIR) with nx-X11 internal naming schemes (and use /usr//nx/X11 rather than /usr//nx-X11). --- Makefile | 17 +++++++++-------- bin/nxagent.in | 6 +++--- bin/nxproxy.in | 4 ++-- debian/nxagent.install | 2 +- nx-libs.spec | 4 ++-- 5 files changed, 17 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index d31c7d3f5..5bdf23b35 100644 --- a/Makefile +++ b/Makefile @@ -13,9 +13,10 @@ ETCDIR_NX ?= /etc/nxagent PREFIX ?= /usr/local BINDIR ?= $(PREFIX)/bin LIBDIR ?= $(PREFIX)/lib -USRLIBDIR ?= $(LIBDIR) +SHLIBDIR ?= $(LIBDIR) +NXLIBDIR ?= $(SHLIBDIR)/nx +USRLIBDIR ?= $(NXLIBDIR)/X11 INCLUDEDIR ?= $(PREFIX)/include -NXLIBDIR ?= $(LIBDIR)/nx CONFIGURE ?= ./configure NX_VERSION_MAJOR=$(shell ./version.sh 1) @@ -143,13 +144,13 @@ install-full: cp -a "$$(string_rep "$$libpath" "$$libfile" "$$link")" "$$(string_rep "$$libdir" exports .build-exports)"; \ done; + $(INSTALL_DIR) $(DESTDIR)$(SHLIBDIR) + $(COPY_SYMLINK) nx-X11/.build-exports/lib/libNX_X11.so $(DESTDIR)$(SHLIBDIR)/ + $(COPY_SYMLINK) nx-X11/.build-exports/lib/libNX_X11.so.6 $(DESTDIR)$(SHLIBDIR)/ + $(COPY_DEREFERENCED) nx-X11/.build-exports/lib/libNX_X11.so.6.2 $(DESTDIR)$(SHLIBDIR)/ $(INSTALL_DIR) $(DESTDIR)$(USRLIBDIR) - $(COPY_SYMLINK) nx-X11/.build-exports/lib/libNX_X11.so $(DESTDIR)$(USRLIBDIR)/ - $(COPY_SYMLINK) nx-X11/.build-exports/lib/libNX_X11.so.6 $(DESTDIR)$(USRLIBDIR)/ - $(COPY_DEREFERENCED) nx-X11/.build-exports/lib/libNX_X11.so.6.2 $(DESTDIR)$(USRLIBDIR)/ - $(INSTALL_DIR) $(DESTDIR)$(USRLIBDIR)/nx-X11 - $(INSTALL_SYMLINK) ../libNX_X11.so.6 $(DESTDIR)$(USRLIBDIR)/nx-X11/libX11.so.6 - $(INSTALL_SYMLINK) ../libNX_X11.so.6.2 $(DESTDIR)$(USRLIBDIR)/nx-X11/libX11.so.6.2 + $(INSTALL_SYMLINK) ../../libNX_X11.so.6 $(DESTDIR)$(USRLIBDIR)/libX11.so.6 + $(INSTALL_SYMLINK) ../../libNX_X11.so.6.2 $(DESTDIR)$(USRLIBDIR)/libX11.so.6.2 . replace.sh; set -x; find nx-X11/.build-exports/include/{nx*,GL} -type d | \ while read dirname; do \ diff --git a/bin/nxagent.in b/bin/nxagent.in index 86603d549..b3e87aab1 100644 --- a/bin/nxagent.in +++ b/bin/nxagent.in @@ -15,11 +15,11 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see http://www.gnu.org/licenses/. -NX_LIBS=@@NXLIBDIR@@ +NX_LIBDIR=@@NXLIBDIR@@ # make sure nxagent starts properly with pam_tmpdir.so being in use NX_TEMP=${NX_TEMP:-/tmp} export NX_TEMP -export LD_LIBRARY_PATH=@@NXLIBDIR@@-X11/ +export LD_LIBRARY_PATH=@@NX_LIBDIR@@/X11/ -exec $NX_LIBS/bin/${NXAPP:-"nxagent"} "$@" +exec $NX_LIBDIR/bin/${NXAPP:-"nxagent"} "$@" diff --git a/bin/nxproxy.in b/bin/nxproxy.in index d21388d18..0866d25ac 100644 --- a/bin/nxproxy.in +++ b/bin/nxproxy.in @@ -15,10 +15,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see http://www.gnu.org/licenses/. -NX_LIBS=@@NXLIBDIR@@ +NX_LIBDIR=@@NXLIBDIR@@ # make sure nxagent starts properly with pam_tmpdir.so being in use NX_TEMP=${NX_TEMP:-/tmp} export NX_TEMP -exec $NX_LIBS/bin/${NXAPP:="nxproxy"} "$@" +exec $NX_LIBDIR/bin/${NXAPP:="nxproxy"} "$@" diff --git a/debian/nxagent.install b/debian/nxagent.install index 75e72fcde..5f6a9de35 100644 --- a/debian/nxagent.install +++ b/debian/nxagent.install @@ -4,7 +4,7 @@ usr/share/nx/rgb usr/share/nx/VERSION.nxagent usr/share/man/man1/nxagent.1* usr/lib/*/nx/bin/nxagent -usr/lib/*/nx-X11/ +usr/lib/*/nx/X11/ usr/bin/nxagent usr/share/pixmaps/nxagent.xpm etc/nxagent/nxagent.keyboard diff --git a/nx-libs.spec b/nx-libs.spec index 8fb25bf07..0eae1b482 100644 --- a/nx-libs.spec +++ b/nx-libs.spec @@ -515,8 +515,8 @@ rm -r %{buildroot}%{_includedir}/nx-X11/Xtrans %{_bindir}/nxagent %dir %{_libdir}/nx/bin %{_libdir}/nx/bin/nxagent -%dir %{_libdir}/nx-X11 -%{_libdir}/nx-X11/libX11.so* +%dir %{_libdir}/nx/X11 +%{_libdir}/nx/X11/libX11.so* %{_datadir}/pixmaps/nxagent.xpm %dir %{_datadir}/nx %{_datadir}/nx/rgb -- cgit v1.2.3 From 0ae1fd5d3aab62a144e2764d86f04b6b60995054 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Sat, 4 Feb 2017 18:52:56 +0100 Subject: nx-libs.spec: Don't manually override SHLIBDIR via the .spec file. The default in the main Makefile should work fine. --- nx-libs.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-libs.spec b/nx-libs.spec index 0eae1b482..4779885da 100644 --- a/nx-libs.spec +++ b/nx-libs.spec @@ -346,7 +346,7 @@ chmod a+x my_configure; export SHLIBGLOBALSFLAGS="%{__global_ldflags}" export LOCAL_LDFLAGS="%{__global_ldflags}" export CDEBUGFLAGS="%{__global_cppflags} %{__global_cflags}" -make %{?_smp_mflags} CONFIGURE="$PWD/my_configure" PREFIX=%{_prefix} LIBDIR=%{_libdir} SHLIBDIR=%{_libdir} +make %{?_smp_mflags} CONFIGURE="$PWD/my_configure" PREFIX=%{_prefix} LIBDIR=%{_libdir} %install make install \ -- cgit v1.2.3 From 4a01be659888c4a6a0eeb8396a3521ee759a7e20 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Sat, 4 Feb 2017 18:53:25 +0100 Subject: debian/rules: Don't manually override SHLIBDIR via the dh_auto_build call. The default in the main Makefile should work fine. --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index d30574c07..180de6984 100755 --- a/debian/rules +++ b/debian/rules @@ -51,7 +51,7 @@ override_dh_auto_install: override_dh_auto_build: - PREFIX=/usr dh_auto_build --parallel -- CDEBUGFLAGS="$(CPPFLAGS) $(CFLAGS)" LOCAL_LDFLAGS="$(LDFLAGS)" SHLIBGLOBALSFLAGS='$(filter-out -pie,$(LDFLAGS))' SHLIBDIR="$(LIBDIR)" + PREFIX=/usr dh_auto_build --parallel -- CDEBUGFLAGS="$(CPPFLAGS) $(CFLAGS)" LOCAL_LDFLAGS="$(LDFLAGS)" SHLIBGLOBALSFLAGS='$(filter-out -pie,$(LDFLAGS))' override_dh_strip: dh_strip -plibnx-x11-6 --dbg-package=libnx-x11-6-dbg -- cgit v1.2.3 From 4c4d3dfba927790abf5af511e8c31200de028a52 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Sat, 4 Feb 2017 18:54:21 +0100 Subject: Makefile: Actively set/override USRLIBDIR and SHLIBDIR when calling Xserver's make process. SHLIBDIR -> Points to the system's official library folder. USRLIBDIR -> In NX, this variable (amongst others) is used to set the executables RPATH (if enabled), so pointing this to SHLIBDIR/nx-X11. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5bdf23b35..14b92219f 100644 --- a/Makefile +++ b/Makefile @@ -72,7 +72,7 @@ build-full: cd nxcompshad && autoconf && (${CONFIGURE}) && ${MAKE} - cd nx-X11 && ${MAKE} World + cd nx-X11 && ${MAKE} World USRLIBDIR=$(USRLIBDIR) SHLIBDIR=$(SHLIBDIR) cd nxproxy && autoconf && (${CONFIGURE}) && ${MAKE} -- cgit v1.2.3 From 9d1da072c5f44e33d071a7f4f7c8c436cc8494fd Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 8 Feb 2017 15:03:58 +0100 Subject: Makefile: Allow longer names for variables that we want to allow distro maintainers to override. --- Makefile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 14b92219f..2f6acd235 100644 --- a/Makefile +++ b/Makefile @@ -9,15 +9,15 @@ COPY_DEREFERENCED=cp -RH RM_FILE=rm -f RM_DIR=rmdir -p --ignore-fail-on-non-empty -ETCDIR_NX ?= /etc/nxagent -PREFIX ?= /usr/local -BINDIR ?= $(PREFIX)/bin -LIBDIR ?= $(PREFIX)/lib -SHLIBDIR ?= $(LIBDIR) -NXLIBDIR ?= $(SHLIBDIR)/nx -USRLIBDIR ?= $(NXLIBDIR)/X11 -INCLUDEDIR ?= $(PREFIX)/include -CONFIGURE ?= ./configure +ETCDIR_NX ?= /etc/nxagent +PREFIX ?= /usr/local +BINDIR ?= $(PREFIX)/bin +LIBDIR ?= $(PREFIX)/lib +SHLIBDIR ?= $(LIBDIR) +NXLIBDIR ?= $(SHLIBDIR)/nx +USRLIBDIR ?= $(NXLIBDIR)/X11 +INCLUDEDIR ?= $(PREFIX)/include +CONFIGURE ?= ./configure NX_VERSION_MAJOR=$(shell ./version.sh 1) NX_VERSION_MINOR=$(shell ./version.sh 2) -- cgit v1.2.3 From ba620a054a7a9dfebc040a4f3cbf27c9e9ffe4b0 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Sat, 4 Feb 2017 19:00:00 +0100 Subject: Load libNX_X11 / faked libX11 via RPATH setting rather than fidgeting with LD_LIBRARY_PATH in the nxagent wrapper script. Fixes ArcticaProject/nx-libs#225. --- bin/nxagent.in | 1 - nx-X11/config/cf/Imake.tmpl | 4 ++-- nx-X11/config/cf/X11.rules | 4 ++-- nx-X11/config/cf/lnxLib.rules | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/bin/nxagent.in b/bin/nxagent.in index b3e87aab1..3a9dfc649 100644 --- a/bin/nxagent.in +++ b/bin/nxagent.in @@ -20,6 +20,5 @@ NX_LIBDIR=@@NXLIBDIR@@ # make sure nxagent starts properly with pam_tmpdir.so being in use NX_TEMP=${NX_TEMP:-/tmp} export NX_TEMP -export LD_LIBRARY_PATH=@@NX_LIBDIR@@/X11/ exec $NX_LIBDIR/bin/${NXAPP:-"nxagent"} "$@" diff --git a/nx-X11/config/cf/Imake.tmpl b/nx-X11/config/cf/Imake.tmpl index 93b659a0d..ba97b3b4c 100644 --- a/nx-X11/config/cf/Imake.tmpl +++ b/nx-X11/config/cf/Imake.tmpl @@ -723,12 +723,12 @@ TCLIBDIR = TclLibDir #ifndef UsrLibDir #ifdef ProjectRoot -#define UsrLibDir Concat4(ProjectRoot,/,LibDirName,/nx) +#define UsrLibDir Concat4(ProjectRoot,/,LibDirName,/nx/X11) #ifndef AlternateUsrLibDir #define AlternateUsrLibDir YES #endif #else -#define UsrLibDir Concat4(/usr/local,/,LibDirName,/nx) +#define UsrLibDir Concat4(/usr/local,/,LibDirName,/nx/X11) #ifndef AlternateUsrLibDir #define AlternateUsrLibDir NO #endif diff --git a/nx-X11/config/cf/X11.rules b/nx-X11/config/cf/X11.rules index 0f6a67ed4..af3473c3a 100644 --- a/nx-X11/config/cf/X11.rules +++ b/nx-X11/config/cf/X11.rules @@ -39,9 +39,9 @@ #endif #ifdef X11ProjectRoot -# define XUsrLibDirPath $(USRLIBDIR)/nx:$(XPROJECTROOT) +# define XUsrLibDirPath $(USRLIBDIR):$(XPROJECTROOT) #else -# define XUsrLibDirPath $(USRLIBDIR)/nx +# define XUsrLibDirPath $(USRLIBDIR) #endif #ifdef UsrLibDirPath # undef UsrLibDirPath diff --git a/nx-X11/config/cf/lnxLib.rules b/nx-X11/config/cf/lnxLib.rules index 166e896f1..e415db8f1 100644 --- a/nx-X11/config/cf/lnxLib.rules +++ b/nx-X11/config/cf/lnxLib.rules @@ -9,7 +9,7 @@ #endif #ifndef UseRpath -#define UseRpath NO +#define UseRpath YES #endif #if UseElfFormat -- cgit v1.2.3 From a474b9f931a2e22ce5d6255f1179c3b0cd00dd85 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Sat, 4 Feb 2017 19:02:16 +0100 Subject: debian/patches: Update 016_nx-X11_install-location.debian.patch. Adapt path to recent upstream changes. --- debian/patches/016_nx-X11_install-location.debian.patch | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/debian/patches/016_nx-X11_install-location.debian.patch b/debian/patches/016_nx-X11_install-location.debian.patch index ee5bb66cf..d8a63a6c0 100644 --- a/debian/patches/016_nx-X11_install-location.debian.patch +++ b/debian/patches/016_nx-X11_install-location.debian.patch @@ -6,16 +6,16 @@ Author: Mike Gabriel Last-Update: 2012-12-31 --- a/nx-X11/config/cf/Imake.tmpl +++ b/nx-X11/config/cf/Imake.tmpl -@@ -749,7 +749,7 @@ +@@ -730,7 +730,7 @@ #define AlternateUsrLibDir YES #endif #else --#define UsrLibDir Concat4(/usr/local,/,LibDirName,/nx) -+#define UsrLibDir Concat4(/usr,/,LibDirName,/nx) +-#define UsrLibDir Concat4(/usr/local,/,LibDirName,/nx/X11) ++#define UsrLibDir Concat4(/usr,/,LibDirName,/nx/X11) #ifndef AlternateUsrLibDir #define AlternateUsrLibDir NO #endif -@@ -767,7 +767,7 @@ +@@ -748,7 +748,7 @@ #define AlternateUsrDataDir YES #endif #else @@ -26,7 +26,7 @@ Last-Update: 2012-12-31 #endif --- a/nx-X11/config/cf/site.def +++ b/nx-X11/config/cf/site.def -@@ -72,7 +72,7 @@ +@@ -69,7 +69,7 @@ #ifdef AfterVendorCF #ifndef ProjectRoot -- cgit v1.2.3 From 52760b6e8727032dd1845359f3ac9d2c147872bb Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 8 Feb 2017 16:31:00 +0100 Subject: debian/patches: Update comment header of 016_nx-X11_install-location.debian.patch. --- debian/patches/016_nx-X11_install-location.debian.patch | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/debian/patches/016_nx-X11_install-location.debian.patch b/debian/patches/016_nx-X11_install-location.debian.patch index d8a63a6c0..c758a3cfe 100644 --- a/debian/patches/016_nx-X11_install-location.debian.patch +++ b/debian/patches/016_nx-X11_install-location.debian.patch @@ -1,9 +1,17 @@ Description: FHS adaptation for Debian packaging - On Debian, NX libraries and binaries are installed to - /usr/lib/nx. +Abstract: + On Debian, binaries are installed to /usr//nx. + . + Also, a fake-libX11 library symlink is placed into + /usr//nx/X11. + . + The given paths will be overridden by the Debian packaging + and modified into multi-arch paths. + Forwarded: not-needed Author: Mike Gabriel -Last-Update: 2012-12-31 +Last-Update: 2017-02-08 + --- a/nx-X11/config/cf/Imake.tmpl +++ b/nx-X11/config/cf/Imake.tmpl @@ -730,7 +730,7 @@ -- cgit v1.2.3 From 99c130f153b88fb9c779b0fd1f91d78cc4e75d01 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 8 Feb 2017 16:33:40 +0100 Subject: Makefile: Fix flawed uninstall-* targets. Spotted by Ionic while reviewing the nxagent RPATH changeset. Thanks! --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 2f6acd235..e78f45c1b 100644 --- a/Makefile +++ b/Makefile @@ -186,14 +186,14 @@ uninstall-lite: $(RM_DIR) $(DESTDIR)$(NXLIBDIR)/bin/ $(RM_FILE) $(DESTDIR)$(PREFIX)/share/man/man1/*.1 $(RM_FILE) $(DESTDIR)$(PREFIX)/share/nx/VERSION.nxproxy - $(RM_DIR) $(DESTDIR)$(NXLIBDIR)/share/nx/ + $(RM_DIR) $(DESTDIR)$(PREFIX)/share/nx/ uninstall-full: for f in nxagent; do \ $(RM_FILE) $(DESTDIR)$(BINDIR)/$$f; done $(RM_FILE) $(DESTDIR)$(PREFIX)/share/nx/VERSION.nxagent - $(RM_DIR) $(DESTDIR)$(NXLIBDIR)/share/nx/ + $(RM_DIR) $(DESTDIR)$(PREFIX)/share/nx/ if test -d nx-X11; then \ if test -f nxcompshad/Makefile; then ${MAKE} -C nxcompshad $@; fi; \ -- cgit v1.2.3