Remove calls to bogus utility functions in cases where the user is
root and the filesystem in question is an NFS filesystem.
For now, __linux___ and CSRG_BASED machines will use statfs to
determine whether to test delete-ability. For other systems, just do
the create/delete test always if the user is root.
In addition:
- moved video type detection into a separate file: videoTypes.dt out
of datatypes.dt. Also, removed all actions from Antonis' dt files,
as these are handled by the new actions (listed below).
Image, postscript, and PDF types definitions are still located in
datatypes.dt.src
- supports most image files, PDFs, postscript files, and video files
via dtapp now.
- Added new actions:
- DisplayImage
- DisplayVideo
- DisplayPDF
- DisplayPS
All of these call the dtapp_* helpers to locate an appropriate
program to handle the task.
- Added a camera icon
- standardized the icons used to display the various types - all
images use the Dtimage icon now, as an example.
- moved the new *.dt files to their proper place in programs/types,
rather than programs/localized/C/types (my bad).
Please add any further video types into videoTypes.dt, and everything
else (for now) into datatypes.dt.
In the future, we should probably separate these out into
type-specific .dt files. Also, something should be done about playing
audio files too (maybe DisplayVideo.dt can handle all those too?)
This script is located in /usr/dt/bin/dtapp, and is then symlinked to
various helpers that can be used in DT actions to run programs.
The various helpers currently installed are:
dtapp_vimage - view an image file, override with DTAPP_VIMAGE.
Defaults to xv, display, and gimp, in that order.
dtapp_vpdf - view a PDF file, override with DTAPP_VPDF. Defaults to
okular, xpdf
dtapp_vps - view a postscript file, override with DTAPP_VPS. Defaults
to mgv, gv
dtapp_vvideo - view a video file, override with DTAPP_VVIDEO.
Defaults to vlc, ffplay.
When a request is made to view one of these files, the list of viewers
will be tried, in order, until one is found. If none are found, an
error message will be displayed. Add overrides to your ~/.dtprofile
file.
We can add more dtapp commands and defaults for them as needed.
This is in preparation for integrating Antonis Tsolomitis' extended
actions and icon files, coming up in future commits.
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.
There were a variety of potential 64b problems due to the complete
lack of prototype declarations. So, we add a file, isam_prototypes.h,
generated mostly by the 'cproto' tool.
We also fixed up some errors that having proper prototypes pointed
out, mainly in passing ints where pointers were expected and vice
versa. The iserase() function was supposed to accept a char *, but
was defined as only accepting a char. Fun stuff like that.
This program has never worked very well, and it may still not work
very well. This commit removes the ancient C++ headers and uses
modern replacements with some changes required due to the different
interfaces.
It builds a lot cleaner, and no longer does stupid things like
deleteing char *, ostream.str()'s, and the like.
This program could be really useful if it worked well. Some thought
should be givien in the future to decouple this SW from dtappbuilder
and maybe just rewrite from scratch.
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.