Commit Graph

89 Commits

Author SHA1 Message Date
Peter Howkins
5a763ae48b libtt: Resolve format-overflow issues 2021-12-24 10:50:28 -07:00
Jon Trulson
31774af2f2 library versioning: try to keep the versions at 2.1.0 for all platforms 2021-12-23 13:06:44 -07:00
Jon Trulson
3a0e92adb6 Rename autotools_config.h to cde_config.h to better reflect it's ownership. 2021-12-22 13:21:43 -07:00
Jon Trulson
1b67815df2 configure, libtt: add check for rpc_inline_t and define if not supported 2021-12-22 13:14:55 -07:00
Jon Trulson
e10d06f210 configure/Makefiles: add checks for Xmu, Xext, and Xdmcp
We also remove sun pro specific options, and do some general cleanup
as well as remove hardcoded library refs like -lXm, -lXext, etc...
2021-12-21 16:42:22 -07:00
Jon Trulson
17602b4d21 Library (.so) versioning: preserve previous library version
Ticket #120

Change libtool's shared library version info to 3:0:1 to preserve the
previous library version of 2.1.0.

See https://autotools.io/libtool/version.html for the details on how
libtool handles this versioning info.

See https://verbump.de/ for a handy 'version calculator' using
libtools rules.
2021-12-16 12:40:15 -07:00
Jon Trulson
e7d657c376 libtt: remove hardcoded -lstdc++ used to build TT library
Hardcoding a -lstdc++ is wrong, since not all OSs are likely to handle
C++ in the same way.

The issue is that libtt needs to be built as a C++ library, so we use
a fake dummy.cxx file to convince libtool to do so instead, rather
than trying to force the issue by linking a (possibly missing)
libstdc++.
2021-12-13 16:44:01 -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
f61316c4f4 tt_ldpath: fix broken logic in find_lib 2021-10-23 14:50:40 -06: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
90e61dda5f Merge branch 'master' into autotools-conversion 2020-11-24 16:53:24 -07:00
Peter Howkins
67f62e5a8a all: remove deprecated sys_errlist[] and replace with ANSI C strerror() 2020-11-02 05:30:08 +00:00
Jon Trulson
e481f4cb93 Merge branch 'master' into autotools-conversion 2019-12-01 13:31:21 -07:00
Nina Didenko
9221c55a5f tt_type_comp: use CppCmd definition
Hi.

This patch makes tt_type_comp respect CppCmd

Thanks!
2019-11-29 18:12:20 -07: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
31e69340ce libtt: add -ltirpc as a dependency if we are using it
This means that when linking against libtt, libtirpc should also
automatically be linked in if we determined that we are using tirpc.

This avoids having to link every program that uses libtt (almost all
of them) from having to have a $(TIRPCLIB) added to their link
commands.
2019-11-19 18:09:21 -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
369308b737 The great includes migration of 2019 (autotools)
Ok - so one of the steps in building CDE is an early phase called the
includes phase (make includes).  At this point, all of the public
header files are exported to exports/include/Dt, DtI, ...

Then, the software is built using that include dir.

This of course does not work in autotools.  Much of the software does
things like #include <Dt/something.h>, so in order for the build to
succeed, this behavior must be represented/replicated in some way.

It seems the usual way of dealing with this is to place all public
headers (and in some projects, ALL headers) into a toplevel include
directory.

We now do this for all public headers - they have been moved from
wherever they were and placed in the appropriate spot in includes/

This will break the Imake 'make includes' phase unless the Imakefiles
are fixed (remove the HEADERS = stuff, and the incdir defines).  This
has not been done at this point since in reality, once autotools works
properly, there will be no need for the Imake stuff anymore, and I
intend to get rid of it.

This is just a warning for now - Imake builds in this tree will now
fail at the 'includes' stage.

This commit is only the migration.  In upcoming commits, libtt will be
fixed so that the hack being used before to get around this problem is
removed as there will no longer be any need.

And then the autotools work continues...
2019-10-25 17:01:34 -06:00
Jon Trulson
9182ddfcc3 tt: fixup remaining build issues 2019-10-24 21:29:03 -06:00
Jon Trulson
bb4a2c7694 configure/Makefiles for TT: many fixups
Redo the way the main CDE libs are specified in configure.ac... The
current way could not work due to evaluation issues, and the fact that
variables like $srcdir and the like are only valid in Makefiles, not
configure.

Use @LIBNAME@ rather then $(LIBNAME) in Makefile.am files - this way
the location is always evaluated when it's run, not in configure -
which can't work for a variety of reasons.

Got some of the TT binaries to build.

Made a new include/cppfile.inc file that can be used to pre-process
files.  The downside is that currently you can only pre-process one
file at a time per Makefile.  Something more robust is needed, but at
least tt/bin/shell now builds.  Will need to come up with a better way.
2019-10-24 20:06:39 -06:00
Jon Trulson
b4295847c6 tt/tttk: play symlink games so tttk can build
With this, we can now build the tooltalk library successfully.
2019-10-24 14:29:29 -06:00
Jon Trulson
ff2e991ce8 tt: create Makefile.am for tt/util 2019-10-24 14:05:03 -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
Jon Trulson
1d7ed3a17e autotools: many fixups, SUN->SOLARIS, typos, etc
This should allow an autoregen and ./confiure to work.  We only
generate Makefiles for lib/* and ./Makefile for now.  We'll ad more as
we go along.

Make still fails as we need to figure out TT - tirpc lib, rpcgen,
etc.  But it's a start!
2019-10-23 17:34:55 -06:00
Chase
500b30b2b3 lib/tt: add automake files 2019-10-23 15:34:20 -06:00
wmoxam
ab741a1241 'notdef' means it's not used, so we remove it 2019-10-15 20:32:13 -06:00
chase
90a2b2848a remove ultrix support 2018-09-30 17:27:04 -06:00
chase
d12ad886c1 Remove old windows support 2018-08-25 15:47:54 -06:00
Jon Trulson
34436c7725 tt/lib: remove register keyword 2018-06-27 22:00:56 -06:00
Peter Howkins
020d592338 libtt: Change to ANSI function definitions 2018-06-28 04:06:47 +01:00
Jon Trulson
8c1ad2d3a8 libtt: if local hostname lookup fails, default to localhost
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.
2018-06-20 16:59:34 -06:00
Ulrich Wilkens
297b6bd845 Fix warnings on FreeBSD 2018-05-31 22:04:08 -06:00
Ulrich Wilkens
16fbb15ecc Fix BSD and Sun problems after coverity fixes 2018-05-31 17:46:03 -06:00
Jon Trulson
3495287b78 tt_xdr_utils: fix up some warnings 2018-05-25 11:16:04 -06:00
Jon Trulson
7f9634010b tt_old_db: use TT_DB_OK instead of NULL 2018-05-25 10:23:18 -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
Peter Howkins
30ad8e35e5 libtt: Resolve coverity warnings 2018-04-11 19:31:03 +01:00
Jon Trulson
9412da725b libtt/tt_file_system.C: coverity CID 86024; array vs singlton 2018-03-31 19:05:35 -06:00
Peter Howkins
50a96959f0 libtt: Resolve some compiler warnings 2018-03-28 21:34:08 +01:00