From: Stuart Henderson Subject: Re: x11/tk/8.6: Missing headers in package? To: Johannes Thyssen Tishman Cc: ports@openbsd.org, Stuart Cassoff Date: Wed, 18 Sep 2024 14:12:02 +0100 On 2024/09/18 14:53, Johannes Thyssen Tishman wrote: > I'm trying to build a port (netgen, port attached) that depends on Tk > and I'm trying to use version 8.6. However when building I get the > following error: > > /usr/ports/pobj/netgen-6.2.2404/netgen-6.2.2404/ng/Togl2.1/togl.c:30:10: fatal error: 'tkInt.h' file not found > #include // don't need it on osx ??? > ^~~~~~~~~ > 1 error generated. > ninja: build stopped: subcommand failed. > > I looked at the package lists of both Tk versions and 8.5 includes the > above mentioned header as well as the following, many of which version > 8.6 does not include. > > include/tk8.5/default.h > include/tk8.5/tk.h > include/tk8.5/tkDecls.h > include/tk8.5/tkInt.h > include/tk8.5/tkIntDecls.h > include/tk8.5/tkIntPlatDecls.h > include/tk8.5/tkIntXlibDecls.h > include/tk8.5/tkPlatDecls.h > include/tk8.5/tkPort.h > include/tk8.5/tkUnixDefault.h > include/tk8.5/tkUnixInt.h > include/tk8.5/tkUnixPort.h > include/tk8.5/ttkDecls.h > include/tk8.5/ttkTheme.h > > Is there a specific reason for this? The Tk-8.6 package lists of other > OS's (e.g. Arch Linux[1] or FreeBSD[2]) include them as well. > > I can build with version 8.5 with no issues, however this port will be > used in conjunction with cad/opencascade which depends on version 8.6. > Not sure if this would cause problems or not, but it seems silly to > install both versions if both could work with the same. > > [1] https://archlinux.org/packages/extra/x86_64/tk/files/ > [2] https://github.com/freebsd/freebsd-ports/blob/main/x11-toolkits/tk86/pkg-plist > fwiw these are the private headers which stu@ intentionally removed in this commit: $ cvsps -s 136 -g --------------------- PatchSet 136 Date: 2015/05/22 05:17:59 Author: stu Branch: HEAD Tag: (none) Log: Update to 8.6.4. Discontinue the installation of private header files. Better setting of Tcl include dir. Improved lib/package/module path config/runtime. Port improvements for less diff churn on future port updates. Members: 8.6/Makefile:1.8->1.9 8.6/distinfo:1.3->1.4 8.6/patches/patch-library_tk_tcl:1.1->1.2 8.6/patches/patch-unix_Makefile_in:1.3->1.4 8.6/pkg/PLIST:1.6->1.7 Index: ports/x11/tk/8.6/Makefile diff -u ports/x11/tk/8.6/Makefile:1.8 ports/x11/tk/8.6/Makefile:1.9 --- ports/x11/tk/8.6/Makefile:1.8 Sun Sep 7 18:49:32 2014 +++ ports/x11/tk/8.6/Makefile Fri May 22 04:17:59 2015 @@ -1,10 +1,11 @@ -# $OpenBSD: Makefile,v 1.8 2014/09/07 18:49:32 stu Exp $ +# $OpenBSD: Makefile,v 1.9 2015/05/22 04:17:59 stu Exp $ COMMENT = graphical toolkit for Tcl -DISTNAME = tk8.6.2 -PKGNAME = tk-8.6.2 -SHARED_LIBS = tk86 1.1 +P = 4 +DISTNAME = tk8.6.${P} +PKGNAME = tk-8.6.${P} +SHARED_LIBS = tk86 1.2 CATEGORIES = x11 x11/tk HOMEPAGE = http://www.tcl.tk/ MAINTAINER = Stuart Cassoff @@ -17,11 +18,11 @@ MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=tcl/} DISTFILES = ${DISTNAME}-src.tar.gz -LIB_DEPENDS = tcl->=8.6.2,<8.6.3:lang/tcl/8.6 +LIB_DEPENDS = tcl-8.6.${P}:lang/tcl/8.6 MAKE_FLAGS += TK_LIBRARY='$$(prefix)/lib/tcl/tk$$(VERSION)' \ - TCL_GENERIC_DIR='$$(GENERIC_DIR)' \ - TCL_PLATFORM_DIR='$$(GENERIC_DIR)' + TCL_GENERIC_DIR='${LOCALBASE}/include/tcl8.6' \ + TCL_PLATFORM_DIR='$$(TCL_GENERIC_DIR)' FAKE_FLAGS = INSTALL_DATA_DIR="${INSTALL_DATA_DIR}" \ INSTALL_LIBRARY="${INSTALL_DATA}" \ @@ -43,8 +44,6 @@ --enable-man-symlinks \ --disable-rpath \ --with-tcl="${LOCALBASE}/lib/tcl/tcl8.6" \ - EXTRA_INSTALL="install-private-headers" \ - EXTRA_CC_SWITCHES="-I${LOCALBASE}/include/tcl8.6" \ SHLIB_VERSION="${LIBtk86_VERSION}" .include @@ -63,9 +62,6 @@ TESTHOME = ${WRKDIR}/testhome # Use TESTFLAGS to control the Tk tests TESTFLAGS = - -pre-configure: - @${SUBST_CMD} ${WRKSRC}/installManPage pre-test: mkdir -p ${TESTHOME} Index: ports/x11/tk/8.6/distinfo diff -u ports/x11/tk/8.6/distinfo:1.3 ports/x11/tk/8.6/distinfo:1.4 --- ports/x11/tk/8.6/distinfo:1.3 Sun Sep 7 18:49:32 2014 +++ ports/x11/tk/8.6/distinfo Fri May 22 04:17:59 2015 @@ -1,2 +1,2 @@ -SHA256 (tk8.6.2-src.tar.gz) = r7ZjkEPsOJBa/iK2HKVIICF/TU6B4K1J+DnBbSv5hXk= -SIZE (tk8.6.2-src.tar.gz) = 4246617 +SHA256 (tk8.6.4-src.tar.gz) = CPmd+F5dycQnF2IWPGqruWLIspfcXEwa+L3QX8LdJsE= +SIZE (tk8.6.4-src.tar.gz) = 4266426 Index: ports/x11/tk/8.6/patches/patch-library_tk_tcl diff -u ports/x11/tk/8.6/patches/patch-library_tk_tcl:1.1 ports/x11/tk/8.6/patches/patch-library_tk_tcl:1.2 --- ports/x11/tk/8.6/patches/patch-library_tk_tcl:1.1 Sat Feb 2 11:18:09 2013 +++ ports/x11/tk/8.6/patches/patch-library_tk_tcl Fri May 22 04:17:59 2015 @@ -1,11 +1,12 @@ -$OpenBSD: patch-library_tk_tcl,v 1.1 2013/02/02 11:18:09 stu Exp $ ---- library/tk.tcl.orig Wed Feb 15 20:58:18 2012 -+++ library/tk.tcl Wed Feb 15 21:46:10 2012 -@@ -53,13 +53,13 @@ namespace eval ::ttk { +$OpenBSD: patch-library_tk_tcl,v 1.2 2015/05/22 04:17:59 stu Exp $ +--- library/tk.tcl.orig Thu Feb 26 12:13:57 2015 ++++ library/tk.tcl Mon Apr 6 21:52:53 2015 +@@ -53,13 +53,14 @@ namespace eval ::ttk { } } -# Add Ttk & Tk's directory to the end of the auto-load search path, if it ++# OpenBSD layout. +# Add Tk's directory to the end of the auto-load search path, if it # isn't already on the path: Index: ports/x11/tk/8.6/patches/patch-unix_Makefile_in diff -u ports/x11/tk/8.6/patches/patch-unix_Makefile_in:1.3 ports/x11/tk/8.6/patches/patch-unix_Makefile_in:1.4 --- ports/x11/tk/8.6/patches/patch-unix_Makefile_in:1.3 Sun Sep 7 18:49:32 2014 +++ ports/x11/tk/8.6/patches/patch-unix_Makefile_in Fri May 22 04:17:59 2015 @@ -1,15 +1,7 @@ -$OpenBSD: patch-unix_Makefile_in,v 1.3 2014/09/07 18:49:32 stu Exp $ ---- unix/Makefile.in.orig Mon Jul 28 11:56:44 2014 -+++ unix/Makefile.in Sun Aug 17 17:01:38 2014 -@@ -558,6 +558,7 @@ PUBLIC_HDRS = $(GENERIC_DIR)/tk.h $(GENERIC_DIR)/tkDec - # The private headers we want installed for install-private-headers - PRIVATE_HDRS = $(GENERIC_DIR)/tkInt.h $(GENERIC_DIR)/tkIntDecls.h \ - $(GENERIC_DIR)/tkIntPlatDecls.h $(GENERIC_DIR)/tkPort.h \ -+ $(GENERIC_DIR)/default.h $(UNIX_DIR)/tkUnixDefault.h \ - $(TTK_HDRS) $(@TK_WINDOWINGSYSTEM@_PRIVATE_HDRS) - - DEMOPROGS = browse hello ixset rmt rolodex square tcolor timer widget -@@ -593,6 +594,10 @@ ${STUB_LIB_FILE}: ${STUB_LIB_OBJS} +$OpenBSD: patch-unix_Makefile_in,v 1.4 2015/05/22 04:17:59 stu Exp $ +--- unix/Makefile.in.orig Wed Mar 11 09:59:53 2015 ++++ unix/Makefile.in Mon Apr 6 19:47:51 2015 +@@ -593,6 +593,10 @@ ${STUB_LIB_FILE}: ${STUB_LIB_OBJS} rm -f $@ @MAKE_STUB_LIB@ @@ -20,7 +12,7 @@ # Build Aqua resource files ${TK_RSRC_FILE}: $(AQUA_RESOURCES) rm -f $@ -@@ -740,10 +745,10 @@ install-binaries: $(TK_STUB_LIB_FILE) $(TK_LIB_FILE) $ +@@ -740,10 +744,10 @@ install-binaries: $(TK_STUB_LIB_FILE) $(TK_LIB_FILE) $ echo "}";\ fi \ ) > "$(PKG_INDEX)"; \ @@ -32,7 +24,7 @@ @if test -f "tk${MAJOR_VERSION}${MINOR_VERSION}.dll"; then \ $(INSTALL_LIBRARY) "tk${MAJOR_VERSION}${MINOR_VERSION}.dll" "$(DLL_INSTALL_DIR)";\ chmod 555 "$(DLL_INSTALL_DIR)/tk${MAJOR_VERSION}${MINOR_VERSION}.dll";\ -@@ -761,7 +766,7 @@ install-binaries: $(TK_STUB_LIB_FILE) $(TK_LIB_FILE) $ +@@ -761,7 +765,7 @@ install-binaries: $(TK_STUB_LIB_FILE) $(TK_LIB_FILE) $ @EXTRA_INSTALL_BINARIES@ @echo "Installing pkg-config file to $(LIB_INSTALL_DIR)/pkgconfig/" @$(INSTALL_DATA_DIR) $(LIB_INSTALL_DIR)/pkgconfig @@ -41,7 +33,7 @@ install-libraries: libraries @for i in "$(SCRIPT_INSTALL_DIR)" "$(SCRIPT_INSTALL_DIR)/images" \ -@@ -816,6 +821,7 @@ install-demos: +@@ -816,6 +820,7 @@ install-demos: if [ -f $$i ] ; then \ sed -e '3 s|exec wish|exec wish$(VERSION)|' \ $$i > "$(DEMO_INSTALL_DIR)"/`basename $$i`; \ @@ -49,7 +41,7 @@ fi; \ done; @for i in $(DEMOPROGS); \ -@@ -823,7 +829,7 @@ install-demos: +@@ -823,7 +828,7 @@ install-demos: if test $$i = "square"; then \ rm -f "$(DEMO_INSTALL_DIR)/$$i"; \ else \ Index: ports/x11/tk/8.6/pkg/PLIST diff -u ports/x11/tk/8.6/pkg/PLIST:1.6 ports/x11/tk/8.6/pkg/PLIST:1.7 --- ports/x11/tk/8.6/pkg/PLIST:1.6 Sun Sep 7 18:49:32 2014 +++ ports/x11/tk/8.6/pkg/PLIST Fri May 22 04:17:59 2015 @@ -1,23 +1,12 @@ -@comment $OpenBSD: PLIST,v 1.6 2014/09/07 18:49:32 stu Exp $ +@comment $OpenBSD: PLIST,v 1.7 2015/05/22 04:17:59 stu Exp $ @option no-default-conflict @conflict tk->=8.6,<8.7 %%SHARED%% @bin bin/wish8.6 include/tk8.6/ -include/tk8.6/default.h include/tk8.6/tk.h include/tk8.6/tkDecls.h -include/tk8.6/tkInt.h -include/tk8.6/tkIntDecls.h -include/tk8.6/tkIntPlatDecls.h -include/tk8.6/tkIntXlibDecls.h include/tk8.6/tkPlatDecls.h -include/tk8.6/tkPort.h -include/tk8.6/tkUnixDefault.h -include/tk8.6/tkUnixInt.h -include/tk8.6/tkUnixPort.h -include/tk8.6/ttkDecls.h -include/tk8.6/ttkTheme.h lib/libtk86.a @lib lib/libtk86.so.${LIBtk86_VERSION} lib/libtkstub86.a