| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
libXau is integrated into libNX_X11, but the differences to libXau
original code where not explicitly marked. This path adds some ifdefs
and also restores the original code.
Attributes to ArcticaProject/nx-libs#850
|
|\
| |
| |
| | |
Attributes GH PR #845: https://github.com/ArcticaProject/nx-libs/pull/845
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
nxagent links system libraries that link against libX11. Unfortunately,
nxagent (and libXcompshad) require a modified libX11 version,
nicknamed libNX_X11, for proper functioning. Fortunately, this one can
act as a drop-in replacement for the system libX11. So we’ll hack our
way out: add a DT_NEEDED entry for libX11 by linking against the
system library when building nxagent and link the other system
libraries later and set DT_RUNPATH to a special directory containing
symlinks from libNX_X11 to libX11.
This tricks the loader into pulling in the "fake" libX11 version
without checking its SONAME and thus satisfying the DT_NEEDED entry
early on - specifically also for the system libraries.
Ex.:
readelf -a /usr/bin/nxagent | grep NEEDED
0x0000000000000001 (NEEDED) Shared library: [libX11.so.6]
...
0x0000000000000001 (NEEDED) Shared library: [libNX_X11.so.6]
...
If, however, you run the build a second time, it will find the newly
created libX11 links in ../../exports/lib (used as an additional
library search path) instead of the system libX11. The results in a
binary looking like this:
0x0000000000000001 (NEEDED) Shared library: [libNX_X11.so.6]
...
With such a setup, the whole magic falls apart and system libraries
will suddenly pull in the actual system libX11 file.
We initially believed a compiler call such as:
${CC} [--unrelated-options ...] [-Lunrelated_library_path ...] -lX11 [more
options like -l and -L] -L../../exports/lib -lother_libraries
to do "the right thing" and link against the system libX11 (or, at
worst, a libX11 found in the library directory search list preceding the
link call) and use ../../exports/lib only for later linking operations,
since the order of options matters.
However, this turned out to be blatantly wrong: while the order of -L
arguments does matter for building the search path, the whole search
path including elements from *ALL* -L arguments (and the system paths)
will always be used when linking libraries.
Hence, (counter-intuitively to us) both these calls will be equivalent:
${CC} [--unrelated-options ...] -la -Loverride_liba -lb
[-Lunrelated_library_path ...] -lc
${CC} [--unrelated-options ...] -Loverride_liba [-Lunrelated_library_path
...] -la -lb -lc
By removing LDPRELIBS from NXAGENTSYSLIBS, ../../exports/lib is no
longer used during building/linking and the binaries are built
reproducibly. We never intended to use this directory at link time
anyway.
|
|\ \
| | |
| | |
| | | |
Attributes GH PR #849: https://github.com/ArcticaProject/nx-libs/pull/849
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| | |
Remove some code that is no longer needed because the code requiring
it has been removed some time ago (commit
643e13bf3de6704f634d60342b738e0002f057b9). Fixes a small memleak that
turned up after switching to fullscreen once.
|
|\ \
| | |
| | |
| | |
| | |
| | | |
Attributes GH PR #848: https://github.com/ArcticaProject/nx-libs/pull/848
Fixes: ArcticaProject/nx-libs#847
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Using arguments that need a parameter without providing one would lead
a segfault due to calling strcmp() will NULL. Triggered by running
"nxagent -ac :1 -options nx/nx,fullscreen" or similar,
Fixes ArcticaProject/nx-libs#847
|
|\ \
| | |
| | |
| | | |
Attributes GH PR #846: https://github.com/ArcticaProject/nx-libs/pull/846
|
| | |
| | |
| | |
| | |
| | |
| | | |
nxagentHandleSelectionNotifyFromXServer
Use a more descriptive name.
|
| | |
| | |
| | |
| | | |
Fixes ArcticaProject/nx-libs#632
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
This avoids delays, timeouts and missing copy/paste actions.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
add new debug output, extend existing, drop meaningless
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
serverClientCutProperty is the external equivalent of the internal
clientCutProperty. We need it on the server side, too, because we use
the property on the serverWindow on the real X server. We could
(mis)use serverCutProperty here but this might introduce race
conditions when both sides request selections simultaneously.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This is not a functional change, it only helps in clearer debugging
output.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The second parameter was always NULL, so remove it. Also remove some
debugging output which distracts while debugging as the function is
called from ProcChangeProperty for _every_ property, also non-clipboard
related ones.
|
| | |
| | |
| | |
| | | |
we reference lastSelectionOwner[nxagentClipboardSelection].selection everywhere.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
nxagentClipboardAtom -> serverCLIPBOARD
nxagentTimestampAtom -> serverTIMESTAMP
This is to match the names of the other server atom variables.
|
| | |
| | |
| | |
| | |
| | | |
At some places we were using NumCurrentSelections. We replace that by
nxagentMaxSelections because they always have the identical value.
|
| | | |
|
| | |
| | |
| | |
| | | |
Just as everyone else does. ICCCM is not really clear about this.
|
| | | |
|
| | |
| | |
| | |
| | | |
endTransfer is the only caller
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
fixup! Clipboard.c: introduce XSendNotificationEventHelper
|
| | | |
|
|/ /
| |
| |
| | |
There was only one place where this was checked but we check it always.
|
|\ \
| | |
| | |
| | | |
Attributes GH PR #827: https://github.com/ArcticaProject/nx-libs/pull/827
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
One cannot simply pass down a va_list to another function that expects
variable arguments ("..."). The prototype of the called functions must
expect a va_list argument instead.
This fixes segfaults that happen e.g. after compiling X11.cpp with
TEST and effectively reverts 59e829f3647005a6c93662adfbcea36e27a993d8.
|
| | | |
|