Commit Graph
78 Commits
Author SHA1 Message Date
Marcin Cieslak 2c10f0d62b Fix location of some SGML files 2012-10-24 18:17:06 -06:00
Marcin Cieslak b92cf08899 Adobe Helvetica as -dt-interface system-
Use Adobe Helvetica as the sans serif user
interface font (among others, dtlogin, front
panel buttons, menu titles) instead of Lucida.

While there, move X Consortium comment back
to the top.

This change applies only to FreeBSD.
2012-10-08 19:31:24 +01:00
Marcin Cieslak c3c9abd86f Set CDE_RELEASE to 2.2.0 2012-10-06 18:42:35 +01:00
Marcin Cieslak 40883b0165 Remove missing xmbind and uil from UDB
Remove xmbind and uil utilities we
do not build and install from the
packing lists.
2012-10-02 18:57:14 -06:00
Marcin Cieslak aacfe3e5de dtfile: Fix crash when trying to open filter dialog
On 64-bit machine dtfile crashes when opening
list of file types to filter in Encaps.c:

   _DtShowDialog (parent=0x805c80900, map_parent=0x0, top_rec=0x805ce3600,
     dialog_data=0x805db25e0, change_proc=0x4489f0 <FilterChange+16>,
     change_data=0x805ce3600, close_proc=0x4489c0 <FilterClose+16>,
     close_data=0x805ce3600, workspaces=0x0, iconify_state=0 '\0',
     ignoreCache=0 '\0', title=0x0, classHints=0x0) at Encaps.c:531

531	        ResetFlag(NULL,fr->close);
2012-10-02 18:57:12 -06:00
Marcin Cieslak de61ffa637 Use -O2 -fno-strict-aliasing optimization for FreeBSD
- Switching from -O to -O2 after the dthelp problem
  has been resolved
- Introducing -fno-strict-aliasing (currently FreeBSD's
  default) to avoid silent change of behaviour of legacy code.

  http://thiemonagel.de/2010/01/no-strict-aliasing/

  http://jeffreystedfast.blogspot.de/2010/01/weird-bugs-due-to-gcc-44-and-strict.html

Analysis of C99 aliasing (we are not C99 yet):

  http://davmac.wordpress.com/2010/02/26/c99-revisited/
2012-10-01 18:59:20 -06:00
Marcin Cieslak 775fb0f0f1 Don't break help with gcc -O2
libDtHelp is unable to read SDL help files
with -ftree-store-ccp optimization which
is enabled by -O2 on gcc 4.2.1.

GifUtils.c and decompress.c didn't work
properly with -ftree-store-ccp enabled.

GifUtils.c was repaired by fixing
those warnings:

GifUtils.c: In function 'create_pixmap':
GifUtils.c:1093: warning: return makes integer from pointer without a cast
GifUtils.c:1110: warning: return makes integer from pointer without a cast
GifUtils.c:1215: warning: return makes integer from pointer without a cast
GifUtils.c: In function 'gif_to_pixmap':
GifUtils.c:1242: warning: return makes integer from pointer without a cast

decompress.c didn't generate warnings, but the
only effect of the -ftree-store-cpp was to introduce
this change:

        addq    $1, %rax
        movq    %rax, (%rbx)
 .L90:
-       cmpl    $157, %edx
+       cmpl    $-99, %edx
        jne     .L86
        movl    8(%rbx), %eax
        subl    $1, %eax

Which corresponds to this source code:

bufioI.h

     57 #define BufFileGet(f)   ((f)->left-- ? *(f)->bufp++ : (*(f)->io) (f))

     42     int     (*io)(/* BufFilePtr f */);

decompress.c
     53 #ifdef NO_UCHAR
     54  typedef char   char_type;
     55 #else
     56  typedef        unsigned char   char_type;
     57 #endif /* UCHAR */
     58
     59 static  char_type magic_header[] = { "\037\235" };      /* 1F 9D */

    131     if ((BufFileGet(f) != (magic_header[0] & 0xFF)) ||
    132         (BufFileGet(f) != (magic_header[1] & 0xFF)))
    133     {
    134         return 0;
    135     }

BufFileGet() returns (int), so the (unsigned char) constants
got promoted to (int) with sign extension; therefore constant
157 decimal (0x9D) became -99 decimal, sign extended
(0xffffff9D), and the comparison was always false.

Tested using:
$ gcc -v
Using built-in specs.
Target: amd64-undermydesk-freebsd
Configured with: FreeBSD/amd64 system compiler
Thread model: posix
gcc version 4.2.1 20070831 patched [FreeBSD]

Running on:
FreeBSD 10.0-CURRENT (r240948M)
built Wed Sep 26 23:33:08 CEST 2012
2012-10-01 18:59:14 -06:00
Marcin Cieslak 48b76f8623 dtcreate: Don't crash when clicking "Find Set..."
dtcreate crashed on 64-bit system when clicking
"Find Set.." button.

Crash happens in libXm:

    new_w=0x805db4300, args=0x7fffffffb430, num_args=0x7fffffffb3dc)
    at Form.c:1955

$1 = {att = {{type = 4 '\004', w = 0x805db3700, percent = 0, offset = 0,
      value = 0, tempValue = 0}, {type = 1 '\001', w = 0x0, percent = 0,
      offset = 10, value = 0, tempValue = 0}, {type = 3 '\003',
      w = 0x805db3700, percent = 0, offset = 0, value = 0, tempValue = 0}, {
      type = 3 '\003', w = 0x800000000, percent = 0, offset = 10, value = 0,
      tempValue = 0}}, next_sibling = 0x0, sorted = 0 '\0',
  resizable = 1 '\001', preferred_width = 0, preferred_height = 0}

(...)

    at icon_selection_dialog.c:1768
1767            /* Creation of icon_scrolled_win */
1768            icon_scrolled_win = XtVaCreateManagedWidget( "icon_scrolled_win",
1769                            xmScrolledWindowWidgetClass,
1770                            icon_selection_dialog,
1771                            XmNscrollingPolicy, XmAUTOMATIC,
1772    /*                      XmNnavigationType, XmTAB_GROUP, */
1773                            XmNx, 282,
1774                            XmNy, 84,
1775                            XmNscrollBarDisplayPolicy, XmAS_NEEDED,
1776                            XmNrightOffset, 10,
1777                            XmNrightAttachment, XmATTACH_FORM,
1778                            XmNtopOffset, 0,
1779                            XmNtopWidget, icon_container_label,
1780                            XmNtopAttachment, XmATTACH_WIDGET,
1781                            XmNleftOffset, 0,
1782                            XmNleftWidget, icon_container_label,
1783                            XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
1784                            XmNbottomOffset, 10,
1785                            XmNbottomWidget, XmATTACH_NONE,
1786                            XmNbottomAttachment, XmATTACH_WIDGET,
1787                            NULL );

What happens here is that ConstraintInitialize receives
four constraints, the last one is this:

    { type = 3 '\003', /* XmATTACH_WIDGET */
      w = 0x800000000, /* malformed XmATTACH_NONE ???
      percent = 0,
      offset = 10, /* specified as XmNbottomOffset */
      value = 0,
      tempValue = 0}

XmATTACH_* values are defined in <Xm/Xm.h> as follows:

   505  enum{   XmATTACH_NONE,                  XmATTACH_FORM,
   506          XmATTACH_OPPOSITE_FORM,         XmATTACH_WIDGET,
   507          XmATTACH_OPPOSITE_WIDGET,       XmATTACH_POSITION,
   508          XmATTACH_SELF
   509          } ;

What is not clear to why XmATTACH_NONE - which should be (int)0 -
becomes 0x800000000 - looks like a 64 bit bug somewhere.

Providing a long value on None (0L) as in this change fixes the
problem.

I understand is that it possible to use such an "empty" widget
is to create additional space at the bottom of the newly created
"icon_scrolled_win".

What needs to be clarified - shouldn't be such an (int) value be
automatically promoted to (long) (or XtArgVal, XtPointer, ...)
and preserve the value 0? Lots of parameters seem to be
passed as ints (for example dimensions) and they do not
appear to cause any trouble.
2012-09-30 11:11:21 -06:00
Marcin Cieslak 27bc7d6bec dtcreate: Add missing prototypes and more (64-bit)
- Fix missing prototypes
- Fix some 64-bit related problems (XtVaGetValues)
- Fix crash on dtcreate startup in create_applicationShell1()
- Add XmeFlushIconFileCache() prototype from <Xm/IconFileP.h>
2012-09-29 20:28:45 -06:00
Marcin Cieslak 3eaeffaf7e XmPrivate.h: Avoid whitespace problems (IMPROVED)
When applying a patch, "git am" strips
trailing whitespace, although they are
present in the git formatted-patch.

This way the committed file will be
slightly different than the file re-generated
by extractprototype.h

It shouldn't hurt, but next run of
extractprototype.h will add trailing spaces
again and the resulting diff on XmPrivate.h
will include more changes than actually
needed.

This may break some viscious circle after
applying the patch, so enabling regeneration
on LinuxArchitecture again.

This patch does not add XmeFlushIconFileCache()
needed by dtcreate.
2012-09-29 20:28:43 -06:00
Marcin Cieslak 7948362829 dtfile: fix crash in RecheckFlag (64bit) 2012-09-28 19:13:29 -06:00
Marcin Cieslak ee82570104 Use typedef XDR from <rpc/xdr.h>
__rpc_xdr is no longer available on FreeBSD 10.
(XDR is typedef'd as "struct XDR" and not "struct __rpc_xdr").

By the way, why did we ever need this? Probably
it should be removed. Leaving for __OpenBSD__ for now.
2012-09-27 17:54:12 -06:00
Marcin Cieslak 5f8b6ba739 dticon: fix typo in the last commit 2012-09-27 17:54:09 -06:00
Marcin Cieslak 481e46a7b2 Update vendor logo for FreeBSD
- Improved font rendering and anti-aliasing
  by hand
- Let dticon recognize .bm file as X bitmap
2012-09-26 19:43:55 -06:00
Marcin Cieslak 0f6300008d dticon: make XVaGetValues() call 64-bit compliant 2012-09-26 19:43:00 -06:00
Marcin Cieslak e1f9b57844 dtstyle: XVaGetValues() calls 2012-09-26 19:42:57 -06:00
Marcin Cieslak e7ad6b776e Dtlogin logo for FreeBSD
Install black and white and 128-color custom logos for FreeBSD.

The FreeBSD logo based on the artwork provided by The FreeBSD Foundation:
  http://www.freebsd.org/logo/logo-basic.png

  The mark FreeBSD is a registered trademark of The FreeBSD Foundation
  is are used by Common Desktop Enviroment (CDE) with
  the permission of The FreeBSD Foundation.

  The FreeBSD Logo is a trademark of The FreeBSD Foundation and is used
  by Common Desktop Environment (CDE) with the permission of
  The FreeBSD Foundation.

Use of logo subject to Trademark Usage Terms and Conditions:
    http://www.freebsdfoundation.org/documents/Guidelines.shtml
2012-09-25 11:35:29 -06:00
Marcin Cieslak c697b943d4 Don't make /var group writable
* Use 0755 permissions for /var (not 0775)
  - this makes sendmail unhappy
* Don't change permissions on /var on dtlogin startup
2012-09-25 11:33:11 -06:00
Marcin Cieslak 663c251125 Install /usr/local/libdata/ldconfig/cde for FreeBSD
I mean really this time. Please.
2012-09-25 11:33:09 -06:00
Marcin Cieslak 0747780cdd FreeBSD: Add /usr/dt/lib to runtime linker - update
On Mon, 24 Sep 2012, Jon Trulson wrote:

> On Tue, 25 Sep 2012, Marcin Cieslak wrote:
>
> Applied.

I'm sorry - it turns out this one does not fully
work as expected.

This one is better (it's relative to the old master)
- so it might cause a conflict:
2012-09-24 19:21:12 -06:00
Marcin Cieslak 77ec7b56b8 2 warnings fixed (64-bit)
Fix XtVaGetValues() output for 64-bit
Fix filename comparison in Dts.c
2012-09-24 18:35:24 -06:00
Marcin Cieslak 91f228411e FreeBSD: Add /usr/dt/lib to runtime linker
Create $LOCALBASE/libdata/ldconfig/cde
which points the runtime linker to /usr/dt/lib

There is no need to invoke ldconfig manually
after this.
2012-09-24 18:34:30 -06:00
Marcin Cieslak a8c2232e48 dtpdm: XtVaGetValues, XtPointer, XtArgVal, ...
Make XtVaGetValues return variables safe for 64-bit
2012-09-24 18:31:25 -06:00
Marcin Cieslak 917f7da191 157 warnings: remove -DXK_MISCELLANY from Makefiles
Fixes the following warning:

In file included from ../../../imports/x11/include/X11/Xutil.h:54,
                 from ../../../imports/x11/include/X11/Intrinsic.h:54,
                 from Action.c:64:
../../../imports/x11/include/X11/keysym.h:49:1: warning: "XK_MISCELLANY" redefined
<command-line>: warning: this is the location of the previous definition

<keysym.h> which includes all key symbols and loads <keysymdef.h>
is automaticlly included by the X Toolkit.

This patch removes #include <keysymdef.h> whenever not needed,
and adds #define XK_MISCALLANY in the source code where required.
2012-09-24 18:30:21 -06:00
Marcin Cieslak c70978e986 dtmail: fix warning: comparison is always false
This warning was caused by a typo:

warning: comparison is always false due to limited range of data type
2012-09-24 18:27:45 -06:00
Marcin Cieslak 22a0f8f497 dtmail: fix warning: NULL used in arithmetic
NULL != NULL makes no sense, really...
2012-09-24 18:27:18 -06:00
Marcin Cieslak e3564643ad dtmail: warning: 'DtMailBoolean' is promoted to (int)
Fix this warning:

RFCTransport.C: In function 'long unsigned int writeToFileDesc(const char*, int,
 __va_list_tag*)':
RFCTransport.C:91: warning: 'DtMailBoolean' is promoted to 'int' when passed thr
ough '...'
RFCTransport.C:91: warning: (so you should pass 'int' not 'DtMailBoolean' to 'va
_arg')
RFCTransport.C:91: note: if this code is reached, the program will abort
2012-09-24 18:26:27 -06:00
Marcin Cieslak 91bfe1e4dc dtmail: Fix XtVaGetValues() return value storage
At least one crash was caused by this
on the 64-bit system
2012-09-24 18:26:11 -06:00
Marcin Cieslak 3a246dfb9b Get rid of unpleasant cast, it causes SIGSEGV
Having a difficult choice between unplasant
cast to get a void * into an enumeration type
and "Something's wrong here" double cast
I decided for the latter.

At least it does not crash when the legal
value of zero is passed as the argument.
2012-09-24 18:25:28 -06:00
Marcin Cieslak 86cb67de90 dtpad: kill one warning 2012-09-23 19:46:21 -06:00
Marcin Cieslak e077181a46 dtpad: Use XtArgVal for int conversion
Avoid overwrite of local variables when using
short (int, etc.) types with XtVaGetValues().

Cast XtPointer using (XtArgVal) without
the need to use C99 <stdint.h> and friends.
2012-09-23 19:45:56 -06:00
Marcin Cieslak d089ff7599 dtpad: Fix 64-bit crash on file open/save
Fix SIGSEGV because of implicit declaration
of _XmStringUngenerate.

The error message reported to the user was:

TT_ERR_PROCID The process id passed is not valid.
2012-09-23 19:45:22 -06:00
Marcin Cieslak d852a8bfa6 BSD: Remove libXX.so symlink before installing
Now we can run "make" in "lib/tt" again
and the symlink will be recreated.
2012-09-23 19:44:36 -06:00
Marcin Cieslak c1b4c13398 dtprintinfo: sym2num needs ksh 2012-09-23 19:43:43 -06:00
Marcin Cieslak df1da3432e dtprintinfo: Use 64-bit values for XtVaGetValues() pointers
XtArgVal should be a type that encompasses XtPointer
and long integer types. In the X.org implementation
it is currently defined as (long).

Don't use (unsigned int *) instead of (Window *).
2012-09-23 19:43:11 -06:00
Marcin Cieslak fc0f1ff697 dtprintinfo: Use CUPS lpq for FreeBSD
Use /usr/local/bin/lpq from CUPS for FreeBSD
for now; this prevents immediate dtprintinfo
crash.

In the future we should handle both built-in
/usr/bin/lpq as well as CUPS /usr/local/bin/lpq
output in separate functions.

Code to support CUPS should probably shared between
other operating systems.
2012-09-23 19:41:32 -06:00
Marcin Cieslak 6ea7855841 Fix logic in dtprintinfo
Fix values for true/false and boolean type
2012-09-23 19:38:43 -06:00
Marcin Cieslak 18a78bbff5 dtfile: fix pointer to integer conversion
Use XtArgVal (usually (long)) to convert
(XtPointer) to (int) and back.

This provides safe way to convert and
avoids compiler warning.
2012-09-23 19:38:40 -06:00
Marcin Cieslak 6b1d497984 dttypes should not crash on 64-bit system
Casting (int) to (char **) will not
prevent crash on a 64-bit system.

A proper ANSI prototype has been added.
2012-09-22 19:04:27 -06:00
Marcin Cieslak 1041e08003 Fix dtfile crash on 64 bit
When asking for data using XtVaGetValue()
make sure that there is enough place for
the return value (which is sometimes XtPointer).
Providing pointer to (int) is not enough.

Cast XtPointer into requested int types
directly, which unfortunately introduces
compilation warning:

cast from pointer to integer of different size
2012-09-22 19:04:21 -06:00
Marcin Cieslak 1079b56422 dtfile: Add missing prototypes
Add missing prototypes and header files to the dtfile
code in order to move closer towards 64-bit compatibility.

Extract the following functions from Motif internal headers:

_XmGetWidgetExtData
_XmRecordEvent
_XmStringUngenerate
_XmTextFieldSetDestination
_XmGetActiveTopLevelMenu

Extract manually prototypes of the obsolete Motif interface:
_XmHighlightBorder
_XmUnhighlightBorder

Remove XmPrivate.h if extractprototype.awk fails

Make the following header files available via -I:
	codelibs/boolean.h
	codelibs/pathutils.h
	codelibs/shellutils.h
and remove shellutils.h from dtwm directory.
2012-09-18 09:59:11 -06:00
Marcin Cieslak 464bc5b3f6 Improve MANPATH control
* Revert changes to programs/dtsearchpath/libCliSrv/UnixEnv.C
  introduced by c3cb5b8aa6
  that could have produced disappearing Application Manager
  icons on FreeBSD
* Introduce SearchPath:useSystemPath() virtual method to tell
  dtsearchpath to leave some environment variables alone.

  It is currently overriden for FreeBSD only if the MANPATH
  is empty (system default). Other operating systems
  might want to override it if they prefer to have distribution
  specific control of a search path in effect.

* Symlink /usr/dt/share/man to /usr/dt/man for FreeBSD
  This allows dtsearchpath to actually include /usr/dt/man
  in the MANPATH when MANPATH override is in effect.
2012-09-17 18:23:14 -06:00
Marcin Cieslak 071da0d223 BSD: Add /usr/local/bin to the default PATH on login 2012-09-10 12:08:36 -06:00
Marcin Cieslak c3cb5b8aa6 FreeBSD: Don't set MANPATH, use OS configuration
- make installer to set up man(1) paths using /usr/local/etc/man.d/*
- don't override empty/unset MANPATH with compiled in default
2012-09-10 12:08:34 -06:00
Marcin Cieslak bd70163b09 FreeBSD: Fix dtlogin failsafe session
We need to have /usr/local as the proper
X11 prefix to start mwm and xterm
2012-09-07 17:32:52 -06:00
Marcin Cieslak 421b5061a6 Allow building on FreeBSD
- build shared libraries with major number only (libtt.so.2)
- don't build dtlogin and dtinfo

FreeBSD support for the installer:
- work around awk issue
- create post_install FreeBSD scripts
- install only cmsd on /etc/inetd.conf
  skip dtspc and ttdbserver for now

Note to users: please check
if you are affected by awk bug
in udbParseLib.awk if you can.
2012-09-06 11:17:43 -06:00
Marcin Cieslak ceb49b9130 DtWidget: Improve portability of Motif interface
- Add missing includes and prototypes
- Improve type compatibility
- Use <Xm/XmPrivate.h> for unofficial libXm headers

With this patch, dtpad no longer crashes on startup
on FreeBSD/amd64 because of a truncated 64-bit pointer.
2012-08-30 19:43:56 -06:00
Marcin Cieslak 6e37640f11 Fix warnings in dtwm
- Improve pointer/int compatibility
- Include unpublished Dt headers in Dt
- Use <Xm/XmPrivate.h> for unpublished Motif functions

There are still warnings left generated because
ElementValue.parsed_value should really be a union.

There are also some warnings left because of XtPointer
casting and some unused variables and functions.
2012-08-30 19:43:47 -06:00
Marcin Cieslak 8a57173ec2 Introduce <Xm/XmPrivate.h>
We need ANSI C prototypes of certain Motif
functions that are not published in the official
header files.

<Xm/XmPrivate.h> header file contains
the prototypes extracted from the Motif source.

To re-create <Xm/XmPrivate.h>:

1) Make sure you have sources of libXm
(lib/Xm directory of the Motif distribution)
accessible via imports/motif/lib/Xm

2) rm include/Xm/XmPrivate.h

3) make includes
2012-08-30 19:43:11 -06:00
Marcin Cieslak ee7caf532b Define AMD64Architecture for FreeBSD 2012-08-30 14:30:49 -06:00
Marcin Cieslak 3ef58433e6 Rudimentary LSBBitOrder for FreeBSD 2012-08-30 14:05:22 -06:00
Marcin Cieslak 64d4207135 Add pax files generated by dtksh to .gitignore
It seems that after changing -O2 to -O for FreeBSD
pax started to build successfully. Interesting.
2012-08-26 19:52:05 -06:00
Marcin Cieslak e9a031ac7a FreeBSD: Use -O instead of -O2 2012-08-23 20:01:25 -06:00
Marcin Cieslak 17a33f0430 Use KORNSHELL variable instead of /bin/ksh
This patch removes instances of hardcoded
invocation of /bin/ksh and allows to
replace it with, for, example,
/usr/local/bin/ksh93

Also "ksh93" is accepted whenever "ksh" is.

Tested using the following /bin/ksh:

----8<----
WHAT=`ps -o command= -p $PPID`
msg="Something tried to call /bin/ksh: $PPID: $WHAT"
print -u2 "$msg"
logger user.warn "$msg"
exit 99
----8<----
(Warning: first two lines are FreeBSD specific)

Scripts from Makefiles should now be executed either
with

$(KORNSHELL) korn-shell-script

or

$(SHELL) bourne-shell-script

therefore #!/bin/ksh has not been changed everywhere.

/usr/dt/bin/ scripts have been converted (e.g. Xsession)

Whenever possible Imake and CPP facilities have been used.

For C and C++ programs KORNSHELL needs to be defined to
"/path/to/your/ksh" (with quotes) so that it can make
a valid C constant.

Therefore, when adding KORNSHELL to Imakefile for C files,
you have to add

CXXEXTRA_DEFINES = -DKORNSHELL=\"$(KORNSHELL)\"

or similar (for example, see programs/dtprintinfo)

But for simple shell script substitution we usually change

 LOCAL_CPP_DEFINES = -DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP) \
                     -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \
                     -DCDE_LOGFILES_TOP=$(CDE_LOGFILES_TOP)

to:

 LOCAL_CPP_DEFINES = -DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP) \
                     -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \
                     -DCDE_LOGFILES_TOP=$(CDE_LOGFILES_TOP) \
                     -DKORNSHELL=$(KORNSHELL) \
                     -DXPROJECTROOT=X11ProjectRoot

since we don't want quotes for shell scripts.
2012-08-23 20:00:43 -06:00
Marcin Cieslak 98b17d3551 64bit: Fix crash in dtexec
No ANSI prototype for malloc() caused
the returned pointer to be truncated
to 32 bits.
2012-08-23 19:56:43 -06:00
Marcin Cieslak d31fc60fbf FreeBSD: scan /usr/local/lib/X11/fonts/ for fontpath 2012-08-23 19:56:34 -06:00
Marcin Cieslak c3cd844df6 Use FreeBSD-specific invocation of /bin/ps 2012-08-23 19:56:31 -06:00
Marcin Cieslak 724671a2ad examples/tt now runs on FreeBSD 2012-08-22 21:04:30 -06:00
Marcin Cieslak 240c89cf6b Add mkcatdefs and book.* to .gitignore 2012-08-19 18:20:29 -06:00
Marcin Cieslak 3e2f89956f Build missing Xm.cat Mrm.cat Uil.cat for LANG=C
We need to use mkcatdefs to build those.

mkcatdefs needs to be built from the open motif
source tree (localized/util/mkcatdefs.c)
and installed as:

cde/imports/motif/localized/util/mkcatdefs
2012-08-17 19:50:44 -06:00
Marcin Cieslak 0fccc33b17 Provide basic font aliases for FreeBSD
The following font families
(or their aliases) will be used:

-adobe-courier-bold-o-normal--*-
-adobe-courier-bold-r-normal--*-
-adobe-courier-medium-o-normal--*-
-adobe-courier-medium-r-normal--*-
-adobe-helvetica-bold-o-normal--*-
-adobe-helvetica-bold-r-normal--*-
-adobe-helvetica-medium-o-normal--*-
-adobe-helvetica-medium-r-normal--*-
-adobe-symbol-medium-r-normal--*-
-adobe-times-bold-i-normal--*-
-adobe-times-bold-r-normal--*-
-adobe-times-medium-i-normal--*-
-adobe-times-medium-r-normal--*-
-b&h-lucidasans-medium-r-normal-sans-*-
-b&h-lucidatypewriter-bold-r-normal-sans-*-
-b&h-lucidatypewriter-medium-r-normal-sans-*-

The files will be installed in

/usr/dt/config/xfonts/C

This directory should be added to the
X server font path:

   xset fp+ /usr/dt/config/xfonts/C

and/or via

   FontPath         "/usr/dt/config/xfonts/C"

in the "Files" section of the xorg.conf file.
2012-08-16 16:15:52 -06:00
Marcin Cieslak d8db13985c Fix compiler warnings in dtsession 2012-08-16 16:15:49 -06:00
Marcin Cieslak ce4004f86b Modern BSDs don't need union wait
We have

pid_t
wait3(int *status, int options, struct rusage *rusage);

on FreeBSD and we don't need (union wait) handling.

Another good candidate for one #ifdef from imake templates.
We have already OPT_BSD_WAIT in ToolTalk's tt_options.h
2012-08-15 15:58:48 -06:00
Marcin Cieslak a35975a334 FreeBSD does not need extern char *sys_errlist[]
Add preprocessor directives not to try
to redefine sys_errlist[] or sys_nerr

There are already definitions:

 extern __const char *__const sys_errlist[];
 extern __const int sys_nerr;

in <stdio.h>

Actually we should have something like
NeedSysErrlist in imake definitions
to get rid of those #ifdefs.
2012-08-15 15:58:46 -06:00
Marcin Cieslak 71ddf025fa FreeBSD updates for dtspcd, dtfile and others
* Add libraries where necesary
* Point to Freetype2 includes for dtfile
* Define default manpath
2012-08-15 12:41:31 -06:00
Marcin Cieslak e8ff159737 const char maze: unbreak ToolTalk build
Follow up to de82eebdd5
2012-08-14 20:37:23 -06:00
Marcin Cieslak 65218337ef Use $(KORNSHELL) for dtksh as well
This commit updates master at de82eebdd5
to include bits from

   Message-Id: <1344951117-33716-3-git-send-email-saper@saper.info>
   http://thread.gmane.org/gmane.comp.desktop.cde.devel/283/focus=301

not included in the

   Message-Id: <1344951117-33716-1-git-send-email-saper@saper.info>
   http://thread.gmane.org/gmane.comp.desktop.cde.devel/283/focus=299

that was commited as d3206f4514

Also remove two generated files from the repository:
	programs/dtksh/ksh93/man/man1/sh.1
	programs/dtksh/ksh93/man/man3/nval.3

Conflicts:

	cde/programs/dtksh/ksh93/Imakefile
2012-08-14 20:37:07 -06:00
Marcin Cieslak 2562c2cbeb Deal with *.tmp.msg after mkcatdefs failure
BSD make interrupts shell pipeline after
if it cannot run the command:

rm -f Mrm.msg
ln -s ../../../../imports/motif/localized/de_DE.ISO8859-1/msg/Mrm.msg Mrm.msg
Running mkcatdefs for Mrm.cat with LANG set to de_DE.ISO8859-1
(  rm -f Mrm.cat Mrm.tmp.msg;  LANG=de_DE.ISO8859-1;  export LANG;  ../../../../imports/motif/localized/util/mkcatdefs Mrm Mrm.msg -h > Mrm.tmp.msg;  gencat  Mrm.cat Mrm.tmp.msg;  rm -f Mrm.tmp.msg  )
../../../../imports/motif/localized/util/mkcatdefs: not found
*** Error code 127

After this, an empty Mrm.tmp.msg is left.
2012-08-14 20:37:03 -06:00
Marcin Cieslak d6b6353f95 Use $(SHELL) and $(KORNSHELL) for shell scripts
Introduce KORNSHELL make variable to point
to the implementation of the Korn Shell.

Use $(SHELL) or $(KORNSHELL) explicitly for
make programs that do not automatically call
shell scripts from the current directory.
2012-08-14 12:34:41 -06:00
Marcin Cieslak d3206f4514 Compile dtksh on FreeBSD
dtksh can be now compiled on FreeBSD. Work in progress.

Needs a real Korn shell to bootstrap as $(KSHELL).
KSHELL is set by default to /usr/local/bin/ksh93
(generic POSIX shell may not work)

Tested on:

  FreeBSD 9.0-BETA1 #0 r224912M amd64

Known issues:

xvmstat:
* sleep does not work well (SIGSTOP is delivered)
xpong:
* xpong: line 220:  ball1x = max_x * 2.2 / 3 : arithmetic syntax error
* dtksh is rebuilt uncondtionally every time make is invoked
2012-08-14 12:18:38 -06:00
Marcin Cieslak 31aaa48344 FreeBSD port: dtsearch, dtterm, dtwidget, dthelp
FreeBSD portability of dtsearch, dtterm, dtwidget, dthelp

Work in progress for dtlogin and dtmail
2012-08-13 19:53:10 -06:00
Marcin Cieslak 50e6c86bf4 lib/csa: Use ANSI C prototypes
Improve type compatibility and enable
ANSI C prototypes.
2012-08-13 19:24:23 -06:00
Marcin Cieslak aa12f819dd Cast registerrpc args to xdrproc_t explicitly
Fixes:
agent.c: In function '_DtCm_init_agent':
agent.c:160: warning: passing argument 5 of 'registerrpc' from incompatible pointer type
agent.c:160: warning: passing argument 6 of 'registerrpc' from incompatible pointer type
agent.c:167: warning: passing argument 5 of 'registerrpc' from incompatible pointer type
agent.c:167: warning: passing argument 6 of 'registerrpc' from incompatible pointer type
2012-08-13 19:23:37 -06:00
Marcin Cieslak 706fccb50e NULL is a pointer, not string terminator
Replace some instances of NULL to '\0', when
referring to string terminator.
2012-08-13 19:23:34 -06:00
Marcin Cieslak bf8c5e674f Compile ToolTalk on FreeBSD
Fix const correctness problems with OPT_CONST_CORRECT:

tt_xdr_utils.C: In constructor '_Tt_xdr_size_stream::_Tt_xdr_size_stream()':
tt_xdr_utils.C:150: error: invalid conversion from 'bool_t (*)(__rpc_xdr*, long int*)' to 'bool_t (*)(__rpc_xdr*, const long int*)'
tt_xdr_utils.C:151: error: invalid conversion from 'bool_t (*)(__rpc_xdr*, char*, unsigned int)' to 'bool_t (*)(__rpc_xdr*, const char*, u_int)'
tt_xdr_utils.C:159: error: invalid conversion from 'bool_t (*)(__rpc_xdr*, char*, unsigned int)' to 'bool_t (*)(__rpc_xdr*, const char*, u_int)'

tt_entry_pt.C: In function '_Tt_string _tt_entrypt_to_string(_Tt_entry_pt)':
tt_entry_pt.C:455: error: conversion from 'long int' to '_Tt_string' is ambiguous
../../lib/util/tt_string.h:104: note: candidates are: _Tt_string::_Tt_string(int)
../../lib/util/tt_string.h:102: note:                 _Tt_string::_Tt_string(const char*)
2012-08-12 20:57:49 -06:00
Marcin Cieslak 8e80886661 Skip building m-guides and dtksh for FreeBSD 2012-08-12 20:57:48 -06:00
Marcin Cieslak e1aa4d28cb Improve creation of shared libraries for FreeBSD 2012-08-12 20:57:48 -06:00
Marcin Cieslak 851330b5f5 Adjust cpp location for FreeBSD
cpp was removed from /usr/libexec with FreeBSD 5.0-RELEASE.
Use __FreeBSD_version to tell imake if it's still there.

While here, X.Y.Z versioning ended with FreeBSD 3.0, so
we must be dealing with 2.Y.Z when checking for -lgnumalloc.
2012-08-12 20:57:48 -06:00