With earlier versions of RPC and TIRPC it seems that svctcp_create()
calles listen() on the socket (as seen by debugger and strace).
Tooltalk expects this behavior.
However, with newer systems (ArchLinux 5/18+ and similar bleeding edge
versions of SuSE's equivalent: Tumbleweed), this behavior seems to
have changed.
ttsession goes into an infinite loop trying to accept() a connection
in the TIRPC library (via svc_getreqset()).
It appears listen() is no longer called on the socket when it is
created via svctcp_create(). The hack in this commit, always causes
listen() to be called on the socket, and seems to resolve the problem.
But it is a hack I think. I don't know if this is the correct
behavior of svctcp_create() or we were just lucky before.
Without this, you cannot use the command line to select the languages
to build, you would have to edit site.def directly.
With this fix, you can build a language on linux with something like:
make World IMAKE_DEFINES='-DDtLocalesToBuild="de_DE.ISO8859-1 es_ES.ISO8859-1"'
to build the DE (German) and es (Spanish) locales.
A recurring problem, mainly on the BSD's, and also on some Linux
installations, is a failure for ttsession to start and any clients
trying to attach to it failing due to having a hostname that is not
associated with an IP address.
This is due to code which looks up the hostname, and if it does not
have a valid host record, then TT just fails.
This has required those users to add an alias for their host name in
their /etc/hosts file.
With this commit, this should no longer be necessary. Now, if
_XGethostbyname() fails when looking up the local name, a default of
"localhost" is used, which should always exist.
This was run tested on Linux and FreeBSD 11.1. It was compile tested
on OpenBSD 6.2.
Some icons are actually symlinks to other icons, presumably for
compatibility with older systems. These were absolute symlinks. This
commit makes them relative symlinks instead.
While CDE builds fine with gcc6 on FreeBSD 11, the default clang build
was broken in a few places. This commit allows CDE to build now using
the default clang 6 system compiler.
This commit removes the need to setup X11 and motif import symlinks
before building CDE. With OpenBSD v6+, the installed versions of X11 and
Motif will be used.
This may work with earlier versions of OpenBSD as well, but I don't
have access to those older versions. If you try it, and it works,
send a patch to the CDE mailing list.
This was tested on OpenBSD 6.2
With this patch, the import symlinks for x11 and motif do not need to
be created. The build will use the installed headers in
/usr/local/include/{X11, Xm}.
This will work for FreeBSD 11 only ATM as I don't have older systems
to test with.
It may work for FreeBSD 10 or earlier versions as well. If so, edit
config/cf/FreeBSD.cf and change the OSMajorVersion check for
UseInstalledX11 appropriately. And send a patch to the CDE mailing
list :)
I'm not sure what the pam stuff wanted to do, but it was disabled
anyway and we do not need it. Someday, we will want to integrate with
PAM properly, but this wasn't it.
The POSIX __linux__ commit broke the special detection on linux used
to determine whether a secure system was in use or not.
This commit reworks the logic a little bit to avoid special casing
linux in main().
It also reworks the logic in CanReAuthenticate() to fix up some issues
"fixed" to correct converity warnings. The logic in this case was
mostly ok, but still didn't account for the proper usage of this
function. Error detection improved somewhat as a result.
The real issue seems to be a bug in Motif. The background color for
these tree icons is always black. Depending on what Palette you have
selected, it's possible for the foreground color to be black. When
this happens, you will see a black square since both fg and bg are now
black.
You can select another Palette that works (ie: foreground is white)
and the problem goes away. So, for now, we always force a white
foreground color so the actual symbols are visible in tree mode.
This is enabled by default. To disable, add:
in the config/cf/site.def or host.def file.
You will need to have the libtirpc-dev package installed.
The benefit is that you will no longer need to run rpcbind in insecure
mode (the -i option). There are other benefits we may be able to take
advantage of in the future, like supporting IPV6 for ToolTalk.
There are several hundred of these and unless you intend to fix them,
they are just compiler noise. If someone does want to go back and
redo all of these, then they can just re-enable this warning.
Original implementation:
Commit: 7fa35cA
dtfile: coverity CIDs 88363,88405,89140,89612; insecure readlink
That commit caused dtfile to be unable to resolve symbolic links and
was later reverted. This commit reimplements the fixes correctly, and
should hopefully still resolve the coverity issues as well.
bdftopcf specifically will not read symbolic links. This causes it to
fail when creating the programs/fontaliases/*/C/dtinfo.pcf.Z file and
subsequently, the fonts.dir file.
So, we add a new Imake macro: CopySourceFile(), to copy rather than
symlink the dtinfo.bdf file so these operations can complete
successfully. The dtinfo.bdf file is only 5KB, so there's very little
impact having an extra copy created during a build.
This software has a variety of problems, like including renamed X11
header files, and other nuttery.
These programs also have a very limited use, I doubt most people even
know what they are for or will miss them.
This commit prevents them from being built and installed. If no-one
volunteers to get these into decent shape after the next release, they
will be removed from the repository.