Update to 8.6.4.
Discontinue the installation of private header files. Discontinue patching an irrelevant file. Use INSTALL_* as with the other Tcl/Tk ports. Better stripping. Setup Tcl package path at configure time. Cleanup README and adjust for new man.conf. Improved lib/package/module path config/runtime. Skip tests that will always fail due to assumptions that don't hold on OpenBSD. Port improvements for less diff churn on future port updates.
This commit is contained in:
parent
4bf93e9ac6
commit
b167292249
@ -1,11 +1,11 @@
|
||||
# $OpenBSD: Makefile,v 1.12 2014/10/21 05:08:53 stu Exp $
|
||||
# $OpenBSD: Makefile,v 1.13 2015/05/22 04:17:01 stu Exp $
|
||||
|
||||
COMMENT = Tool Command Language
|
||||
|
||||
DISTNAME = tcl8.6.2
|
||||
PKGNAME = tcl-8.6.2
|
||||
REVISION = 0
|
||||
SHARED_LIBS = tcl86 1.1
|
||||
P = 4
|
||||
DISTNAME = tcl8.6.${P}
|
||||
PKGNAME = tcl-8.6.${P}
|
||||
SHARED_LIBS = tcl86 1.2
|
||||
CATEGORIES = lang lang/tcl
|
||||
HOMEPAGE = http://www.tcl.tk/
|
||||
MAINTAINER = Stuart Cassoff <stwo@users.sourceforge.net>
|
||||
@ -16,13 +16,16 @@ PERMIT_PACKAGE_CDROM = Yes
|
||||
WANTLIB = c m pthread z
|
||||
|
||||
MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=tcl/}
|
||||
DISTFILES = tcl-core8.6.2-src.tar.gz
|
||||
DISTFILES = tcl-core8.6.${P}-src.tar.gz
|
||||
|
||||
MAKE_FLAGS += TCL_PACKAGE_PATH='$$(prefix)/lib/tcl' \
|
||||
TCL_LIBRARY='$$(prefix)/lib/tcl/tcl$$(VERSION)'
|
||||
MAKE_FLAGS = TCL_LIBRARY='$$(prefix)/lib/tcl/tcl$$(VERSION)'
|
||||
|
||||
FAKE_FLAGS = INSTALL_PACKAGE_TARGETS='' \
|
||||
CONFIG_INSTALL_DIR='$$(SCRIPT_INSTALL_DIR)'
|
||||
FAKE_FLAGS = INSTALL_DATA_DIR="${INSTALL_DATA_DIR}" \
|
||||
INSTALL_LIBRARY="${INSTALL_DATA}" \
|
||||
INSTALL_DATA="${INSTALL_DATA}" \
|
||||
INSTALL_PROGRAM="${INSTALL_PROGRAM}" \
|
||||
CONFIG_INSTALL_DIR='$$(SCRIPT_INSTALL_DIR)' \
|
||||
INSTALL_PACKAGE_TARGETS=''
|
||||
|
||||
TEST_FLAGS = HOME=${TESTHOME} TESTFLAGS="${TESTFLAGS}"
|
||||
SEPARATE_BUILD = Yes
|
||||
@ -35,30 +38,35 @@ CONFIGURE_ARGS += ${CONFIGURE_SHARED} \
|
||||
--sysconfdir="${SYSCONFDIR}" \
|
||||
--enable-man-symlinks \
|
||||
--disable-rpath \
|
||||
EXTRA_INSTALL="install-private-headers" \
|
||||
SHLIB_VERSION="${LIBtcl86_VERSION}"
|
||||
|
||||
.include <bsd.port.arch.mk>
|
||||
|
||||
ALL_TARGET = binaries
|
||||
|
||||
.if ${NO_SHARED_LIBS:L} == "no"
|
||||
ALL_TARGET = binaries libtcl86.a
|
||||
ALL_TARGET += libtcl86.a
|
||||
CONFIGURE_ARGS += EXTRA_INSTALL_BINARIES='@echo "Installing libtcl86.a to $$(LIB_INSTALL_DIR)/" \
|
||||
&& $$(INSTALL_DATA) libtcl86.a $$(LIB_INSTALL_DIR)/libtcl86.a \
|
||||
&& (cd $$(LIB_INSTALL_DIR) ; $$(RANLIB) libtcl86.a)'
|
||||
.else
|
||||
ALL_TARGET = binaries
|
||||
.endif
|
||||
|
||||
WRKSRC = ${WRKDIST}/unix
|
||||
TEST_TARGET = test-tcl
|
||||
SUBST_VARS += _README_DIR
|
||||
|
||||
TESTHOME = ${WRKDIR}/testhome
|
||||
# Use TESTFLAGS to control the Tcl tests
|
||||
TESTFLAGS =
|
||||
|
||||
# These tests will always fail due to assumptions that don't hold on OpenBSD.
|
||||
# Skip them until they're improved.
|
||||
# fCmd-9.4.b expects to be able to overwrite a read-only directory.
|
||||
# http-4.14 and many socket-14.* expect certain socket errors to occur
|
||||
# later rather than sooner. Bug 2911139.
|
||||
TESTFLAGS += -skip 'fCmd-9.4.b http-4.14 socket-14.*'
|
||||
|
||||
pre-configure:
|
||||
@${SUBST_CMD} ${WRKSRC}/installManPage
|
||||
@${SUBST_CMD} ${WRKDIST}/library/init.tcl
|
||||
|
||||
pre-test:
|
||||
mkdir -p ${TESTHOME}
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (tcl-core8.6.2-src.tar.gz) = jFFC+ydShPdnhGKpWJW4kuZCYKdtX73GkKY2XecrJmc=
|
||||
SIZE (tcl-core8.6.2-src.tar.gz) = 5808780
|
||||
SHA256 (tcl-core8.6.4-src.tar.gz) = Nz6EkGfzMVlHAGDzV0IRD/I7X7oH5C8B+9BlTXqaNx8=
|
||||
SIZE (tcl-core8.6.4-src.tar.gz) = 5813056
|
||||
|
@ -1,18 +1,19 @@
|
||||
$OpenBSD: patch-library_init_tcl,v 1.2 2013/09/22 10:33:12 stu Exp $
|
||||
--- library/init.tcl.orig Tue Sep 3 08:47:31 2013
|
||||
+++ library/init.tcl Sat Sep 7 08:33:19 2013
|
||||
@@ -52,11 +52,14 @@ namespace eval tcl {
|
||||
$OpenBSD: patch-library_init_tcl,v 1.3 2015/05/22 04:17:01 stu Exp $
|
||||
--- library/init.tcl.orig Thu Feb 26 11:58:16 2015
|
||||
+++ library/init.tcl Mon Apr 6 03:54:27 2015
|
||||
@@ -52,9 +52,14 @@ namespace eval tcl {
|
||||
lappend ::auto_path $Dir
|
||||
}
|
||||
}
|
||||
+# OpenBSD layout
|
||||
+if {0} {
|
||||
+
|
||||
+# OpenBSD layout.
|
||||
+# Tcl extensions shouldn't be installed in ${LOCALBASE}/lib.
|
||||
+# Don't add ${LOCALBASE}/lib to the auto_path.
|
||||
+
|
||||
set Dir [file join [file dirname [file dirname \
|
||||
[info nameofexecutable]]] lib]
|
||||
if {$Dir ni $::auto_path} {
|
||||
- if {$Dir ni $::auto_path} {
|
||||
+ if {$Dir ne {${LOCALBASE}/lib} && $Dir ni $::auto_path} {
|
||||
lappend ::auto_path $Dir
|
||||
}
|
||||
+}
|
||||
catch {
|
||||
foreach Dir $::tcl_pkgPath {
|
||||
if {$Dir ni $::auto_path} {
|
||||
|
@ -1,12 +0,0 @@
|
||||
$OpenBSD: patch-tools_installData_tcl,v 1.1.1.1 2013/02/02 11:15:01 stu Exp $
|
||||
--- tools/installData.tcl.orig Tue May 31 11:03:47 2011
|
||||
+++ tools/installData.tcl Wed Oct 5 01:55:14 2011
|
||||
@@ -32,7 +32,7 @@ proc copyDir {d1 d2} {
|
||||
} elseif {[file isfile $f]} {
|
||||
file copy -force $f [file join $d2 $ftail]
|
||||
if {$::tcl_platform(platform) eq {unix}} {
|
||||
- file attributes [file join $d2 $ftail] -permissions 0644
|
||||
+ file attributes [file join $d2 $ftail] -permissions 0444
|
||||
} else {
|
||||
file attributes [file join $d2 $ftail] -readonly 1
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
$OpenBSD: patch-unix_Makefile_in,v 1.4 2014/10/21 05:08:53 stu Exp $
|
||||
--- unix/Makefile.in.orig Mon Jul 28 11:58:05 2014
|
||||
+++ unix/Makefile.in Sat Aug 16 18:21:09 2014
|
||||
@@ -632,6 +632,10 @@ ${STUB_LIB_FILE}: ${STUB_LIB_OBJS}
|
||||
$OpenBSD: patch-unix_Makefile_in,v 1.5 2015/05/22 04:17:01 stu Exp $
|
||||
--- unix/Makefile.in.orig Fri Oct 24 16:39:18 2014
|
||||
+++ unix/Makefile.in Sat Oct 25 19:11:21 2014
|
||||
@@ -633,6 +633,10 @@ ${STUB_LIB_FILE}: ${STUB_LIB_OBJS}
|
||||
rm -f $@
|
||||
@MAKE_STUB_LIB@
|
||||
|
||||
@ -12,7 +12,7 @@ $OpenBSD: patch-unix_Makefile_in,v 1.4 2014/10/21 05:08:53 stu Exp $
|
||||
# Make target which outputs the list of the .o contained in the Tcl lib useful
|
||||
# to build a single big shared library containing Tcl and other extensions.
|
||||
# Used for the Tcl Plugin. -- dl
|
||||
@@ -798,7 +802,6 @@ install-binaries: binaries
|
||||
@@ -799,7 +803,6 @@ install-binaries: binaries
|
||||
done;
|
||||
@echo "Installing $(LIB_FILE) to $(DLL_INSTALL_DIR)/"
|
||||
@@INSTALL_LIB@
|
||||
@ -20,7 +20,7 @@ $OpenBSD: patch-unix_Makefile_in,v 1.4 2014/10/21 05:08:53 stu Exp $
|
||||
@echo "Installing ${TCL_EXE} as $(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}"
|
||||
@$(INSTALL_PROGRAM) ${TCL_EXE} "$(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}"
|
||||
@echo "Installing tclConfig.sh to $(CONFIG_INSTALL_DIR)/"
|
||||
@@ -813,7 +816,7 @@ install-binaries: binaries
|
||||
@@ -814,7 +817,7 @@ install-binaries: binaries
|
||||
@EXTRA_INSTALL_BINARIES@
|
||||
@echo "Installing pkg-config file to $(LIB_INSTALL_DIR)/pkgconfig/"
|
||||
@$(INSTALL_DATA_DIR) $(LIB_INSTALL_DIR)/pkgconfig
|
||||
@ -29,7 +29,7 @@ $OpenBSD: patch-unix_Makefile_in,v 1.4 2014/10/21 05:08:53 stu Exp $
|
||||
|
||||
install-libraries: libraries
|
||||
@for i in "$(SCRIPT_INSTALL_DIR)"; \
|
||||
@@ -824,7 +827,7 @@ install-libraries: libraries
|
||||
@@ -825,7 +828,7 @@ install-libraries: libraries
|
||||
else true; \
|
||||
fi; \
|
||||
done;
|
||||
@ -38,7 +38,7 @@ $OpenBSD: patch-unix_Makefile_in,v 1.4 2014/10/21 05:08:53 stu Exp $
|
||||
do \
|
||||
if [ ! -d "$(SCRIPT_INSTALL_DIR)"/$$i ] ; then \
|
||||
echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \
|
||||
@@ -844,21 +847,21 @@ install-libraries: libraries
|
||||
@@ -845,21 +848,21 @@ install-libraries: libraries
|
||||
$(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)"/http1.0; \
|
||||
done;
|
||||
@echo "Installing package http 2.8.8 as a Tcl Module";
|
||||
|
15
lang/tcl/8.6/patches/patch-unix_configure
Normal file
15
lang/tcl/8.6/patches/patch-unix_configure
Normal file
@ -0,0 +1,15 @@
|
||||
$OpenBSD: patch-unix_configure,v 1.3 2015/05/22 04:17:01 stu Exp $
|
||||
|
||||
Setting this here will allow it to propagate through everything.
|
||||
|
||||
--- unix/configure.orig Mon Apr 6 20:35:14 2015
|
||||
+++ unix/configure Mon Apr 6 20:35:36 2015
|
||||
@@ -19207,7 +19207,7 @@ if test "$FRAMEWORK_BUILD" = "1" ; then
|
||||
elif test "$prefix/lib" != "$libdir"; then
|
||||
TCL_PACKAGE_PATH="${libdir} ${prefix}/lib ${TCL_PACKAGE_PATH}"
|
||||
else
|
||||
- TCL_PACKAGE_PATH="${prefix}/lib ${TCL_PACKAGE_PATH}"
|
||||
+ TCL_PACKAGE_PATH="${prefix}/lib/tcl"
|
||||
fi
|
||||
|
||||
#--------------------------------------------------------------------
|
@ -1,4 +1,4 @@
|
||||
@comment $OpenBSD: PLIST,v 1.6 2014/10/21 05:08:53 stu Exp $
|
||||
@comment $OpenBSD: PLIST,v 1.7 2015/05/22 04:17:01 stu Exp $
|
||||
@option no-default-conflict
|
||||
@conflict tcl->=8.6,<8.7
|
||||
%%SHARED%%
|
||||
@ -6,18 +6,11 @@
|
||||
include/tcl8.6/
|
||||
include/tcl8.6/tcl.h
|
||||
include/tcl8.6/tclDecls.h
|
||||
include/tcl8.6/tclInt.h
|
||||
include/tcl8.6/tclIntDecls.h
|
||||
include/tcl8.6/tclIntPlatDecls.h
|
||||
include/tcl8.6/tclOO.h
|
||||
include/tcl8.6/tclOODecls.h
|
||||
include/tcl8.6/tclOOInt.h
|
||||
include/tcl8.6/tclOOIntDecls.h
|
||||
include/tcl8.6/tclPlatDecls.h
|
||||
include/tcl8.6/tclPort.h
|
||||
include/tcl8.6/tclTomMath.h
|
||||
include/tcl8.6/tclTomMathDecls.h
|
||||
include/tcl8.6/tclUnixPort.h
|
||||
lib/libtcl86.a
|
||||
@lib lib/libtcl86.so.${LIBtcl86_VERSION}
|
||||
lib/libtclstub86.a
|
||||
|
@ -1,4 +1,4 @@
|
||||
$OpenBSD: README,v 1.3 2014/01/11 12:56:41 ajacoutot Exp $
|
||||
$OpenBSD: README,v 1.4 2015/05/22 04:17:01 stu Exp $
|
||||
|
||||
+-----------------------------------------------------------------------
|
||||
| Running ${FULLPKGNAME} on OpenBSD
|
||||
@ -8,24 +8,20 @@ The OpenBSD port of the Tcl dynamic language was designed to balance
|
||||
deriving the maximum value from the original software while keeping
|
||||
any modifications to a minimum.
|
||||
|
||||
This document describes these differences and includes a handy guide
|
||||
and patch for adding Tcl and Tk to /etc/man.conf.
|
||||
|
||||
Principally, the original install locations have been altered to enable
|
||||
Install locations and file names differ from the default to enable
|
||||
installing multiple versions of Tcl and Tk on OpenBSD without conflict.
|
||||
|
||||
Tclsh and Wish
|
||||
==============
|
||||
Tclsh and wish are installed as tclsh8.6 and wish8.6, respectively.
|
||||
Many Tcl programs expect to find tclsh or wish. They will have to be
|
||||
modified to launch the correct shell or links tclsh and wish may be
|
||||
created which point to tclsh8.6 and wish8.6, respectively. These links
|
||||
may have already been created by the system administrator. It is of
|
||||
course also possible to create one's own links.
|
||||
|
||||
Files and Directories
|
||||
=====================
|
||||
|
||||
Tclsh and Wish
|
||||
--------------
|
||||
normally
|
||||
${TRUEPREFIX}/lib/tclsh, ${TRUEPREFIX}/lib/wish
|
||||
now
|
||||
${TRUEPREFIX}/lib/tclsh8.6, ${TRUEPREFIX}/lib/wish8.6
|
||||
|
||||
Library files
|
||||
-------------
|
||||
scripts, encoding files, etc.
|
||||
@ -56,7 +52,7 @@ Manual Pages
|
||||
normally in
|
||||
${TRUEPREFIX}/man
|
||||
now in
|
||||
${TRUEPREFIX}/lib/tcl8.6/man, ${TRUEPREFIX}/lib/tk8.6/man
|
||||
${TRUEPREFIX}/lib/tcl/tcl8.6/man, ${TRUEPREFIX}/lib/tcl/tk8.6/man
|
||||
|
||||
Demos
|
||||
-----
|
||||
@ -72,40 +68,29 @@ Bundled Tcl Modules
|
||||
normally in
|
||||
${TRUEPREFIX}/lib/tcl8/...
|
||||
now in
|
||||
${TRUEPREFIX}/lib/tcl/tcl8.6/modules/...
|
||||
${TRUEPREFIX}/lib/tcl/tcl8.6/modules
|
||||
|
||||
Tcl Module Paths
|
||||
----------------
|
||||
normally
|
||||
${TRUEPREFIX}/lib/tcl8/...
|
||||
now
|
||||
${TRUEPREFIX}/lib/tcl/modules/...
|
||||
|
||||
Additional Header Files
|
||||
-----------------------
|
||||
Additional ('private') header files are installed
|
||||
in ${TRUEPREFIX}/include/tcl8.6 and ${TRUEPREFIX}/include/tk8.6.
|
||||
${TRUEPREFIX}/lib/tcl/modules/{85,86}
|
||||
|
||||
Libraries
|
||||
=========
|
||||
On architectures that support shared libraries, additional static
|
||||
libraries (libtcl86.a, libtk86.a) are built from the -fPIC compiled
|
||||
libraries (libtcl86.a, libtk86.a) are built from the pic-compiled
|
||||
object (.o) files. A symbolic link from any lib.a to lib_pic.a
|
||||
is created in order to satisfy libtool.
|
||||
|
||||
Manual Page Configuration
|
||||
=========================
|
||||
Changes to /etc/man.conf are required so that OpenBSD's man(1) and
|
||||
related commands can find the Tcl and Tk manual pages.
|
||||
Adding the following lines to /etc/man.conf wil enable man(1)
|
||||
and related commands can find the Tcl and Tk manual pages.
|
||||
|
||||
Additional _whatdb entries are needed which point to the Tcl and Tk
|
||||
whatis.db files. The Tcl and Tk manual page directories need to be
|
||||
added to the _default and n sections. Additional sections tcl and tk
|
||||
point to the Tcl and Tk manual page directories.
|
||||
|
||||
Following this text is a patch (with instructions) that will perform
|
||||
the aforementioned changes on an unmodified /etc/man.conf.
|
||||
If not used directly it can serve as a guide.
|
||||
manpath ${TRUEPREFIX}/lib/tcl/tcl8.6/man
|
||||
manpath ${TRUEPREFIX}/lib/tcl/tk8.6/man
|
||||
|
||||
Tcl/Tk Resources
|
||||
================
|
||||
@ -115,48 +100,3 @@ Tutorial: http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html
|
||||
Wikibook: http://en.wikibooks.org/wiki/Programming:Tcl
|
||||
Book: Practical Programming in Tcl and Tk, 4th Edition
|
||||
ISBN: 0-13-038560-3
|
||||
|
||||
Patch to add Tcl and Tk to /etc/man.conf
|
||||
========================================
|
||||
Run:
|
||||
$ patch -o man.conf.new /etc/man.conf ${_README_DIR}/${FULLPKGNAME}
|
||||
Examine and install as /etc/man.conf if it appeases you.
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
_whatdb /usr/share/man/whatis.db
|
||||
_whatdb /usr/local/man/whatis.db
|
||||
_whatdb /usr/X11R6/man/whatis.db
|
||||
+_whatdb /usr/local/lib/tcl/tcl8.6/man/whatis.db
|
||||
+_whatdb /usr/local/lib/tcl/tk8.6/man/whatis.db
|
||||
|
||||
# Subdirectories for paths ending in '/', IN SEARCH ORDER.
|
||||
_subdir {cat,man}1 {cat,man}8 {cat,man}6 {cat,man}2 {cat,man}3 {cat,man}5 {cat,man}7 {cat,man}4 {cat,man}9 {cat,man}3p {cat,man}3f {cat,man}n
|
||||
@@ -31,17 +33,19 @@
|
||||
# directory with all of the subdirectories listed for the keyword _subdir.
|
||||
|
||||
# default
|
||||
-_default /usr/{share,X11R6,local,ports/infrastructure}/man/
|
||||
+_default /usr/{share,X11R6,local,local/lib/tcl/{tcl,tk}8.6,ports/infrastructure}/man/
|
||||
|
||||
# Other sections that represent complete man subdirectories.
|
||||
X11 /usr/X11R6/man/
|
||||
X11R6 /usr/X11R6/man/
|
||||
local /usr/local/man/
|
||||
+tcl /usr/local/lib/tcl/tcl8.6/man/
|
||||
+tk /usr/local/lib/tcl/tk8.6/man/
|
||||
|
||||
# Specific section/directory combinations.
|
||||
-1 /usr/{share,X11R6,local}/man/{cat,man}1
|
||||
+1 /usr/{share,X11R6,local,local/lib/tcl/{tcl,tk}8.6}/man/{cat,man}1
|
||||
2 /usr/{share,X11R6,local}/man/{cat,man}2
|
||||
-3 /usr/{share,X11R6,local}/man/{cat,man}3
|
||||
+3 /usr/{share,X11R6,local,local/lib/tcl/{tcl,tk}8.6}/man/{cat,man}3
|
||||
3F /usr/local/man/{cat,man}3f
|
||||
3f /usr/local/man/{cat,man}3f
|
||||
3P /usr/{share,local}/man/{cat,man}3p
|
||||
@@ -52,4 +56,4 @@
|
||||
7 /usr/{share,X11R6,local}/man/{cat,man}7
|
||||
8 /usr/{share,X11R6,local}/man/{cat,man}8
|
||||
9 /usr/share/man/{cat,man}9
|
||||
-n /usr/local/man/{cat,man}n
|
||||
+n /usr/{local,local/lib/tcl/{tcl,tk}8.6}/man/{cat,man}n
|
||||
|
Loading…
Reference in New Issue
Block a user