Motif(r) is the industry standard graphical user interface, (as defined by
the IEEE 1295 specification), used on more than 200 hardware and software
platforms. It provides application developers, end users, and system
vendors with the industry's most widely used environment for standardizing
application presentation on a wide range of platforms. Motif is the
leading user interface toolkit for the UNIX(r) system.
NOTE: Some ports with GNU configure do not know that Motif 2.1 requires -lXp.
In that case, you need to edit Makefile after configure, or, hack
configure(.in) before configure.
===> The following configuration options are available for open-motif-devel-2023.02.16_7:
DOCS=on: Build and/or install documentation
===> Use 'make config' to modify these settings
Revert "x11-toolkits/open-motif*: EditRes functionality is unreliable on 64 bit"
A patch to x11-toolkits/libXmu, still in review, is required to,
a) build this patch,
b) work.
This reverts commit feec232fadd3d30c62282b6dd218536b7322e761.
x11-toolkits/open-motif*: EditRes functionality is unreliable on 64 bit
Like x11-toolkits/libXmu, the same problem exists in Motif and
editres(1) will not pop up the resource box,
displaying, "this widget no longer exists in the client."
Additional discussion and patch posted near the end of the
discussion at,
https://gitlab.freedesktop.org/xorg/lib/libxmu/-/issues/1
MFH: 2023Q4
x11-toolkits/open-motif*: Disable XmPIXMAP mode for drag-and-drop
In XmPIXMAP mode, Motif will draw to the root window with
IncludeInferious without being under a GrabServer.
This results in a variety of graphical glitches. For example, when a
compositing window manager updates the screen it will erase the drag
icon. This continues until the icon leaves the origin window, when Motif
does a GrabServer. The GrabServer avoids the graphical glitches, but it
also freezes the rest of the desktop (which is impolite).
Given that all current X servers support SHAPE, and given that most
users are running a compositing window manager, XmDRAG_WINDOW is always
a better choice. Therefore, disable XmPIXMAP entirely.
Obtained from: https://sourceforge.net/p/motif/code/merge-requests/1/
x11-toolkits/open-motif*: revise AM_FUNC_VOID_SPRINTF
The check for whether sprintf() returns void would fail to detect
sprintf() returning int under recent Clang.
Presumably the check meant to see if an error like
"passing 'void' to parameter of incompatible type 'int'"
is generated, but Clang would always generate other errors
having to do with calling sprintf() with too few arguments
and attempting to redeclare sprintf() when it is a builtin macro.
And even if the test program compiles, such as with GCC,
it crashes during the sprintf(".") call.
Revise the test program to not redeclare sprintf(), to call sprintf()
with valid arguments, and to not implicitly declare exit() due to
stdlib.h not being included (which Apple Xcode Clang 12 and later
consider an error rather than a warning).
If sprintf() returns void, then a compiler error similar to
"initializing 'int' with an expression of incompatible type 'void'"
or "void value not ignored as it ought to be" should be generated.
Otherwise if sprintf() returns int, then the test program should
compile and exit with code 0, and the check should properly report
that sprintf() does not return void.
Obtained from: https://sourceforge.net/p/motif/code/merge-requests/3/
x11-toolkits/open-motif*: Don't share cached Xft renditions across display
connections
Xft rendition caching added with the fix #1414 won't check whether the
matching rendition was allocated trough a different display connection.
This causes a forked process that creates Motif widgets on a separate
display connection to fail with RenderBadGlyphSet X error as soon as
the parent process closes its display, thus invalidating the associated
Xft font resource.
Obtained from: https://sourceforge.net/p/motif/code/merge-requests/4/
x11-toolkits/open-motif*: MenuShell: computing position uses RC_Type() expecting
RowColumn
To compute the position of a menu to display, in some cases the
position is computed invoking RC_Type() that expects a RowColumn
widget. One case was not verifying this hence leading to coredump.
Obtained from: https://sourceforge.net/p/motif/code/merge-requests/5/
x11-toolkits/open-motif*: Depend on x11-toolkits/libXmu
Motif already indirectly depends on x11-toolkits/libXmu. Document this
fact as it is needed for Editres support.
MFH: 2023Q4
x11-toolkits/open-motif*: fix build with clang 16
Clang 16 has a new error about incompatible function types, which shows
up when building x11-toolkits/open-motif:
WmError.c:134:24: error: incompatible function pointer types passing 'void
(char *)' to parameter of type 'void (*)(String) __attribute__((noreturn))' (aka
'void (*)(char *) __attribute__((noreturn))')
[-Wincompatible-function-pointer-types]
XtSetErrorHandler (WmXtErrorHandler);
^~~~~~~~~~~~~~~~
/usr/local/include/X11/Intrinsic.h:1776:1: note: passing argument to parameter
here
);
^
In this case the declaration of the callback function for
XtSetErrorHandler() shoud have a noreturn attribute, specifically using
the _X_NORETURN macro.
PR: 271425
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
x11-toolkits/open-motif*: Introduce open-motif-devel
Copy x11-toolkits/open-motif to x11-toolkits/open-motif-devel in order to
track development. Then update open-motif-devel to the latest motif-code
commit proxied through my GH account.
Register the conflict with x11-toolkits/open-motif.
Motif (formerly Open Motif) is developed by ics.com. The repository is
on Sourceforge. I proxy it through my github account to employ the GH
plumbing in ports.
The previous Makefile revision contained a partial upgrade to a newer
version of open-motif, but the distfile has apparently moved and is
no longer fetchable. Revert to the old version.
Pointy hat to: motminh