git: d32c335a148f - main - x11-toolkits/libXaw3d: Replace with the freedesktop.org version

From: Cy Schubert <cy_at_FreeBSD.org>
Date: Mon, 24 Mar 2025 14:54:31 UTC
The branch main has been updated by cy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d32c335a148f02de30acd38e964fb037074bcd61

commit d32c335a148f02de30acd38e964fb037074bcd61
Author:     Cy Schubert <cy@FreeBSD.org>
AuthorDate: 2025-03-19 15:47:02 +0000
Commit:     Cy Schubert <cy@FreeBSD.org>
CommitDate: 2025-03-24 14:54:05 +0000

    x11-toolkits/libXaw3d: Replace with the freedesktop.org version
    
    Replace the unmaintained Slackware Xaw3d with the maintained
    freedesktop.org libXaw3d.
    
    Assume maintainership.
    
    PR:             285528
    Exp-run by:     antoine
---
 x11-toolkits/libXaw3d/Makefile                     |  33 +-
 x11-toolkits/libXaw3d/distinfo                     |   6 +-
 x11-toolkits/libXaw3d/files/patch-Box.c            |  24 -
 .../libXaw3d/files/patch-runtime_scrollbars        | 824 ---------------------
 x11-toolkits/libXaw3d/pkg-descr                    |  19 +-
 x11-toolkits/libXaw3d/pkg-plist                    |  12 +-
 6 files changed, 34 insertions(+), 884 deletions(-)

diff --git a/x11-toolkits/libXaw3d/Makefile b/x11-toolkits/libXaw3d/Makefile
index 73bf890a75bc..042fe2e1d4a1 100644
--- a/x11-toolkits/libXaw3d/Makefile
+++ b/x11-toolkits/libXaw3d/Makefile
@@ -1,36 +1,21 @@
 PORTNAME=	libXaw3d
-PORTVERSION=	1.5E
-PORTREVISION=	8
+PORTVERSION=	1.6.6
 CATEGORIES=	x11-toolkits
-MASTER_SITES=	http://slackware.cs.utah.edu/pub/slackware/slackware64-13.1/source/x/xaw3d/
-DISTNAME=	Xaw3d-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
-DOCSDIR=	${PREFIX}/share/doc/Xaw3d
 
-MAINTAINER=	cy@FreeBSD.org
-COMMENT=	3-D Athena Widget set that looks like Motif
+MAINTAINER=	x11@FreeBSD.org
+COMMENT=	Xaw3d is the X 3D Athena Widget Set
+WWW=		https://www.freedesktop.org/wiki/Software/xlibs/
 
 LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/COPYING
 
-WRKSRC=		${WRKDIR}/xc/lib/Xaw3d
-USES=		gettext imake xorg
-USE_XORG=	x11 xext xmu xt sm ice xpm
-USE_LDCONFIG=	yes
+USES=		gmake tar:xz xorg xorg-cat:lib
+USE_XORG=	x11 xau xext xmu xpm xorgproto xt
+
+CONFIGURE_ARGS=	--without-xmlto
 
 SUB_FILES=	pkg-message
 XAWVER=		8
 SUB_LIST=	XAWVER="${XAWVER}"
 
-OPTIONS_DEFINE=	DOCS
-
-post-extract:
-	@${MKDIR} ${WRKSRC}/X11/Xaw3d
-	@cd ${WRKSRC}/X11/Xaw3d; ${LN} -sf ../../*.h .
-
-post-install:
-	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libXaw3d.so
-
-post-install-DOCS-on:
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-	${INSTALL_DATA} ${WRKSRC}/README.XAW3D ${STAGEDIR}${DOCSDIR}/
-
 .include <bsd.port.mk>
diff --git a/x11-toolkits/libXaw3d/distinfo b/x11-toolkits/libXaw3d/distinfo
index 2d8dfef5406c..e9e1089ee540 100644
--- a/x11-toolkits/libXaw3d/distinfo
+++ b/x11-toolkits/libXaw3d/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1742827849
-SHA256 (Xaw3d-1.5E.tar.gz) = 433ad7057d745f6313b5be91b65b983881a27a11711e3332fcaa56bf3befe32b
-SIZE (Xaw3d-1.5E.tar.gz) = 309264
+TIMESTAMP = 1742393918
+SHA256 (xorg/lib/libXaw3d-1.6.6.tar.xz) = a41c3e37135ad616b1f28bbde70002afbf3cb59a30df34141f829d32eadc8646
+SIZE (xorg/lib/libXaw3d-1.6.6.tar.xz) = 482040
diff --git a/x11-toolkits/libXaw3d/files/patch-Box.c b/x11-toolkits/libXaw3d/files/patch-Box.c
deleted file mode 100644
index 53cfe5b80905..000000000000
--- a/x11-toolkits/libXaw3d/files/patch-Box.c
+++ /dev/null
@@ -1,24 +0,0 @@
-*** Box.c~	1996-10-15 10:41:18.000000000 -0400
---- Box.c	2007-04-21 14:12:44.000000000 -0400
-***************
-*** 353,360 ****
-  	else {
-  	    width = preferred_width;
-  	    do { /* find some width big enough to stay within this height */
-! 		width *= 2;
-! 		if (width > constraint->width) width = constraint->width;
-  		DoLayout(w, width, 0, &preferred_width, &preferred_height, FALSE);
-  	    } while (preferred_height > constraint->height &&
-  		     width < constraint->width);
---- 353,363 ----
-  	else {
-  	    width = preferred_width;
-  	    do { /* find some width big enough to stay within this height */
-! 		if (width > constraint->width/2) /* avoid short int overflow */
-! 		    width = constraint->width;
-! 		else
-! 		    width *= 2;
-! 
-  		DoLayout(w, width, 0, &preferred_width, &preferred_height, FALSE);
-  	    } while (preferred_height > constraint->height &&
-  		     width < constraint->width);
diff --git a/x11-toolkits/libXaw3d/files/patch-runtime_scrollbars b/x11-toolkits/libXaw3d/files/patch-runtime_scrollbars
deleted file mode 100644
index 877cb0ff8020..000000000000
--- a/x11-toolkits/libXaw3d/files/patch-runtime_scrollbars
+++ /dev/null
@@ -1,824 +0,0 @@
-Index: ChangeLog
-===================================================================
-RCS file: ChangeLog
-diff -N ChangeLog
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ ChangeLog	4 Apr 2005 13:41:08 -0000	1.1
-@@ -0,0 +1,5 @@
-+2005-04-04  Stefan Monnier  <monnier@iro.umontreal.ca>
-+
-+	* Scrollbar.c (FractionLoc): Don't constrain to 0.0 ... 1.0.
-+	(MoveThumb): Rewrite the "picked" handling.
-+
-Index: Imakefile
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/Imakefile,v
-retrieving revision 1.1.1.9
-retrieving revision 1.2
-diff -u -r1.1.1.9 -r1.2
---- Imakefile	25 Mar 2005 18:12:03 -0000	1.1.1.9
-+++ Imakefile	27 Mar 2005 13:53:38 -0000	1.2
-@@ -8,8 +8,6 @@
- #undef MULTIPLANE_PIXMAPS
- XCOMM For grayed stipple shadows, define GRAY_BLKWHT_STIPPLES:
- #define GRAY_BLKWHT_STIPPLES
--XCOMM For scrollbars with arrows, define ARROW_SCROLLBARS:
--#undef ARROW_SCROLLBARS
- 
- #define DoNormalLib NormalLibXaw
- #define DoSharedLib SharedLibXaw
-@@ -22,7 +20,7 @@
- #define IncSubSubdir Xaw3d
- 
- XCOMM When building outside an X11 source tree:
--XCOMM EXTRA_INCLUDES = -I.
-+EXTRA_INCLUDES = -I.
- 
- #ifdef SharedXawReqs
- REQUIREDLIBS = SharedXawReqs
-@@ -119,13 +117,6 @@
- XAW_GRAY_BLKWHT_STIPPLES = \
- 	-e 's/\/\* gray stipples \*\//\#undef XAW_GRAY_BLKWHT_STIPPLES/'
- #endif
--#ifdef ARROW_SCROLLBARS
--XAW_ARROW_SCROLLBARS = \
--	-e 's/\/\* arrow scrollbars \*\//\#define XAW_ARROW_SCROLLBARS/'
--#else
--XAW_ARROW_SCROLLBARS = \
--	-e 's/\/\* arrow scrollbars \*\//\#undef XAW_ARROW_SCROLLBARS/'
--#endif
- 
- depend:: laygram.c laygram.h laylex.c Xaw3dP.h
- 
-@@ -148,8 +139,7 @@
- 
- Xaw3dP.h: Xaw3dP.h.sed
- 	sed $(XAW_INTERNATIONALIZATION) $(XAW_MULTIPLANE_PIXMAPS) \
--	$(XAW_GRAY_BLKWHT_STIPPLES) $(XAW_ARROW_SCROLLBARS) \
--	Xaw3dP.h.sed > Xaw3dP.h
-+	$(XAW_GRAY_BLKWHT_STIPPLES) Xaw3dP.h.sed > Xaw3dP.h
- 
- $(OBJS): Xaw3dP.h
- 
-Index: README.XAW3D
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/README.XAW3D,v
-retrieving revision 1.1.1.4
-retrieving revision 1.2
-diff -u -r1.1.1.4 -r1.2
---- README.XAW3D	25 Mar 2005 18:12:04 -0000	1.1.1.4
-+++ README.XAW3D	27 Mar 2005 13:53:38 -0000	1.2
-@@ -48,7 +48,6 @@
-        #define XAW_INTERNATIONALIZATION
-        #define XAW_MULTIPLANE_PIXMAPS
-        #define XAW_GRAY_BLKWHT_STIPPLES
--       #undef XAW_ARROW_SCROLLBARS
- 
-    Xaw3dP.h need not be included by the application source, as the public
-    headers that reference any 3D features include this header. The
-@@ -133,16 +132,6 @@
-    beNiceToColormap resource is True and 3) the display allows it. This
-    option was disabled in previous Xaw3d releases.
- 
--   The default Xaw3d does not use arrow scrollbars. At the top of this
--   distribution's Imakefile are the lines:
--
--       XCOMM For scrollbars with arrows, define ARROW_SCROLLBARS:
--       #undef ARROW_SCROLLBARS
--
--   If you want arrow-style scrollbars, change the "#undef" to "#define".
--   Note that the Scrollbar widget's translations and actions will change
--   accordingly.
--
-    Building Xaw3d within an X11 source tree:
-    -----------------------------------------
- 
-Index: Scrollbar.c
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/Scrollbar.c,v
-retrieving revision 1.1.1.6
-retrieving revision 1.4
-diff -u -r1.1.1.6 -r1.4
---- Scrollbar.c	25 Mar 2005 18:12:04 -0000	1.1.1.6
-+++ Scrollbar.c	4 Apr 2005 16:06:04 -0000	1.4
-@@ -53,6 +53,11 @@
- 
- ******************************************************************/
- 
-+/* TODO:
-+   - avoid adhoc tests for `->arrows'.
-+   - add support for scroll wheels.
-+ */
-+
- /* ScrollBar.c */
- /* created by weissman, Mon Jul  7 13:20:03 1986 */
- /* converted by swick, Thu Aug 27 1987 */
-@@ -69,38 +74,48 @@
- 
- /* Private definitions. */
- 
--#ifdef XAW_ARROW_SCROLLBARS
--static char defaultTranslations[] =
--    "<Btn1Down>:   NotifyScroll()\n\
--     <Btn2Down>:   MoveThumb() NotifyThumb() \n\
--     <Btn3Down>:   NotifyScroll()\n\
--     <Btn1Motion>: HandleThumb() \n\
--     <Btn3Motion>: HandleThumb() \n\
--     <Btn2Motion>: MoveThumb() NotifyThumb() \n\
--     <BtnUp>:      EndScroll()";
--#else
- static char defaultTranslations[] =
-+#ifdef XAW_SCROLL_WHEEL
-+    "<Btn4Down>:   StartScroll(Wheel, Backward) \n\
-+     <Btn5Down>:   StartScroll(Wheel, Forward) \n"
-+#endif
-     "<Btn1Down>:   StartScroll(Forward) \n\
-      <Btn2Down>:   StartScroll(Continuous) MoveThumb() NotifyThumb() \n\
-      <Btn3Down>:   StartScroll(Backward) \n\
-+     <Btn1Motion>: HandleThumb() \n\
-+     <Btn3Motion>: HandleThumb() \n\
-      <Btn2Motion>: MoveThumb() NotifyThumb() \n\
-      <BtnUp>:      NotifyScroll(Proportional) EndScroll()";
--#ifdef bogusScrollKeys
--    /* examples */
--    "<KeyPress>f:  StartScroll(Forward) NotifyScroll(FullLength) EndScroll()"
--    "<KeyPress>b:  StartScroll(Backward) NotifyScroll(FullLength) EndScroll()"
--#endif
--#endif
-+/* #ifdef XAW_ARROW_SCROLLBARS
-+ *     "<Btn1Down>:   NotifyScroll()\n\
-+ *      <Btn2Down>:   MoveThumb() NotifyThumb() \n\
-+ *      <Btn3Down>:   NotifyScroll()\n\
-+ *      <Btn1Motion>: HandleThumb() \n\
-+ *      <Btn3Motion>: HandleThumb() \n\
-+ *      <Btn2Motion>: MoveThumb() NotifyThumb() \n\
-+ *      <BtnUp>:      EndScroll()";
-+ * #else
-+ *     "<Btn1Down>:   StartScroll(Forward) \n\
-+ *      <Btn2Down>:   StartScroll(Continuous) MoveThumb() NotifyThumb() \n\
-+ *      <Btn3Down>:   StartScroll(Backward) \n\
-+ *      <Btn2Motion>: MoveThumb() NotifyThumb() \n\
-+ *      <BtnUp>:      NotifyScroll(Proportional) EndScroll()";
-+ * #ifdef bogusScrollKeys
-+ *     /\* examples *\/
-+ *     "<KeyPress>f:  StartScroll(Forward) NotifyScroll(FullLength) EndScroll()"
-+ *     "<KeyPress>b:  StartScroll(Backward) NotifyScroll(FullLength) EndScroll()"
-+ * #endif
-+ * #endif */
- 
- static float floatZero = 0.0;
- 
- #define Offset(field) XtOffsetOf(ScrollbarRec, field)
- 
- static XtResource resources[] = {
--#ifdef XAW_ARROW_SCROLLBARS
- /*  {XtNscrollCursor, XtCCursor, XtRCursor, sizeof(Cursor),
-        Offset(scrollbar.cursor), XtRString, "crosshair"},*/
--#else
-+  {XtNarrowScrollbars, XtCArrowScrollbars, XtRBoolean, sizeof(Boolean),
-+       Offset(scrollbar.arrows), XtRBoolean, (XtPointer) False},
-   {XtNscrollVCursor, XtCCursor, XtRCursor, sizeof(Cursor),
-        Offset(scrollbar.verCursor), XtRString, "sb_v_double_arrow"},
-   {XtNscrollHCursor, XtCCursor, XtRCursor, sizeof(Cursor),
-@@ -113,7 +128,6 @@
-        Offset(scrollbar.leftCursor), XtRString, "sb_left_arrow"},
-   {XtNscrollRCursor, XtCCursor, XtRCursor, sizeof(Cursor),
-        Offset(scrollbar.rightCursor), XtRString, "sb_right_arrow"},
--#endif
-   {XtNlength, XtCLength, XtRDimension, sizeof(Dimension),
-        Offset(scrollbar.length), XtRImmediate, (XtPointer) 1},
-   {XtNthickness, XtCThickness, XtRDimension, sizeof(Dimension),
-@@ -149,22 +163,16 @@
- static void Redisplay();
- static Boolean SetValues();
- 
--#ifdef XAW_ARROW_SCROLLBARS
- static void HandleThumb();
--#else
- static void StartScroll();
--#endif
- static void MoveThumb();
- static void NotifyThumb();
- static void NotifyScroll();
- static void EndScroll();
- 
- static XtActionsRec actions[] = {
--#ifdef XAW_ARROW_SCROLLBARS
-     {"HandleThumb",	HandleThumb},
--#else
-     {"StartScroll",     StartScroll},
--#endif
-     {"MoveThumb",	MoveThumb},
-     {"NotifyThumb",	NotifyThumb},
-     {"NotifyScroll",	NotifyScroll},
-@@ -235,12 +243,11 @@
- 		    (XtConvertArgList)NULL, (Cardinal)0 );
- }
- 
--#ifdef XAW_ARROW_SCROLLBARS
--/* CHECKIT #define MARGIN(sbw) (sbw)->scrollbar.thickness + (sbw)->threeD.shadow_width */
--#define MARGIN(sbw) (sbw)->scrollbar.thickness
--#else
--#define MARGIN(sbw) (sbw)->threeD.shadow_width
--#endif
-+#define MARGIN(sbw)							\
-+    ((sbw)->scrollbar.arrows						\
-+     /* CHECKIT (sbw)->scrollbar.thickness + (sbw)->threeD.shadow_width */ \
-+     ? (sbw)->scrollbar.thickness					\
-+     : (sbw)->threeD.shadow_width)
- 
- /* 
-  The original Xaw Scrollbar's FillArea *really* relied on the fact that the 
-@@ -357,7 +364,6 @@
-     }
- }
- 
--#ifdef XAW_ARROW_SCROLLBARS
- static void PaintArrows (sbw)
-     ScrollbarWidget sbw;
- {
-@@ -453,7 +459,6 @@
- 	}
-     }
- }
--#endif
- 
- /*	Function Name: Destroy
-  *	Description: Called as the scrollbar is going away...
-@@ -464,10 +469,8 @@
-     Widget w;
- {
-     ScrollbarWidget sbw = (ScrollbarWidget) w;
--#ifdef XAW_ARROW_SCROLLBARS
-     if(sbw->scrollbar.timer_id != (XtIntervalId) 0)
- 	XtRemoveTimeOut (sbw->scrollbar.timer_id);
--#endif
-     XtReleaseGC (w, sbw->scrollbar.gc);
- }
- 
-@@ -552,12 +555,8 @@
- 	    ? sbw->scrollbar.thickness : sbw->scrollbar.length;
- 
-     SetDimensions (sbw);
--#ifdef XAW_ARROW_SCROLLBARS
--    sbw->scrollbar.scroll_mode = 0;
-     sbw->scrollbar.timer_id = (XtIntervalId)0;
--#else
-     sbw->scrollbar.direction = 0;
--#endif
-     sbw->scrollbar.topLoc = 0;
-     sbw->scrollbar.shownLength = sbw->scrollbar.min_thumb;
- }
-@@ -568,19 +567,19 @@
-     XSetWindowAttributes *attributes;
- {
-     ScrollbarWidget sbw = (ScrollbarWidget) w;
--#ifdef XAW_ARROW_SCROLLBARS
--    if(sbw->simple.cursor_name == NULL)
--	XtVaSetValues(w, XtNcursorName, "crosshair", NULL);
--    /* dont set the cursor of the window to anything */
--    *valueMask &= ~CWCursor;
--#else
--    sbw->scrollbar.inactiveCursor =
--      (sbw->scrollbar.orientation == XtorientVertical)
--	? sbw->scrollbar.verCursor
--	: sbw->scrollbar.horCursor;
-+    if (sbw->scrollbar.arrows) {
-+	/* if (sbw->simple.cursor_name == NULL)
-+	 *     XtVaSetValues(w, XtNcursorName, "crosshair", NULL); */
-+	/* dont set the cursor of the window to anything */
-+	*valueMask &= ~CWCursor;
-+    } else {
-+	sbw->scrollbar.inactiveCursor =
-+	    (sbw->scrollbar.orientation == XtorientVertical)
-+	    ? sbw->scrollbar.verCursor
-+	    : sbw->scrollbar.horCursor;
- 
--    XtVaSetValues (w, XtNcursor, sbw->scrollbar.inactiveCursor, NULL);
--#endif
-+	XtVaSetValues (w, XtNcursor, sbw->scrollbar.inactiveCursor, NULL);
-+    }
-     /* 
-      * The Simple widget actually stuffs the value in the valuemask. 
-      */
-@@ -669,11 +668,9 @@
- 	sbw->scrollbar.topLoc = -(sbw->scrollbar.length + 1);
- 	PaintThumb (sbw, event); 
-     }
--#ifdef XAW_ARROW_SCROLLBARS
--    /* we'd like to be region aware here!!!! */
--    PaintArrows (sbw);
--#endif
--
-+    if (sbw->scrollbar.arrows)
-+	/* we'd like to be region aware here!!!! */
-+	PaintArrows (sbw);
- }
- 
- 
-@@ -776,7 +773,6 @@
-     }
- }
- 
--#ifdef XAW_ARROW_SCROLLBARS
- /* ARGSUSED */
- static void HandleThumb (w, event, params, num_params)
-     Widget w;
-@@ -787,10 +783,14 @@
-     Position x,y;
-     ScrollbarWidget sbw = (ScrollbarWidget) w;
- 
-+    /* The old non-ARROW_SCROLLBAR binding emulation:
-+       HandleThumb() -> <nothing>  */
-+    if (!sbw->scrollbar.arrows) return;
-+
-     ExtractPosition( event, &x, &y );
-     /* if the motion event puts the pointer in thumb, call Move and Notify */
-     /* also call Move and Notify if we're already in continuous scroll mode */
--    if (sbw->scrollbar.scroll_mode == 2 ||
-+    if (sbw->scrollbar.direction == 'C' ||
- 	(PICKLENGTH (sbw,x,y) >= sbw->scrollbar.topLoc &&
- 	PICKLENGTH (sbw,x,y) <= sbw->scrollbar.topLoc + sbw->scrollbar.shownLength)){
- 	XtCallActionProc(w, "MoveThumb", event, params, *num_params);
-@@ -805,12 +805,12 @@
- #define A_FEW_PIXELS 5
-     ScrollbarWidget sbw = (ScrollbarWidget) client_data;
-     int call_data;
--    if (sbw->scrollbar.scroll_mode != 1 && sbw->scrollbar.scroll_mode != 3) {
-+    if (sbw->scrollbar.direction != 'B' && sbw->scrollbar.direction != 'F') {
- 	sbw->scrollbar.timer_id = (XtIntervalId) 0;
- 	return;
-     }
-     call_data = MAX (A_FEW_PIXELS, sbw->scrollbar.length / 20);
--    if (sbw->scrollbar.scroll_mode == 1)
-+    if (sbw->scrollbar.direction == 'B')
- 	call_data = -call_data;
-     XtCallCallbacks((Widget)sbw, XtNscrollProc, (XtPointer) call_data);
-     sbw->scrollbar.timer_id = 
-@@ -820,12 +820,11 @@
- 		    client_data);
- }
- 
--#else /* XAW_ARROW_SCROLLBARS */
- /* ARGSUSED */
- static void StartScroll (w, event, params, num_params )
-     Widget w;
-     XEvent *event;
--    String *params;		/* direction: Back|Forward|Smooth */
-+    String *params;		/* direction: Back|Forward|Continuous */
-     Cardinal *num_params;	/* we only support 1 */
- {
-     ScrollbarWidget sbw = (ScrollbarWidget) w;
-@@ -833,11 +832,24 @@
-     char direction;
- 
-     if (sbw->scrollbar.direction != 0) return; /* if we're already scrolling */
--    if (*num_params > 0) 
-+    if (*num_params > 0)
- 	direction = *params[0];
-     else
- 	direction = 'C';
- 
-+    if (sbw->scrollbar.arrows) {
-+	/* The old ARROW_SCROLLBAR binding emulation:
-+	 StartScroll(Forward) -> NotifyScroll()
-+	 StartScroll(Backward) -> NotifyScroll()
-+	 StartScroll(Continuous) -> <nothing>  */
-+	switch (direction) {
-+	case 'b': case 'B': case 'f': case 'F':
-+	    NotifyScroll(w, event, params, 0);
-+	    break;
-+	}
-+	return;
-+    }
-+
-     sbw->scrollbar.direction = direction;
- 
-     switch (direction) {
-@@ -865,20 +877,17 @@
-     XtVaSetValues (w, XtNcursor, cursor, NULL);
-     XFlush (XtDisplay (w));
- }
--#endif /* XAW_ARROW_SCROLLBARS */
- 
- /*
-  * Make sure the first number is within the range specified by the other
-  * two numbers.
-  */
- 
--#ifndef XAW_ARROW_SCROLLBARS
- static int InRange(num, small, big)
-     int num, small, big;
- {
-     return (num < small) ? small : ((num > big) ? big : num);
- }
--#endif
- 
- /*
-  * Same as above, but for floating numbers. 
-@@ -891,7 +900,6 @@
- }
- 
- 
--#ifdef XAW_ARROW_SCROLLBARS
- static void NotifyScroll (w, event, params, num_params)
-     Widget w;
-     XEvent *event;
-@@ -902,94 +910,94 @@
-     int call_data;
-     Position x, y;
- 
--    if (sbw->scrollbar.scroll_mode == 2  /* if scroll continuous */
--	|| LookAhead (w, event)) 
--	return;
--
--    ExtractPosition (event, &x, &y);
-+    if (sbw->scrollbar.arrows) {
-+	if (sbw->scrollbar.direction == 'C' /* if scroll continuous */
-+	    || LookAhead (w, event)) 
-+	    return;
-+
-+	/* Old ARROW_SCROLLBAR bindings emulation:
-+	   NotifyScroll(Proportional) -> <nothing>  */
-+	if (num_params > 0 && (*params[0] == 'P' || *params[0] == 'p'))
-+	    return;
- 
--    if (PICKLENGTH (sbw,x,y) < sbw->scrollbar.thickness) {
--	/* handle first arrow zone */
--	call_data = -MAX (A_FEW_PIXELS, sbw->scrollbar.length / 20);
--	XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
--	/* establish autoscroll */
--	sbw->scrollbar.timer_id = 
--	    XtAppAddTimeOut (XtWidgetToApplicationContext (w),
--				(unsigned long) 300, RepeatNotify, (XtPointer)w);
--	sbw->scrollbar.scroll_mode = 1;
--    } else if (PICKLENGTH (sbw,x,y) > sbw->scrollbar.length - sbw->scrollbar.thickness) {
--	/* handle last arrow zone */
--	call_data = MAX (A_FEW_PIXELS, sbw->scrollbar.length / 20);
--	XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
--	/* establish autoscroll */
--	sbw->scrollbar.timer_id =
--	    XtAppAddTimeOut (XtWidgetToApplicationContext (w), 
--				(unsigned long) 300, RepeatNotify, (XtPointer)w);
--	sbw->scrollbar.scroll_mode = 3;
--    } else if (PICKLENGTH (sbw, x, y) < sbw->scrollbar.topLoc) {
--	/* handle zone "above" the thumb */
--	call_data = - sbw->scrollbar.length;
--	XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
--    } else if (PICKLENGTH (sbw, x, y) > sbw->scrollbar.topLoc + sbw->scrollbar.shownLength) {
--	/* handle zone "below" the thumb */
--	call_data = sbw->scrollbar.length;
--	XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
--    } else 
--	{
--	/* handle the thumb in the motion notify action */
--	}
--    return;
--}
--#else /* XAW_ARROW_SCROLLBARS */
--static void NotifyScroll (w, event, params, num_params)
--    Widget w;
--    XEvent *event;
--    String *params;		/* style: Proportional|FullLength */
--    Cardinal *num_params;	/* we only support 1 */
--{
--    ScrollbarWidget sbw = (ScrollbarWidget) w;
--    int call_data;
--    char style;
--    Position x, y;
--
--    if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */
--    if (LookAhead (w, event)) return;
--    if (*num_params > 0) 
--	style = *params[0];
--    else
--	style = 'P';
--
--    switch (style) {
--    case 'P':    /* Proportional */
--    case 'p':
- 	ExtractPosition (event, &x, &y);
--	call_data = 
--	    InRange (PICKLENGTH (sbw, x, y), 0, (int) sbw->scrollbar.length); 
--	break;
- 
--    case 'F':    /* FullLength */
--    case 'f':    
--	call_data = sbw->scrollbar.length; 
--	break;
--    }
--    switch (sbw->scrollbar.direction) {
--    case 'B':
--    case 'b':    
--	call_data = -call_data;
--	/* fall through */
-+	if (PICKLENGTH (sbw,x,y) < sbw->scrollbar.thickness) {
-+	    /* handle first arrow zone */
-+	    call_data = -MAX (A_FEW_PIXELS, sbw->scrollbar.length / 20);
-+	    XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
-+	    /* establish autoscroll */
-+	    sbw->scrollbar.timer_id = 
-+		XtAppAddTimeOut (XtWidgetToApplicationContext (w),
-+				 (unsigned long) 300, RepeatNotify, (XtPointer)w);
-+	    sbw->scrollbar.direction = 'B';
-+	} else if (PICKLENGTH (sbw,x,y) > sbw->scrollbar.length - sbw->scrollbar.thickness) {
-+	    /* handle last arrow zone */
-+	    call_data = MAX (A_FEW_PIXELS, sbw->scrollbar.length / 20);
-+	    XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
-+	    /* establish autoscroll */
-+	    sbw->scrollbar.timer_id =
-+		XtAppAddTimeOut (XtWidgetToApplicationContext (w), 
-+				 (unsigned long) 300, RepeatNotify, (XtPointer)w);
-+	    sbw->scrollbar.direction = 'F';
-+	} else if (PICKLENGTH (sbw, x, y) < sbw->scrollbar.topLoc) {
-+	    /* handle zone "above" the thumb */
-+	    call_data = - sbw->scrollbar.length;
-+	    XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
-+	} else if (PICKLENGTH (sbw, x, y) > sbw->scrollbar.topLoc + sbw->scrollbar.shownLength) {
-+	    /* handle zone "below" the thumb */
-+	    call_data = sbw->scrollbar.length;
-+	    XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
-+	} else 
-+	    {
-+		/* handle the thumb in the motion notify action */
-+	    }
-+    } else { /* XAW_ARROW_SCROLLBARS */
-+	char style;
- 
--    case 'F':
--    case 'f':    
--	XtCallCallbacks (w, XtNscrollProc, (XtPointer)call_data);
--	break;
-+	if (sbw->scrollbar.direction == 0)
-+	    /* Either we haven't yet done StartScoll, or w've already done
-+	       an EndScroll (e.g: Btn1Down, Btn2Down, Btn2up, Btn1up). */
-+	    return;
-+	if (LookAhead (w, event)) return;
-+	if (*num_params > 0) 
-+	    style = *params[0];
-+	else
-+	    style = 'P';
-+
-+	switch (style) {
-+	case 'P':    /* Proportional */
-+	case 'p':
-+	    ExtractPosition (event, &x, &y);
-+	    call_data = 
-+		InRange (PICKLENGTH (sbw, x, y), 0, (int) sbw->scrollbar.length); 
-+	    break;
-+
-+	/* case 'F':    /\* FullLength *\/
-+	 * case 'f':     */
-+	default:
-+	    call_data = sbw->scrollbar.length; 
-+	    break;
-+	}
- 
--    case 'C':
--    case 'c':
--	/* NotifyThumb has already called the thumbProc(s) */
--	break;
--    }
-+	switch (sbw->scrollbar.direction) {
-+	case 'B':
-+	case 'b':    
-+	    call_data = -call_data;
-+	    /* fall through */
-+
-+	case 'F':
-+	case 'f':    
-+	    XtCallCallbacks (w, XtNscrollProc, (XtPointer)call_data);
-+	    break;
-+
-+	case 'C':
-+	case 'c':
-+	    /* NotifyThumb has already called the thumbProc(s) */
-+	    break;
-+	}
-+    } /* XAW_ARROW_SCROLLBARS */
- }
--#endif /* XAW_ARROW_SCROLLBARS */
- 
- /* ARGSUSED */
- static void EndScroll(w, event, params, num_params )
-@@ -1000,23 +1008,18 @@
- {
-     ScrollbarWidget sbw = (ScrollbarWidget) w;
- 
--#ifdef XAW_ARROW_SCROLLBARS
--    sbw->scrollbar.scroll_mode = 0;
--    /* no need to remove any autoscroll timeout; it will no-op */
--    /* because the scroll_mode is 0 */
--    /* but be sure to remove timeout in destroy proc */
--#else
-     XtVaSetValues (w, XtNcursor, sbw->scrollbar.inactiveCursor, NULL);
-     XFlush (XtDisplay (w));
-     sbw->scrollbar.direction = 0;
--#endif
-+    /* no need to remove any autoscroll timeout; it will no-op */
-+    /* because the direction is 0 */
-+    /* but be sure to remove timeout in destroy proc */
- }
- 
- static float FractionLoc (sbw, x, y)
-     ScrollbarWidget sbw;
-     int x, y;
- {
--    float   result;
-     int margin;
-     float   height, width;
- 
-@@ -1025,8 +1028,7 @@
-     y -= margin;
-     height = sbw->core.height - 2 * margin;
-     width = sbw->core.width - 2 * margin;
--    result = PICKLENGTH (sbw, x / width, y / height);
--    return FloatInRange(result, 0.0, 1.0);
-+    return PICKLENGTH (sbw, x / width, y / height);
- }
- 
- 
-@@ -1038,42 +1040,34 @@
- {
-     ScrollbarWidget sbw = (ScrollbarWidget) w;
-     Position x, y;
--    float loc, t, s;
-+    float loc;
- 
--#ifndef XAW_ARROW_SCROLLBARS
--    if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */
--#endif
-+    if (!sbw->scrollbar.arrows)
-+	if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */
- 
-     if (LookAhead (w, event)) return;
- 
-     if (!event->xmotion.same_screen) return;
- 
-     ExtractPosition (event, &x, &y);
--    loc = FractionLoc (sbw, x, y);
--    t = sbw->scrollbar.top;
--    s = sbw->scrollbar.shown;
--#ifdef XAW_ARROW_SCROLLBARS
--    if (sbw->scrollbar.scroll_mode != 2 )
--      /* initialize picked position */
--      sbw->scrollbar.picked = (FloatInRange( loc, t, t + s ) - t);
--#else
--    sbw->scrollbar.picked = 0.5 * s;
--#endif
--    if (sbw->scrollbar.pick_top)
--      sbw->scrollbar.top = loc;
--    else {
--      sbw->scrollbar.top = loc - sbw->scrollbar.picked;
--      if (sbw->scrollbar.top < 0.0) sbw->scrollbar.top = 0.0;
-+
-+    if (sbw->scrollbar.direction != 'C') {
-+	/* initialize picked position offset */
-+	sbw->scrollbar.picked
-+	    = sbw->scrollbar.pick_top ? 0
-+	    : FractionLoc (sbw, x, y) - sbw->scrollbar.top;
-     }
- 
-+    loc = FractionLoc (sbw, x, y) - sbw->scrollbar.picked;
-+    
-+    sbw->scrollbar.top = FloatInRange (loc, 0.0, 1.0);
-+
- #if 0
-     /* this breaks many text-line scrolls */
-     if (sbw->scrollbar.top + sbw->scrollbar.shown > 1.0)
-       sbw->scrollbar.top = 1.0 - sbw->scrollbar.shown;
- #endif
--#ifdef XAW_ARROW_SCROLLBARS
--    sbw->scrollbar.scroll_mode = 2; /* indicate continuous scroll */
--#endif
-+    sbw->scrollbar.direction = 'C'; /* indicate continuous scroll */
-     PaintThumb (sbw, event);
-     XFlush (XtDisplay (w));	/* re-draw it before Notifying */
- }
-@@ -1089,9 +1083,8 @@
-     register ScrollbarWidget sbw = (ScrollbarWidget) w;
-     float top = sbw->scrollbar.top;
- 
--#ifndef XAW_ARROW_SCROLLBARS
--    if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */
--#endif
-+    if (!sbw->scrollbar.arrows)
-+	if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */
- 
-     if (LookAhead (w, event)) return;
- 
-@@ -1152,12 +1145,6 @@
- 	    w,top,shown);
- #endif
- 
--#ifdef XAW_ARROW_SCROLLBARS
--    if (sbw->scrollbar.scroll_mode == (char) 2) return; /* if still thumbing */
--#else
--    if (sbw->scrollbar.direction == 'c') return; /* if still thumbing */
--#endif
--
-     sbw->scrollbar.top = (top > 1.0) ? 1.0 :
- 				(top >= 0.0) ? top : sbw->scrollbar.top;
- 
-Index: Scrollbar.h
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/Scrollbar.h,v
-retrieving revision 1.1.1.5
-retrieving revision 1.2
-diff -u -r1.1.1.5 -r1.2
---- Scrollbar.h	25 Mar 2005 18:08:51 -0000	1.1.1.5
-+++ Scrollbar.h	25 Mar 2005 22:41:01 -0000	1.2
-@@ -116,10 +116,12 @@
- #define XtCShown "Shown"
- #define XtCTopOfThumb "TopOfThumb"
- #define XtCPickTop "PickTop"
-+#define XtCArrowScrollbars "ArrowScrollbars"
- 
- #define XtNminimumThumb "minimumThumb"
- #define XtNtopOfThumb "topOfThumb"
- #define XtNpickTop "pickTop"
-+#define XtNarrowScrollbars "arrowScrollbars"
- 
- typedef struct _ScrollbarRec	  *ScrollbarWidget;
- typedef struct _ScrollbarClassRec *ScrollbarWidgetClass;
-Index: ScrollbarP.h
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/ScrollbarP.h,v
-retrieving revision 1.1.1.6
-retrieving revision 1.2
-diff -u -r1.1.1.6 -r1.2
---- ScrollbarP.h	25 Mar 2005 18:12:04 -0000	1.1.1.6
-+++ ScrollbarP.h	25 Mar 2005 22:41:01 -0000	1.2
-@@ -70,14 +70,12 @@
-     XtCallbackList thumbProc;	/* jump (to position) scroll */
-     XtCallbackList jumpProc;	/* same as thumbProc but pass data by ref */
-     Pixmap	  thumb;	/* thumb color */
--#ifndef XAW_ARROW_SCROLLBARS
-     Cursor        upCursor;	/* scroll up cursor */
-     Cursor        downCursor;	/* scroll down cursor */
-     Cursor        leftCursor;	/* scroll left cursor */
-     Cursor        rightCursor;	/* scroll right cursor */
-     Cursor        verCursor;	/* scroll vertical cursor */
-     Cursor        horCursor;	/* scroll horizontal cursor */
--#endif
-     float	  top;		/* What percent is above the win's top */
-     float	  shown;	/* What percent is shown in the win */
-     Dimension	  length;	/* either height or width */
-@@ -87,18 +85,16 @@
- 				 * when scrolling starts */
- 
-      /* private */
--#ifdef XAW_ARROW_SCROLLBARS
--    XtIntervalId  timer_id;     /* autorepeat timer; remove on destruction */
--    char	  scroll_mode;	/* 0:none 1:up/back 2:track 3:down/forward */
--#else
-     Cursor        inactiveCursor; /* the normal cursor for scrollbar */
--    char          direction;	/* a scroll has started; which direction */
--#endif
-+    char          direction;	/* 0:none, C:drag, F:down/forw, B:up/back */
-     GC		  gc;		/* a (shared) gc */
-     Position	  topLoc;	/* Pixel that corresponds to top */
-     Dimension	  shownLength;	/* Num pixels corresponding to shown */
-     Boolean       pick_top;     /* pick thumb at top or anywhere*/
-+    Boolean       arrows;	/* Whether it has arrows at the end. */
- 
-+    /* Only used for arrow-scrollbars. */
-+    XtIntervalId  timer_id;     /* autorepeat timer; remove on destruction */
- } ScrollbarPart;
- 
- typedef struct _ScrollbarRec {
-Index: Text.c
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/Text.c,v
-retrieving revision 1.1.1.10
-retrieving revision 1.2
-diff -u -r1.1.1.10 -r1.2
---- Text.c	25 Mar 2005 18:12:05 -0000	1.1.1.10
-+++ Text.c	27 Mar 2005 13:53:38 -0000	1.2
-@@ -1462,10 +1462,8 @@
-   if (height < 1)
-     height = 1;
-   nlines = (int) (lines * (int) ctx->text.lt.lines) / height;
--#ifdef XAW_ARROW_SCROLLBARS
-   if (nlines == 0 && lines != 0) 
-     nlines = lines > 0 ? 1 : -1;
--#endif
-   _XawTextPrepareToUpdate(ctx);
-   _XawTextVScroll(ctx, nlines);
-   _XawTextExecuteUpdate(ctx);
-Index: Xaw3dP.h.sed
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/Xaw3dP.h.sed,v
-retrieving revision 1.1.1.1
-retrieving revision 1.2
-diff -u -r1.1.1.1 -r1.2
---- Xaw3dP.h.sed	25 Mar 2005 18:12:06 -0000	1.1.1.1
-+++ Xaw3dP.h.sed	27 Mar 2005 13:53:38 -0000	1.2
-@@ -36,7 +36,6 @@
- /* I18n support */
- /* XPM support */
- /* gray stipples */
--/* arrow scrollbars */
- 
- #ifndef XtX
- #define XtX(w)			(((RectObj)w)->rectangle.x)
diff --git a/x11-toolkits/libXaw3d/pkg-descr b/x11-toolkits/libXaw3d/pkg-descr
index 48b65cf5b80e..b31ece9396e1 100644
--- a/x11-toolkits/libXaw3d/pkg-descr
+++ b/x11-toolkits/libXaw3d/pkg-descr
@@ -1,2 +1,17 @@
-Xaw3d is a Xaw (Athena Widget Set) replacement that looks
-three-dimensional.  The author is Kalib Keithley (kaleb@x.org).
+Xaw3d is the X 3D Athena Widget Set. Xaw3d is a widget set based on
+the X Toolkit Intrinsics (Xt) Library.
+
+All questions regarding this software should be directed at the Xorg
+mailing list:
+
+https://lists.x.org/mailman/listinfo/xorg
+
+The primary development code repository can be found at:
+
+https://gitlab.freedesktop.org/xorg/lib/libXaw3d
+
+Please submit bug reports and requests to merge patches there.
+
+For patch submission instructions, see:
+
+https://www.x.org/wiki/Development/Documentation/SubmittingPatches
diff --git a/x11-toolkits/libXaw3d/pkg-plist b/x11-toolkits/libXaw3d/pkg-plist
index 0a736a91fb55..d67e56ef029c 100644
--- a/x11-toolkits/libXaw3d/pkg-plist
+++ b/x11-toolkits/libXaw3d/pkg-plist
@@ -1,6 +1,3 @@
-lib/libXaw3d.a
-lib/libXaw3d.so
-lib/libXaw3d.so.8
 include/X11/Xaw3d/AllWidgets.h
 include/X11/Xaw3d/AsciiSink.h
 include/X11/Xaw3d/AsciiSinkP.h
@@ -56,9 +53,6 @@ include/X11/Xaw3d/SmeThreeD.h
 include/X11/Xaw3d/SmeThreeDP.h
*** 18 LINES SKIPPED ***