Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tcl: update to 9.0.1 #1576

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build/meta/extra-build-tools.p5m
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@ set name=pkg.description value="Tools required to build OmniOS extra"

depend fmri=ooce/omnios-build-tools type=require

depend fmri=compress/7zip type=require
depend fmri=compress/lz4 type=require
depend fmri=driver/tuntap type=require
depend fmri=library/unixodbc type=require
32 changes: 21 additions & 11 deletions build/tcl/build.sh
Original file line number Diff line number Diff line change
@@ -12,13 +12,13 @@
# http://www.illumos.org/license/CDDL.
# }}}

# Copyright 2024 OmniOS Community Edition (OmniOSce) Association.
# Copyright 2025 OmniOS Community Edition (OmniOSce) Association.

. ../../lib/build.sh

PROG=tcl
VER=8.6.14
EXPECTVER=5.45.4
VER=9.0.1
EXPECTVER=5.45.4.1
PKG=ooce/runtime/tcl
SUMMARY="Tool Command Language"
DESC="A very powerful but easy to learn dynamic programming language"
@@ -28,16 +28,16 @@ MAJVER=${VER%.*}
OPREFIX=$PREFIX
PREFIX+=/$PROG

set_builddir $PROG$VER/unix
PATCHDIR+=-$PROG
set_builddir $PROG$VER
set_patchdir patches-$PROG

SKIP_LICENCES=BSD-style

# does not yet build with gcc 14
((GCCVER > 13)) && set_gccver 13

set_arch 64

# the build requires gnu find
PATH=$GNUBIN:$PATH

XFORM_ARGS="
-DPREFIX=${PREFIX#/}
-DOPREFIX=${OPREFIX#/}
@@ -53,6 +53,12 @@ CONFIGURE_OPTS[amd64]="
--enable-64bit
"

pre_build() {
append_builddir unix

unset -f pre_build
}

post_configure() {
pushd $TMPDIR/$BUILDDIR/../doc >/dev/null

@@ -91,8 +97,11 @@ DESC="A tool for automating interactive applications"
TCLDIR=$DESTDIR$PREFIX/lib
PREFIX="$OPREFIX/$PROG"

BUILDDIR=$PROG$VER
PATCHDIR=patches-$PROG
# does not yet build with gcc 14
((GCCVER > 13)) && set_gccver 13

set_builddir $PROG-$VER
set_patchdir patches-$PROG

SKIP_LICENCES=NIST

@@ -113,9 +122,10 @@ CONFIGURE_OPTS[amd64]="
"

init
download_source $PROG $PROG$VER
download_source $PROG $PROG $VER
patch_source
prep_build
run_autoconf -f
LD_LIBRARY_PATH=$TCLDIR build
make_package $PROG-local.mog
clean_up
5 changes: 5 additions & 0 deletions build/tcl/files/ctf.ignore
Original file line number Diff line number Diff line change
@@ -3,4 +3,9 @@ exp_regexp.c
itclTestRegisterC.c
psGdbm.c
psLmdb.c
tclAlloc.c
tclEpollNotfy.c
tclKqueueNotfy.c
tclThreadJoin.c
threadNs.c
threadUnix.c
29 changes: 29 additions & 0 deletions build/tcl/patches-tcl/alloca.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
diff -wpruN --no-dereference '--exclude=*.orig' a~/pkgs/sqlite3.47.2/compat/sqlite3/sqlite3.c a/pkgs/sqlite3.47.2/compat/sqlite3/sqlite3.c
--- a~/pkgs/sqlite3.47.2/compat/sqlite3/sqlite3.c 1970-01-01 00:00:00
+++ a/pkgs/sqlite3.47.2/compat/sqlite3/sqlite3.c 1970-01-01 00:00:00
@@ -26,6 +26,11 @@
# define SQLITE_PRIVATE static
#endif
#define SQLITE_UDL_CAPABLE_PARSER 1
+
+#ifdef __illumos__
+#include <alloca.h>
+#endif
+
/************** Begin file sqliteInt.h ***************************************/
/*
** 2001 September 15
diff -wpruN --no-dereference '--exclude=*.orig' a~/pkgs/sqlite3.47.2/generic/tclsqlite3.c a/pkgs/sqlite3.47.2/generic/tclsqlite3.c
--- a~/pkgs/sqlite3.47.2/generic/tclsqlite3.c 1970-01-01 00:00:00
+++ a/pkgs/sqlite3.47.2/generic/tclsqlite3.c 1970-01-01 00:00:00
@@ -60,6 +60,10 @@
#include <errno.h>
#include "sqlite3Uuid.h"

+#ifdef __illumos__
+#include <alloca.h>
+#endif
+
/*
** Some additional include files are needed if this file is not
** appended to the amalgamation.
25 changes: 12 additions & 13 deletions build/tcl/patches-tcl/makefile.patch
Original file line number Diff line number Diff line change
@@ -3,9 +3,9 @@ man3 and mann).

This patch will not be sent upstream.

diff -wpruN --no-dereference '--exclude=*.orig' a~/Makefile.in a/Makefile.in
--- a~/Makefile.in 1970-01-01 00:00:00
+++ a/Makefile.in 1970-01-01 00:00:00
diff -wpruN --no-dereference '--exclude=*.orig' a~/unix/Makefile.in a/unix/Makefile.in
--- a~/unix/Makefile.in 1970-01-01 00:00:00
+++ a/unix/Makefile.in 1970-01-01 00:00:00
@@ -72,10 +72,10 @@ MAN_INSTALL_DIR = $(INSTALL_ROOT)$(mand
MAN1_INSTALL_DIR = $(MAN_INSTALL_DIR)/man1

@@ -19,16 +19,16 @@ diff -wpruN --no-dereference '--exclude=*.orig' a~/Makefile.in a/Makefile.in

# Path to the html documentation dir:
HTML_DIR = @HTML_DIR@
@@ -286,7 +286,7 @@ CC_SWITCHES = $(STUB_CC_SWITCHES) ${NO_D
@@ -285,7 +285,7 @@ CC_SWITCHES = $(STUB_CC_SWITCHES) -DBUIL

APP_CC_SWITCHES = $(CC_SWITCHES) @EXTRA_APP_CC_SWITCHES@
APP_CC_SWITCHES = $(STUB_CC_SWITCHES) @EXTRA_APP_CC_SWITCHES@

-LIBS = @TCL_LIBS@
+LIBS = @TCL_LIBS@ -lc

DEPEND_SWITCHES = ${CFLAGS} -I${UNIX_DIR} -I${GENERIC_DIR} \
${AC_FLAGS} ${EXTRA_CFLAGS} @EXTRA_CC_SWITCHES@
@@ -1028,7 +1028,7 @@ install-msgs:
@@ -1146,7 +1146,7 @@ install-msgs:
done

install-doc: doc
@@ -37,24 +37,23 @@ diff -wpruN --no-dereference '--exclude=*.orig' a~/Makefile.in a/Makefile.in
if [ ! -d "$$i" ] ; then \
echo "Making directory $$i"; \
$(INSTALL_DATA_DIR) "$$i"; \
@@ -1038,13 +1038,13 @@ install-doc: doc
@@ -1156,13 +1156,13 @@ install-doc: doc
@for i in $(TOP_DIR)/doc/*.1; do \
$(SHELL) $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MAN1_INSTALL_DIR)"; \
done
- @echo "Installing and cross-linking C API (.3) docs to $(MAN3_INSTALL_DIR)/"
- @for i in $(TOP_DIR)/doc/*.3; do \
- $(SHELL) $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MAN3_INSTALL_DIR)"; \
- done
- @echo "Installing and cross-linking command (.n) docs to $(MANN_INSTALL_DIR)/";
- @for i in $(TOP_DIR)/doc/*.n; do \
- $(SHELL) $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MANN_INSTALL_DIR)"; \
+ @echo "Installing and cross-linking C API (.3tcl) docs to $(MAN3TCL_INSTALL_DIR)/"
+ @for i in $(TOP_DIR)/doc/*.3tcl; do \
+ $(SHELL) $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MAN3TCL_INSTALL_DIR)"; \
+ done
done
- @echo "Installing and cross-linking command (.n) docs to $(MANN_INSTALL_DIR)/";
- @for i in $(TOP_DIR)/doc/*.n; do \
- $(SHELL) $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MANN_INSTALL_DIR)"; \
+ @echo "Installing and cross-linking command (.1t) docs to $(MAN1T_INSTALL_DIR)/";
+ @for i in $(TOP_DIR)/doc/*.1t; do \
+ $(SHELL) $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MAN1T_INSTALL_DIR)"; \
done

install-headers:
# Public headers that define Tcl's API
8 changes: 4 additions & 4 deletions build/tcl/patches-tcl/man.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
diff -wpruN --no-dereference '--exclude=*.orig' a~/installManPage a/installManPage
--- a~/installManPage 1970-01-01 00:00:00
+++ a/installManPage 1970-01-01 00:00:00
@@ -87,8 +87,8 @@ fi
diff -wpruN --no-dereference '--exclude=*.orig' a~/unix/installManPage a/unix/installManPage
--- a~/unix/installManPage 1970-01-01 00:00:00
+++ a/unix/installManPage 1970-01-01 00:00:00
@@ -102,8 +102,8 @@ fi

case $ManPage in
*.1) Section=1 ;;
1 change: 1 addition & 0 deletions build/tcl/patches-tcl/series
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
man.patch
makefile.patch
alloca.patch
4 changes: 2 additions & 2 deletions doc/packages.md
Original file line number Diff line number Diff line change
@@ -185,7 +185,7 @@
| ooce/network/znc | 1.9.1 | https://znc.in/releases/ | [omniosorg](https://github.com/omniosorg)
| ooce/ooceapps | github-latest | https://github.com/omniosorg/ooceapps/releases | [omniosorg](https://github.com/omniosorg)
| ooce/print/cups | 2.4.11 | https://github.com/OpenPrinting/cups/releases | [omniosorg](https://github.com/omniosorg)
| ooce/runtime/expect | 5.45.4 | https://sourceforge.net/projects/expect/files/Expect/ | [omniosorg](https://github.com/omniosorg)
| ooce/runtime/expect | 5.45.4.1 | https://wiki.tcl-lang.org/page/Porting+extensions+to+Tcl+9 https://sourceforge.net/projects/expect/files/Expect/ | [omniosorg](https://github.com/omniosorg)
| ooce/runtime/gnu-smalltalk | 3.2.5 | https://ftp.gnu.org/gnu/smalltalk/ | [omniosorg](https://github.com/omniosorg)
| ooce/runtime/groovy-30 | 3.0.21 | https://groovy.apache.org/download.html | [omniosorg](https://github.com/omniosorg)
| ooce/runtime/groovy-40 | 4.0.21 | https://groovy.apache.org/download.html | [omniosorg](https://github.com/omniosorg)
@@ -197,7 +197,7 @@
| ooce/runtime/ruby-32 | 3.2.6 | https://www.ruby-lang.org/en/downloads/ | [omniosorg](https://github.com/omniosorg)
| ooce/runtime/ruby-33 | 3.3.7 | https://www.ruby-lang.org/en/downloads/ | [omniosorg](https://github.com/omniosorg)
| ooce/runtime/ruby-34 | 3.4.1 | https://www.ruby-lang.org/en/downloads/ | [omniosorg](https://github.com/omniosorg)
| ooce/runtime/tcl | 8.6.14 | https://sourceforge.net/projects/tcl/files/Tcl/ https://www.tcl.tk/software/tcltk/download.html | [omniosorg](https://github.com/omniosorg)
| ooce/runtime/tcl | 9.0.1 | https://sourceforge.net/projects/tcl/files/Tcl/ https://www.tcl.tk/software/tcltk/download.html | [omniosorg](https://github.com/omniosorg)
| ooce/security/gnupg | 2.4.7 | https://gnupg.org/download/ | [omniosorg](https://github.com/omniosorg)
| ooce/security/minisign | 0.12 | https://github.com/jedisct1/minisign/releases | [omniosorg](https://github.com/omniosorg)
| ooce/security/oath-toolkit | 2.6.12 | https://download.savannah.nongnu.org/releases/oath-toolkit/ | [omniosorg](https://github.com/omniosorg)
3 changes: 2 additions & 1 deletion lib/config.sh
Original file line number Diff line number Diff line change
@@ -142,7 +142,7 @@ else
fi
BRAICH_REPO=https://pkg.omnios.org/bloody/braich

ARCHIVE_TYPES="tar.zst tar.xz tar.bz2 tar.lz tar.gz tgz tar zip"
ARCHIVE_TYPES="tar.zst tar.xz tar.bz2 tar.lz tar.gz tgz tar zip 7z"

# Default prefix for packages (may be overridden)
PREFIX=/opt/ooce
@@ -232,6 +232,7 @@ GIT=$USRBIN/git
LZIP=$USRBIN/lzip
NAWK=$USRBIN/awk
RSYNC=$USRBIN/rsync
SEVENZ=$USRBIN/7zz
UNZIP=$USRBIN/unzip
WGET=$USRBIN/wget
XZCAT=$USRBIN/xzcat
1 change: 1 addition & 0 deletions lib/functions.sh
Original file line number Diff line number Diff line change
@@ -1559,6 +1559,7 @@ extract_archive() {
*.tar.bz2) $BUNZIP2 -dc $file | $TAR -xvf - $* ;;
*.tar.lz) $LZIP -dc $file | $TAR -xvf - $* ;;
*.tar.gz|*.tgz) $GZIP -dc $file | $TAR -xvf - $* ;;
*.7z) $SEVENZ x $file $* ;;
*.zip) $UNZIP $file $* ;;
*.tar) $TAR -xvf $file $* ;;
# May as well try tar. It's GNU tar which does a fair job at detecting