Commit Graph
100 Commits
Author SHA1 Message Date
Jon Trulson b5cc42e029 Apply a patch from Roger Brown for risc-v and other minor fixes
Summary:

cde/config/cf/DtInfo.tmpl - add RISCVArchitecture as little endian
cde/config/cf/Imake.cf    - add AArch64Architecture for NetBSD
cde/config/cf/Imake.cf    - add RISCVArchitecture for Linux
cde/config/cf/linux.cf    - add RISCVArchitecture bit order
cde/lib/DtHelp/Imakefile  - add -ljpeg for OpenBSD
2021-06-02 19:57:23 -06:00
Jon Trulson c7c054496b .gitignore: update for PAM changes 2021-06-02 19:57:23 -06:00
Jon Trulson 44307f85da debin/control: add libpam and libutempter 2021-06-02 19:56:30 -06:00
Jon Trulson 49adbfb25d Bump devel version to 2.3.2c 2021-06-02 19:56:30 -06:00
Jon Trulson 35c35d2b3c FreeBSD.cf,DragonFly.cf: disable PAM support by default
These system can support PAM, but it requires a port of the NetBSD
module to do so.  As a result, this support is disabled by default.

See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253073 for a
patch to add this support to the OS.  Then you can set HasPamLibrary
to YES in the respective .cf files, rebuild CDE, and try it out.
2021-06-02 19:56:29 -06:00
Jon Trulson 1f35dd82e6 NetBSD.cf: add a link comment to list package needed for PAM support 2021-06-02 19:56:29 -06:00
Jon Trulson 297918bb56 dtprintinfo: try to mitigate some stupid in ParseJob.C for sun
Marco Ivaldi pointed me to some unsafe code in ParseJob.c.  I do not
have a sun machine (well, not currently operational anyway), so the
code is not tested.  But seriously, this is some horrible code.  This
local parser for sun needs to be rewritten!
2021-06-02 19:56:28 -06:00
Jon Trulson 14eb374e0a .gitignore: Add some MsgCat.c generated files 2021-06-02 19:56:26 -06:00
Jon Trulson 7b79d810eb dthelp/parser: disable parallel building 2021-06-01 18:23:46 -06:00
Jon Trulson 9f5021a81f pm_randon.h: fix conversion warning (int to float) 2021-06-01 18:23:46 -06:00
Jon Trulson e8345c9241 autotools: specify tirpc lib to link the tooltalk binaries
Newer ubuntu's do not seem to honor the implied library dependency of
libtt->libtirpc, so we must explicitly specify libtirpc when linking
them.
2021-06-01 18:23:46 -06:00
Jon Trulson 248c75515e libDtTerm: fixes to build in autotools branch for freebsd 2021-06-01 18:23:46 -06:00
Jon Trulson 487305f7cf dtappbuilder: fixes to build in autotools branch for freebsd 2021-06-01 18:23:37 -06:00
Jon Trulson 37eba21c97 dtksh: disable parallel builds
This module will crash on multicore builds, so disable that for dtksh
until we can investigate and fix, if possible.
2021-01-31 13:43:28 -07:00
Jon Trulson d9a8325c8d Disable Japanese locale support since we do not currently support it
make distclean ignores the language definitions, as it should.

However, we had options that suggested that the Japanese locale was
supported.  Distclean would decend into that locale directory and
fail, since of course we do not actually support that locale and it is
not currently buildable.
2021-01-31 13:11:41 -07:00
Jon Trulson 1fad87f7bd ksh93: re-add the ksh submodule at 47468f 2021-01-30 19:12:43 -07:00
Jon Trulson 1941713a36 Remove no longer needed Makefile.am for ksh 2021-01-30 19:09:26 -07:00
Jon Trulson ece5c0ea14 Merge branch 'master' into autotools-conversion
Lost the ksh93 submodule so will re-add in a later commit.
2021-01-30 19:04:10 -07:00
Jon Trulson 6245f4fe7a README: update clone instructions 2021-01-30 17:12:10 -07:00
Jon Trulson eb381022a5 Change version to 2.3.2b for the new ksh93 submodule merge 2021-01-30 16:32:41 -07:00
Jon Trulson 6539c8c71a ksh93: re-add the ksh submodule at 47468f 2021-01-23 18:40:40 -07:00
Jon Trulson 047cefcf32 Merge branch 'master' into master-ksh93-upgrade 2021-01-23 18:31:28 -07:00
Jon Trulson 007b6fa023 udbParseLib.awk: comment out some uneeded commands that cause warnings now 2021-01-15 19:06:38 -07:00
Jon Trulson e18e2480dc dthelp parser htag1: add new global.c from master 2020-11-24 17:03:14 -07:00
Jon Trulson 90e61dda5f Merge branch 'master' into autotools-conversion 2020-11-24 16:53:24 -07:00
Jon Trulson b21968f26a fix broken dev version number: 2.3.1a -> 2.3.2a 2020-11-23 17:01:37 -07:00
Jon Trulson 2b338e4241 dtdocbook/xlate_locale: add proper include for strcmp 2020-09-08 08:44:19 -06:00
Jon Trulson ebc283a2a7 Merge branch 'master' into autotools-conversion 2020-09-07 18:20:13 -06:00
Jon Trulson 29ddc05827 dthelp/parser/pass1: disable parallel builds due to occasional failures 2020-09-07 17:50:40 -06:00
Jon Trulson cc12058502 dtdocbook: make it build under autotools
Remove a pile of old SGML stuff we no longer need in dtdocbook since
we use NSGMLS.

Use some TCL macros from m4/tcl.m4 to loacate and use information in
the tclConfig.sh script installed with TCL.  I had to modify it to
export TCL_INCLUDE_SPEC, which was present but not imported.
2020-09-07 17:43:01 -06:00
Jon Trulson 43bda68f69 configure.ac: Add TCL detection 2020-09-07 14:31:00 -06:00
Jon Trulson e5914dd108 dtappbuilder/src/ab: disable parallel builds
Due to the way dtcodegen works, we can't use parallel builds (-j) in
this directory without corrupting things and generating build errors.
2020-09-05 16:20:13 -06:00
Jon Trulson c7907f4f19 .gitignore: add dthelp parser/pass1 files 2020-05-25 12:31:20 -06:00
Jon Trulson 6da55905ec dthelp/parser/pass1: get it to build
So this is going to be tricky/painful getting this parser fully
operational.  It's pretty hairy with various interdependencies and
generated code.

It's rather complicated how each sub dir depends on the previous one.
Also, the parser subdir has dependencies on the helptag subdir, and
vice-versa, so some hackery was needed to get that to work.

Due to the wierd interdepencencies between helptag and parser,
we disable parallel builds there.

This is some really horrible code and design - not surprising since it
dates to 1989.

I think it should just be removed -- who can maintain or refactor this
code?

Also, dthelp_htag1 is now built in pass1/parser/, not in
pass1/helptag/ as it used to be.
2020-04-21 15:40:05 -06:00
Jon Trulson 349802ddd3 dthelpprint: make it build. 2020-04-13 16:21:27 -06:00
Jon Trulson b64d91d5a9 app-defaults, config, types: re-enable parallel builds
With a fixed merge utility, we can run these builds in parallel now
without random corruption of the message files.
2020-03-24 18:44:40 -06:00
Jon Trulson 3d217c6ed1 merge: fix to use per-proc filenames rather than hardcoding them
The localized/utils/merge utility used hardcoded temporary filenames
to do its thing.  This prevented any Makefiles that called merge from
enabling parallel builds in order avoid the file collisions that would
result.

Now we:

- use filenames that embed the PID in them, making them unique
  per-process
- place them in /tmp, rather than the current directory

As a result, we can now re-enable parallel builds for localized
app-defaults, config, and types.
2020-03-24 18:43:11 -06:00
Jon Trulson f5c3c5d7a2 .gitignore: add config numbered session files 2020-03-24 18:43:03 -06:00
Jon Trulson 255b399760 appmanager action files: create and populate them
The appmanager action files (/usr/dt/appconfig/appmanager/*) are now
created properly for the main 4 languages supported.  As usual, the
en_US.UTF-8 locale is a symlink to C.

These files were previously created via the UDB database files via
imake.  Obviously we aren't going to be using those in autotools.

So, each language now has an appmanager/ dir in
programs/localized/$LANG/ that will create them properly on a make and
make install.  It uses a new appmgr.am template in localized/templates
to do this.

This also means all of these languages now can use the new actions
added by Antonis, even though they are not translated, they are at
least usable in those languages now.
2020-03-24 18:41:55 -06:00
Jon Trulson 316ab9c9db tt: fix link order for tt_type_comp and dbck
These caused link errors on Gentoo, maybe other systems.

Patch by Peter G.
2020-03-24 11:34:51 -06:00
Jon Trulson 137bbf383e dthelp: get parts of it building.
This was a patch from Peter G, though modified a bit regarding the
LDADDs the way we do them now.
2020-03-23 13:51:01 -06:00
Jon Trulson dcda29d67a dthelpdemo: remove old Makefile.SUN, .IBM, and .HP 2020-03-23 13:44:34 -06:00
Jon Trulson 11b9c30ace Build nsgmls
Patch from Peter G.

Note, this is temporary - eventually we will want to use the system
nsgmls/onsgmls to handle this and remove our ancient copy of nsgmls.
2020-03-23 13:31:34 -06:00
Jon Trulson b649ef98b1 configure: enable building of nsgmls and parts of dthelp
Patch by Peter G.
2020-03-23 13:27:06 -06:00
Jon Trulson 5852c4742f Fix erroneous uses of ${prefix} rather than $(CDE_INSTALLATION_TOP)
Some Makefiles use prefix when they should be using
CDE_INSTALLATION_TOP.

Patch by Peter G.
2020-03-23 13:10:07 -06:00
Jon Trulson a6e78364d0 Use bindir in install hooks rather than CDE_INSTALLATION_TOP
Patch supplied by Peter G.
2020-03-23 13:00:54 -06:00
Jon Trulson 11af2add7e Merge branch 'master' into autotools-conversion 2020-03-23 12:55:32 -06:00
Jon Trulson 15a2032626 Convert uses of XKeycodeToKeysym (deprecated) to XkbKeycodeToKeysym
patch supplied from Peter G.
2020-03-23 12:51:18 -06:00
Jon Trulson 8f2fe85639 Merge branch 'master' into autotools-conversion 2020-03-22 19:09:58 -06:00
Jon Trulson 6f1a110e1d dtksh: fix 32b/64b issues with XmTextGetString and XmTextFieldGetString
Some of these functions were returning pointers cast as integers,
which of course is bad on a 64b LP64 systems.

This code should probably just be refactored at some point.  There may
be other hidden issues, and all the casting just sucks.
2020-03-09 15:37:59 -06:00
Jon Trulson 83ef13af18 desktopentry/README: Clarify that the login manager is responsible for setting language 2020-02-08 16:16:13 -07:00
Jon Trulson 2a2c412e2e Revert "Add a new contrib/desktopentry-setlang/ mechanism"
This reverts commit 08b6281f60.

The Login manager is reponsible for setting the correct language
(LANG, etc) information before starting a CDE session.
2020-02-08 16:12:31 -07:00
Jon Trulson 04b2d175aa SrvPalette.c: missed a merge conflict in SrvPalette.c 2020-01-26 12:22:09 -07:00
Jon Trulson 313b4a8e0b Merge branch 'master' into autotools-conversion 2020-01-26 12:17:44 -07:00
Jon Trulson 08b6281f60 Add a new contrib/desktopentry-setlang/ mechanism
This was supplied by Antonis Tsolomitis
<antonis.tsolomitis@gmail.com>, and allows you to hardcode a LANG
setting before starting up CDE, if your login manager does not do that
for you.
2020-01-26 11:54:38 -07:00
Jon Trulson 6b32246d06 dtsession, DtSvc: fix CVE-2020-2696/VU#308289
Marco Ivaldi <marco.ivaldi@mediaservice.net> has identified 3
vulnerabilities in CDE.

Two of them could affect our CDE (open-source version), while the 3rd
(sdtcm_convert) is Solaris specific.

The two vulnerabilities, both of which affect dtsession could allow a
local privilege escalation to root.  A POC exists for Solaris.  The
POC will not function on our CDE for two main reasons:

- the POC is Solaris specific
- The overflowed variables in question are allocated on the heap,
  whereas in Solaris these variables are located on the stack.

The first vulnerability allows an extra long palette name to be used
to cause a crash via insufficient validation in
SrvPalette.c:CheckMonitor().

The second, which has not yet been assigned a CERT CVE resides in
SmCreateDirs.c:_DtCreateDtDirs() in libDtSvc.  Due to insufficient
bounds checking, a crash or corruption can be achieved by using a very
long DISPLAY name.

This one is considered difficult to exploit, and no POC code is
available at this time.  CDE 2.x code-bases are also listed as not
vulnerable, however some work has been done anyway to do some proper
bounds checking in this function.

The following text portions are copied from the relevant advisories,
which have not been released as of this writing.

NOTE: Oracle CDE does NOT use CDE 2.3.0a or earlier as mentioned
below.  They are completely different code-bases):

Regarding CVE-2020-2692:

  A buffer overflow in the CheckMonitor() function in the Common
  Desktop Environment 2.3.0a and earlier, as distributed with Oracle
  Solaris 10 1/13 (Update 11) and earlier, allows local users to gain
  root privileges via a long palette name passed to dtsession in a
  malicious .Xdefaults file.

  Note that Oracle Solaris CDE is based on the original CDE 1.x train,
  which is different from the CDE 2.x codebase that was later open
  sourced. Most notably, the vulnerable buffer in the Oracle Solaris
  CDE is stack-based, while in the open source version it is
  heap-based.

Regarding the DtSvc bug, which does not currently have a CERT CVE:

  A difficult to exploit stack-based buffer overflow in the
  _DtCreateDtDirs() function in the Common Desktop Environment version
  distributed with Oracle Solaris 10 1/13 (Update 11) and earlier may
  allow local users to corrupt memory and potentially execute
  arbitrary code in order to escalate privileges via a long X11
  display name. The vulnerable function is located in the libDtSvc
  library and can be reached by executing the setuid program
  dtsession.

  The open source version of CDE (based on the CDE 2.x codebase) is
  not affected.
2020-01-13 19:13:23 -07:00
Jon Trulson ab023dfaed DtSvc: always use vsnprintf
There was code (_DtSimpleError() and _DtSimpleErrornoError()) that
only used snprintf when USE_SNPRINTF was defined, which it never was
of course.  We just remove the 2 checks and always use [v]snprintf.
2020-01-12 17:25:56 -07:00
Jon Trulson 1aaf63f2a0 dtterm, dtsession, dtappgather, dtmail: set correct perms on make install 2020-01-05 20:53:03 -07:00
Jon Trulson 7f4889f348 freetype: redo the way we detect and use
We (configure) relies on freetype-config existing and telling us what
the proper includes and libs are.
2020-01-05 18:11:52 -07:00
Jon Trulson 4d12673147 configure: detect and use jpeg library 2020-01-05 16:27:17 -07:00
Jon Trulson 00dcd9c63d FreeBSD 12: get CDE to build and run
With this patch, CDE (autotools) builds and runs on fbsd 12 now.
fbsd11 should work too, but not yet tested.

You must use gmake - ie:

./configure MAKE=gmake
gmake

Seems all of the BSD's will need to use gmake for now.
2020-01-04 16:26:46 -07:00
Jon Trulson 2f8a2ec066 FreeBSD 12/libDtHelp: fix link errors with missing libjpeg 2020-01-04 14:36:06 -07:00
Jon Trulson da6f570381 configure: get the language enable options working 2020-01-02 22:14:23 -07:00
Jon Trulson f246e25e55 configure: fix some bsd issues
1. On OpenBSD, and check is made for only bison or byacc.  yacc is
present, but not usable apparently.  So - need to install bison on the
BSD's.

2. the libjpeg.h check fails as it is located in a non-standard
location (/usr/local) on BSD systems.  Just remove the check for now
until we have a better way to check that stuff (like X11 and Xm
headers too).
2020-01-02 19:20:53 -07:00
Jon Trulson 3b1a54ca81 configure: add some more error checking/reporting for required programs
A list of major things like ksh, cpp, etc are saved in a list if they
are not found.  If this list is non-empty when configure is nearly
done, an error message is displayed listing the missing programs.
This is less annoying than stopping after every missing programs.

Also, removed the X11/Xm header checks for now.  Those need to take
into account X_CFLAGS in some way since these files are located in
dirfferent areas on different OS's (obsd puts them in
/usr/X11R6/include for example).
2020-01-02 18:35:36 -07:00
Jon Trulson f634c682df configure: make sure X_EXTRA_LIBS and X_PRE_LIBS are accounted for 2020-01-02 18:35:36 -07:00
Jon Trulson 005c72b917 Merge branch 'master' into autotools-conversion 2019-12-15 15:18:41 -07:00
Jon Trulson 6c0c619df3 configure: set a compiler search option
... and move the PROG_CC and PROG_CXX checks toward the beginning.
Without the move the compiler search arguments are ignored.  We search
for 'cc gcc clang' and 'c++ g++ clang++', in that order for CC and CXX
respectively.

This means there should be no need to override the CC
and CXX variables on the configure command line for BSD systems.

On OpenBSD for example, cc links to clang.  On Linux, cc links to
gcc.  You can still override these if you like with CC=... and
CXX=... on the configure command line.

gmake (MAKE=gmake) still needs to be used on the BSD's though.

With these and previous changes, CDE builds, installs, and runs
correctly on OpenBSD 6.5 now.
2019-12-15 12:47:57 -07:00
Jon Trulson dd729a7be9 _common.dt.tmsg: remove unportable quote hackery 2019-12-15 12:34:00 -07:00
Jon Trulson e4e8b323c7 localized: use proper mkcatdefs for the Motif catalogs 2019-12-15 11:20:36 -07:00
Jon Trulson 9b2534efab dtsession: do not hardcode -lcrypt on link 2019-12-14 19:14:52 -07:00
Jon Trulson 617865da94 gencat: get rid of -o option, not needed and not supported on some systems 2019-12-14 19:05:35 -07:00
Jon Trulson c0a6f6c6e3 configure: fix another bsd related typo 2019-12-14 19:04:22 -07:00
Jon Trulson c1078e464a dtlogin: build on openbsd 2019-12-14 18:22:49 -07:00
Jon Trulson d0ce42db9e dtopen/Makefile.am: fix typo in link for pdf handler 2019-12-14 14:21:41 -07:00
Jon Trulson c0da389d46 configure: first stab at a BSD (openbsd 6.5) build 2019-12-14 14:17:07 -07:00
Jon Trulson b19aa1b21f dtopen: install symlinked helpers
With this commit, CDE can install and run now.  There are still some
programs/ that are not yet built:

dthelp dtksh dtappbuilder dtdocbook dtinfo nsgmls ttsnoop

and of course documentation (doc/).  But this is a great start.  For
the first time, things build, install, AND run correctly :)
2019-12-04 18:26:32 -07:00
Jon Trulson 973ebf9ed0 library versioning: use proper format and specify for ALL libraries 2019-12-04 18:09:22 -07:00
Jon Trulson 7c81d9d19d programs/Makefile.am: add missing palettes/ dir 2019-12-04 16:36:09 -07:00
Jon Trulson 1b5d18f604 fontaliases: redo the way these are built, and actually install them
Use a common make include file to do most of the work and set the
appropriate LANG from localized/templates/ .  This should simplify it
quite a bit and reduce duplication.

Also we were not even installing them, so now we are.
2019-12-04 15:47:28 -07:00
Jon Trulson 25035724af cpp revisited: look for a cpp binary in various locations for use at runtime
Certain programs like dtlogin and tt_type_comp need access to the
system's cpp command to process certain files at runtime.  tradcpp is
not installed on most systems, and is intended for use as a imake-cpp
replacement which is all we are using it for.  We still need an
honest cpp for the CDE components to use.

Now, we look in various places for a 'cpp' command and set CPP_COMMAND
to it's value.  This way tt_type_comp and other CDE programs can do
required processing at runtime.
2019-12-04 14:28:44 -07:00
Jon Trulson 65ce14c419 dtwm: don't install Dtwm.defs - that is processed/handled by localization 2019-12-04 13:43:18 -07:00
Jon Trulson 7364f62ce8 icons: install in proper C/ subdir 2019-12-04 13:22:11 -07:00
Jon Trulson 21cf53c0d0 Fix palette and backdrops installation in dt/shared with proper symlinks 2019-12-04 13:21:31 -07:00
Jon Trulson ec8f4b7464 tradcpp: upgrade to 0.5.3 2019-12-03 18:13:27 -07:00
Jon Trulson 15dfdf231a dtsession/SrvPalette.c: delete trailing whitespace 2019-12-03 17:14:32 -07:00
Jon Trulson eb986d8018 dtsession/SrvPalette.c: fix bogus error handling when selection is lost 2019-12-03 17:10:35 -07:00
Jon Trulson 48dd0a54f3 dtlogin/dtsession: fix up some script perms, add proper OS defines 2019-12-03 14:06:18 -07:00
Jon Trulson 005c328779 dtlogin: set correct OS defines for Xsession, fix linux maildir 2019-12-03 13:07:19 -07:00
Jon Trulson 0d69a14ab3 videoTypes.dt: remove duplicate LABEL in Print action 2019-12-03 13:06:21 -07:00
Jon Trulson 8c19b67032 dtsession: add missing dtsession_res script 2019-12-02 23:02:08 -07:00
Jon Trulson 6f27da77d9 dtwm: fix installation 2019-12-02 23:01:08 -07:00
Jon Trulson 751e85d877 dtlogin: fixup some of the options 2019-12-02 23:00:16 -07:00
Jon Trulson ce02cc49d6 dtlogin: install Xsession properly 2019-12-02 22:13:39 -07:00
Jon Trulson cdc9eae583 Get tttypes installed correctly.
There is a problem with CPP_PROGRAM - using $CPP or $GENCPP (tradcpp)
always fails in tt_type_comp with the error:

"nclude ", line 8: syntax error

If I define it to /lib/cpp (previous hardcoded value) then it seems to
work fine.  Only the dtinfo and dtinfo_start ptypes use #include, and
therefore show this error.  Needs investigation.
2019-12-02 19:59:44 -07:00
Jon Trulson 0cc0766cbd Get the dt types installed properly on make install 2019-12-02 19:31:02 -07:00
Jon Trulson c6b31ebd5f Get the palettes installed properly on make install 2019-12-02 19:20:36 -07:00
Jon Trulson e479b2082b Get the message catalogs installed properly on make install 2019-12-02 19:06:31 -07:00
Jon Trulson c40f0c9f08 Get /usr/dt/config populated correctly on make install 2019-12-02 14:33:05 -07:00
Jon Trulson 5823e95e03 Install backdrops in proper location, install localization for them 2019-12-02 13:08:52 -07:00