43 Commits

Author SHA1 Message Date
Jon Trulson
2d0c4d6d39 Kill off OSMAJORVERSION and OSMINORVERSION defines/cpp flags
This has meant very little for a long time as configure.ac just
hardcoded these values depending on the current OS versions at the
time.

The only place where this is really 'needed' is XlationSvc.c in DtSvc
so that differences between locale specifications on various versions
of an OS can be accounted for. So for now, we just define those when
building DtSvc.

We could probably safely remove them as well with an update to the
Xlate locale DB to remove ancient cruft we don't care about anymore.

For various other modules, like dtlogin, dtsession, etc we just use
the code that was already being used due to the hardcoded values we've
had for the last 10-ish years.
2022-08-06 17:57:44 -06:00
Chase
edf4319548 Discontinue HPUX support 2022-07-23 17:49:33 -06:00
Liang Chang
0797e9ca72 tt: ensure all versions of mapping can be deleted from portmap. 2022-03-25 15:24:31 -06:00
Liang Chang
2e69f83d33 tt: ensure ttsession is shut down properly. 2022-03-23 23:54:31 +00:00
Peter Howkins
35e94e3878 libtt: Resolve uninitialized warningss 2021-12-24 10:50:27 -07:00
Jon Trulson
a5a2d937cb Automate versioning for CDE, set current version to 2.4.0b
Previously in the imake world, changing the CDE version required hand
editing a handful of files.

This commit makes these files into ".in" files.  configure.ac now
holds CDE version information -- both in the AC_INIT() call and in the
CDE_VERSION_* variables a few lines down.

Changing the CDE version now involves editing those two locations in
configure.ac only.

Thereafter, a configure run will replace version information in the
following files with the current CDE version:

copyright
doc/common/help/HELPEnt.sgm
include/Dt/Dt.h
lib/tt/bin/ttauth/ttauth.man

This also causes a catch-22 problem with ToolTalk.  So the
tooltalk.inc file is gone and the relevant TT Makefiles have been
modified to set and define the TT version in those Makefiles that
actually use it.
2021-12-13 16:43:42 -07:00
Jon Trulson
c479fe7b9e Fix some logical-not-parentheses warnings 2021-12-11 17:39:35 -07:00
Jon Trulson
369b3e89d9 Begin removal of some Imakefiles, and other no longer useful cruft
This commit will not completely remove all Imake files, specifically
those for sections that have not been completed yet.

Also, the databases dir has been moved to databases-delete-later until
we have everything building and installed properly.
2021-07-03 18:23:40 -06:00
Lev Kujawski
a6ea2a2d52 Centralize catgets() calls through MsgCat
CDE has relied upon catgets() implementations following a relaxed
interpretation of the XPG internationalization standard that ignored
-1, the standard error value returned by catopen, as the catalog
argument. However, this same behavior causes segmentation faults with
the musl C library.

This patch:

- Centralizes (with the exception of ToolTalk) all calls to catopen(),
  catgets(), and catclose() through MsgCat within the DtSvc library.
- Prevents calls to catgets() and catclose() that rely upon
  undefined behavior.
- Eliminates a number of bespoke catgets() wrappers, including multiple
  redundant caching implementations designed to work around a design
  peculiarity in HP/UX.
- Eases building CDE without XPG internationalization support by providing
  the appropriate macros.
2021-06-02 19:55:15 -06:00
Jon Trulson
c329d5cfd7 Remove $(TIRPCINC) from all Makefile.am files - it no longer exists
Also, restructure some of the dependencies in the lib/tt binaries.  We
will link with libtt (which will include libtirpc as a dependency),
and XTOOLLIB - all the right X11 stuff without needing to add it to
every OS.  Removed several uneeded OS specializations ("if LINUX",
etc) as a result.
2019-11-20 18:52:29 -07:00
Jon Trulson
31fec7edb5 tt: Fixup tt build for new includes locations
Some files were trying to access the global includes directy in the
build area with things like #include <api/c/tt_c.h>, which is now
wrong.  Se we fix all of those up.  tt_c.h and tttk.h are now global,
so we no longer need to root around various build dirs to find them.

TT builds again.
2019-10-25 17:37:58 -06:00
Jon Trulson
f55e448fc7 tt/slib: include hack 2019-10-24 17:50:02 -06:00
Jon Trulson
e3028d4eff lib/tt: replace tooltalk.tmpl with tooltalk.inc in all Makefile.am files
This fixes the remaining warnings from autogen in lib/
2019-10-24 12:43:02 -06:00
Chase
500b30b2b3 lib/tt: add automake files 2019-10-23 15:34:20 -06:00
chase
90a2b2848a remove ultrix support 2018-09-30 17:27:04 -06:00
Jon Trulson
dc7807b13b slib/mp_rpc_server: TIRPC: force a listen() call on the server socket
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.
2018-07-01 19:45:09 -06:00
Ulrich Wilkens
16fbb15ecc Fix BSD and Sun problems after coverity fixes 2018-05-31 17:46:03 -06:00
chase
4f5e7fe5e3 Use POSIX macros for linux 2018-05-24 18:22:55 -06:00
chase
164e695cd0 remove OSF1 support 2018-05-24 14:25:26 -06:00
chase
07900bd93b Remove Unixware and openserver support 2018-05-20 12:13:07 -06:00
chase
8a4f389634 Remove UXPDS support 2018-05-15 20:27:22 -06:00
chase
33d2749ea3 Last of the spelling fixed 2018-04-28 12:36:44 -06:00
chase
1fe5a550b2 Fix typo in license headers 2018-04-28 12:30:20 -06:00
Peter Howkins
9088d6b54e libtt: Fixes for Coverity fixes that I thought I'd already fixed. 2018-04-24 00:05:56 +01:00
Peter Howkins
22071fd62a libtt: Further coverity fixes 2018-04-20 22:57:47 +01:00
Peter Howkins
02d43dabe6 libtt: Coverity fixes related to uninitialised fields in classes. 2018-04-18 01:28:03 +01:00
Peter Howkins
fee6003be1 libtt: More coverity fixes 2018-04-13 19:08:50 +01:00
Jon Trulson
17101b6f4c Enable TIRPC support for Linux
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.
2018-04-12 21:00:34 -06:00
Ulrich Wilkens
01d6c363fa OpenIndiana and Solaris port 2014-10-28 13:40:11 -06:00
Jon Trulson
9f0fbc3015 mp_rpc_server.C: limit iteration of svc_fdset to FD_SETSIZE, as per spec.
In init() there was code iterating over all of the possible file
descriptors in a svc_fdset.  fdsets are limited to FD_SETSIZE.  This
caused coredumps on FreeBSD 10, and possibly other hidden issues.

Moving to poll(), rather than select() would be better, but is a bigger
job.  For now, just limit to the FD_SETSIZE that select() requires.
2014-03-10 14:49:37 -06:00
Jon Trulson
a198d898e8 TT RPC server: Don't search 538 million transients trying to allocate one.
Currently, mp_rpc_server.C tries 538 million ports to acquire an
available transient rpcbind port number.  This is bad when rpcbind is
running in secure mode (and you are not using tirpc) - Xsession will
'hang' at the dthello (blue) screen filling up your error logs with
RPC errors.

Now, just try +- 50 (for a total of 100 ports) before bailing.  The
dthello 'blue screen of death' is the most common problem in starting
CDE when rpcbind isn't set up properly.  This should at least not
cause the appearance of a 'hang'.
2013-05-17 16:16:17 -06:00
Jon Trulson
f84950100f Revert "Older Linux installations do not have svcfd_create()."
This reverts commit 44e384aedb.

This code is actually needed.  If svcfd_create() is not available, it
should be fixed only for those systems that it affects.
2012-11-24 19:16:58 -07:00
James Woodcock
44e384aedb Older Linux installations do not have svcfd_create().
svcfd_create() is only called if OPT_UNIX_SOCKET_RPC is defined, so a #ifdef
round that code should be OK.
2012-09-27 18:01:19 -06:00
James Woodcock
406fa95994 Use RPC_ANYSOCK instead of the magic number -1. 2012-09-27 18:01:14 -06:00
Pascal Stumpf
3b77d7c065 Tooltalk fixes for OpenBSD. This consists mainly of #ifdefs, casts and some small type nits. 2012-08-10 06:24:29 -06:00
Jon Trulson
1f332de27b Use socklen_t where available.
Patch from <Pascal.Stumpf@cubes.de>

This should use socklen_t where available, really ...
2012-08-09 12:27:58 -06:00
Jon Trulson
784c7dff56 Add -fpermissive to linux standard c++ option define in linux.cf
Remove from individual Imakefiles.

Also, remove '#if 0' block in linux.cf, and remove empty
LinuxMachineDefines. This should be working correctly.  If not, let me
know.
2012-06-18 16:27:25 -06:00
Peter Howkins
837972cb69 Modify all Imakefile files to use LinuxArchitecture instead of LinuxDistribution
for Linux specific changes. (lib directory)
2012-05-31 12:41:33 +01:00
Peter Howkins
0a9e7d2db9 No easy access to min()/max() macro, rewrite code 2012-03-12 00:14:33 +00:00
Peter Howkins
fc4f30fa88 -fpermissive to allow GCC to compile old C++ 2012-03-12 00:06:34 +00:00
Peter Howkins
13f6ea01d4 No easy access to min() or max() macros, rewrite code to not use them. 2012-03-12 00:04:39 +00:00
Peter Howkins
c884521619 Add GNU LGPL headers to all .c .C and .h files 2012-03-10 18:58:32 +00:00
Peter Howkins
83b6996daa Initial import of the CDE 2.1.30 sources from the Open Group. 2012-03-10 18:21:40 +00:00