Index | Thread | Search

From:
Stuart Cassoff <exokoide@yahoo.ca>
Subject:
Re: [llvm22] update x11/tkhtml to Alpha17 and fix build
To:
Matthieu Herrb <matthieu@openbsd.org>
Cc:
ports@openbsd.org
Date:
Mon, 15 Jun 2026 21:37:09 -0400

Download raw body.

Thread
Hi!

Thanks for looking into this.
I had started patching the previous version but this is better.
Great that you found a newer version.

Looks good.
Maybe change the homepage to the github page or use the wayback machine?
There's nothing anymore at tkhtml.tcl.tk.

fwiw, I can take maintainer, for future punishment.


Stu


On Mon, 8 Jun 2026, Matthieu Herrb wrote:

> Hi,
> 
> tkhtml has an Alpha17 version, according to AUR:
> https://aur.archlinux.org/packages/tkhtml
> 
> Update to that version and fix remaining issues with llvm22
> 
> (A better way to handle DISTNAME/PKGNAME/SITE is welcome if
> any)
> 
> ok, suggestions ?
> 
> Index: Makefile
> ===================================================================
> RCS file: /local/cvs/ports/x11/tkhtml/Makefile,v
> diff -u -p -u -r1.15 Makefile
> --- Makefile	17 May 2026 19:23:41 -0000	1.15
> +++ Makefile	8 Jun 2026 20:54:15 -0000
> @@ -1,11 +1,11 @@
>  COMMENT =	Tk widget to display HTML/CSS formatted contents
>  
> -REVISION =	2
> -DISTNAME =	tkhtml3-alpha-16
> -PKGNAME =	${DISTNAME:S/3-alpha-/-3a/}
> +V =		17
> +DISTNAME =	Alpha-$V
> +PKGNAME =	tkhtml-3a$V
>  CATEGORIES =	x11
>  HOMEPAGE = 	http://tkhtml.tcl.tk/
> -SITES =		${HOMEPAGE}
> +SITES =		https://github.com/Geballin/tkhtml3/archive/
>  
>  # BSD
>  PERMIT_PACKAGE =		Yes
> @@ -15,7 +15,7 @@ BUILD_DEPENDS =		${MODTK_BUILD_DEPENDS}
>  RUN_DEPENDS =		${MODTK_RUN_DEPENDS}
>  WANTLIB +=		X11
>  
> -WRKDIST =		${WRKDIR}/htmlwidget
> +WRKDIST =		${WRKDIR}/tkhtml3-${DISTNAME}
>  USE_GMAKE =		Yes
>  SEPARATE_BUILD =	Yes
>  CONFIGURE_STYLE =	gnu
> Index: distinfo
> ===================================================================
> RCS file: /local/cvs/ports/x11/tkhtml/distinfo,v
> diff -u -p -u -r1.2 distinfo
> --- distinfo	18 Jan 2015 03:16:02 -0000	1.2
> +++ distinfo	8 Jun 2026 20:54:15 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (tkhtml3-alpha-16.tar.gz) = 1d8FxT7TIFZbxB5mUFVN+lhU+zfRhgCxEDF+qoJVY6g=
> -SIZE (tkhtml3-alpha-16.tar.gz) = 838580
> +SHA256 (Alpha-17.tar.gz) = 0t0knDQwb2hl7iVwlWByw2ghIs/FNqxVlc6l3v+aAKA=
> +SIZE (Alpha-17.tar.gz) = 1238570
> Index: patches/patch-configure
> ===================================================================
> RCS file: /local/cvs/ports/x11/tkhtml/patches/patch-configure,v
> diff -u -p -u -r1.3 patch-configure
> --- patches/patch-configure	11 Mar 2022 20:17:28 -0000	1.3
> +++ patches/patch-configure	8 Jun 2026 20:54:15 -0000
> @@ -1,7 +1,7 @@
>  Index: configure
>  --- configure.orig
>  +++ configure
> -@@ -9545,7 +9545,7 @@ echo "${ECHO_T}$tcl_cv_ld_elf" >&6
> +@@ -9579,7 +9579,7 @@ echo "${ECHO_T}$tcl_cv_ld_elf" >&6
>   	    DL_LIBS=""
>   	    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
>   	    LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
> Index: patches/patch-src_htmlprop_c
> ===================================================================
> RCS file: patches/patch-src_htmlprop_c
> diff -N patches/patch-src_htmlprop_c
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_htmlprop_c	8 Jun 2026 20:54:15 -0000
> @@ -0,0 +1,23 @@
> +Fix build with llvm22
> +
> +Index: src/htmlprop.c
> +--- src/htmlprop.c.orig
> ++++ src/htmlprop.c
> +@@ -1232,7 +1232,7 @@ propertyValuesSetColor(p, pCVar, pProp)
> +     HtmlTree *pTree = p->pTree;
> + 
> +     if (pProp->eType == CSS_CONST_INHERIT) {
> +-        HtmlColor **pInherit = (HtmlColor **)getInheritPointer(p, pCVar);
> ++	HtmlColor **pInherit = (HtmlColor **)getInheritPointer(p, (char *)pCVar);
> +         assert(pInherit);
> +         cVal = *pInherit;
> +         goto setcolor_out;
> +@@ -1757,7 +1757,7 @@ propertyValuesSetSize(p, pIVal, p_mask, pProp, allow_m
> +         case CSS_CONST_INHERIT:
> +             if (allow_mask & SZ_INHERIT) {
> +                 HtmlNode *pParent = p->pParent;
> +-                int *pInherit = (int *)getInheritPointer(p, pIVal);
> ++                int *pInherit = (int *)getInheritPointer(p, (u_char *)pIVal);
> +                 assert(pInherit);
> +                 assert(pParent);
> + 
> Index: patches/patch-src_htmltable_c
> ===================================================================
> RCS file: patches/patch-src_htmltable_c
> diff -N patches/patch-src_htmltable_c
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_htmltable_c	8 Jun 2026 20:54:15 -0000
> @@ -0,0 +1,23 @@
> +Fix build with llvm22
> +
> +Index: src/htmltable.c
> +--- src/htmltable.c.orig
> ++++ src/htmltable.c
> +@@ -1206,7 +1206,7 @@ rowGroupIterate(pTree, pNode, p)
> +             sRow.node.iNode = -1;
> +             sRow.nChild = jj - ii;
> +             sRow.apChildren = &((HtmlElementNode *)pNode)->apChildren[ii];
> +-            rowIterate(pTree, &sRow, p);
> ++            rowIterate(pTree, (HtmlNode *)&sRow, p);
> +             assert(!sRow.pLayoutCache);
> +             ii = jj - 1;
> +         }
> +@@ -1331,7 +1331,7 @@ tableIterate(pTree, pNode, xCallback, xRowCallback, pC
> +             sRowGroup.node.iNode = -1;
> +             sRowGroup.nChild = jj - ii;
> +             sRowGroup.apChildren = &((HtmlElementNode *)pNode)->apChildren[ii];
> +-            rowGroupIterate(pTree, &sRowGroup, &sRowContext);
> ++            rowGroupIterate(pTree, (HtmlNode *)&sRowGroup, &sRowContext);
> +             assert(!sRowGroup.pLayoutCache);
> +             ii = jj - 1;
> +         }
> Index: patches/patch-src_htmltcl_c
> ===================================================================
> RCS file: /local/cvs/ports/x11/tkhtml/patches/patch-src_htmltcl_c,v
> diff -u -p -u -r1.2 patch-src_htmltcl_c
> --- patches/patch-src_htmltcl_c	11 Mar 2022 20:17:28 -0000	1.2
> +++ patches/patch-src_htmltcl_c	8 Jun 2026 20:54:15 -0000
> @@ -1,10 +1,11 @@
>  fix implicit declaration compilation warning
>  
> ---- src/htmltcl.c.orig	Sun Dec 12 10:19:53 2010
> -+++ src/htmltcl.c	Sun Dec 12 10:20:10 2010
> -@@ -41,6 +41,7 @@ static char const rcsid[] = "@(#) $Id: htmltcl.c,v 1.1
> - #include <assert.h>
> +Index: src/htmltcl.c
> +--- src/htmltcl.c.orig
> ++++ src/htmltcl.c
> +@@ -42,6 +42,7 @@ static char const rcsid[] = "@(#) $Id: htmltcl.c,v 1.2
>   #include "html.h"
> + #include "restrack.h"
>   #include "swproc.h"
>  +#include "restrack.h"
>   
> Index: patches/patch-src_htmltree_c
> ===================================================================
> RCS file: patches/patch-src_htmltree_c
> diff -N patches/patch-src_htmltree_c
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_htmltree_c	8 Jun 2026 20:54:15 -0000
> @@ -0,0 +1,45 @@
> +Fix build with llvm22
> +
> +Index: src/htmltree.c
> +--- src/htmltree.c.orig
> ++++ src/htmltree.c
> +@@ -3169,7 +3169,7 @@ fragmentAddElement(pTree, eType, zType, pAttributes, i
> +             return;
> +     }
> + 
> +-    implicitCloseCount(pTree, pFragment->pCurrent, eType, &nClose);
> ++    implicitCloseCount(pTree, (HtmlNode *)pFragment->pCurrent, eType, &nClose);
> +     for (ii = 0; ii < nClose; ii++) {
> +         HtmlNode *pC = &pFragment->pCurrent->node;
> +         HtmlNode *pParentC = HtmlNodeParent(pC);
> +@@ -3199,7 +3199,7 @@ fragmentAddElement(pTree, eType, zType, pAttributes, i
> +     pFragment->pCurrent = pElem;
> + 
> +     if (HtmlMarkup(eType)->flags & HTMLTAG_EMPTY) {
> +-        nodeHandlerCallbacks(pTree, pFragment->pCurrent);
> ++	nodeHandlerCallbacks(pTree, (HtmlNode *)pFragment->pCurrent);
> +         pFragment->pCurrent = (HtmlElementNode *)HtmlNodeParent(pElem);
> +     }
> +     if (!pFragment->pCurrent) {
> +@@ -3217,10 +3217,10 @@ fragmentAddClosingTag(pTree, eType, zType, iOffset)
> +     int nClose;
> +     int ii;
> +     HtmlFragmentContext *p = pTree->pFragment;
> +-    explicitCloseCount(p->pCurrent, eType, zType, &nClose);
> ++    explicitCloseCount((HtmlNode *)p->pCurrent, eType, zType, &nClose);
> +     for (ii = 0; ii < nClose; ii++) {
> +         assert(p->pCurrent);
> +-        nodeHandlerCallbacks(pTree, p->pCurrent);
> ++        nodeHandlerCallbacks(pTree, (HtmlNode *)p->pCurrent);
> +         p->pCurrent = (HtmlElementNode *)HtmlNodeParent(p->pCurrent);
> +     }
> +     if (!p->pCurrent) {
> +@@ -3247,7 +3247,7 @@ HtmlParseFragment(pTree, zHtml)
> + 
> +     while (sContext.pCurrent) {
> +         HtmlNode *pParent = HtmlNodeParent(sContext.pCurrent); 
> +-        nodeHandlerCallbacks(pTree, sContext.pCurrent);
> ++        nodeHandlerCallbacks(pTree, (HtmlNode *)sContext.pCurrent);
> +         sContext.pCurrent = (HtmlElementNode *)pParent;
> +     }
> + 
> Index: pkg/PLIST
> ===================================================================
> RCS file: /local/cvs/ports/x11/tkhtml/pkg/PLIST,v
> diff -u -p -u -r1.4 PLIST
> --- pkg/PLIST	11 Mar 2022 20:17:28 -0000	1.4
> +++ pkg/PLIST	8 Jun 2026 20:54:15 -0000
> @@ -1,4 +1,5 @@
>  lib/tcl/tkhtml/
> -lib/tcl/tkhtml/libTkhtml${VER}.so
> +lib/tcl/tkhtml/hv3-0.1.tm
> +@so lib/tcl/tkhtml/libTkhtml${VER}.so
>  lib/tcl/tkhtml/pkgIndex.tcl
>  @man man/mann/tkhtml.n
> 
> -- 
> Matthieu Herrb
> 
>