Index: .fossil-settings/ignore-glob ================================================================== --- .fossil-settings/ignore-glob +++ .fossil-settings/ignore-glob @@ -103,10 +103,37 @@ tls/inst/* tls/out tls/out/* tls/src tls/src/* +tcllib/build +tcllib/build/* +tcllib/build.log +tcllib/inst +tcllib/inst/* +tcllib/out +tcllib/out/* +tcllib/src +tcllib/src/* +udp/build +udp/build/* +udp/build.log +udp/inst +udp/inst/* +udp/out +udp/out/* +udp/src +udp/src/* +yajltcl/build +yajltcl/build/* +yajltcl/build.log +yajltcl/inst +yajltcl/inst/* +yajltcl/out +yajltcl/out/* +yajltcl/src +yajltcl/src/* kitdll/buildsrc/kitdll-0.0/starpack.vfs kitdll/buildsrc/kitdll-0.0/starpack.vfs/* kitdll/buildsrc/kitdll-0.0/test kitdll/buildsrc/kitdll-0.0/configure kitdll/buildsrc/kitdll-0.0/libtcl*.so Index: README ================================================================== --- README +++ README @@ -139,10 +139,15 @@ Additionally, any bundled packages (in the "pkgs" directory) are excluded. This typically includes (as of Tcl 8.6): itcl thread + 10. KC_TCL_STATICPKGS + Set this variable to the value "1" to attempt to force the + packages included in the "pkgs" directory of Tcl 8.6+ + to be compiled statically + Cross compiling Environment Variables: 1. CC C compiler e.g. i686-pc-mingw32-gcc @@ -171,14 +176,19 @@ 1. RC Resource compiler : e.g. i686-pc-mingw32-windres Kitsh Configure Options: - 1. --enable-kit-storage={zip|mk4|auto} + 1. --enable-kit-storage={zip|mk4|cvfs|auto} Specify which type of storage to use with the Tclkit. The default is to auto-detect. Auto-detection uses Mk4 if available and built statically, otherwise it falls back to Zip. + 2. --with-obsfucated-cvfs + Specify that CVFS should be obsfucated. The contents of the + CVFS are encrypted on disk and the encryption key is included + in the executable. Files are then transparently decrypted on + access. -------------------- Using the KitDLL SDK -------------------- When you build a KitDLL, a "libtclkit-sdk-.tar.gz" tarball is also Index: build/make-kit-crosscompile ================================================================== --- build/make-kit-crosscompile +++ build/make-kit-crosscompile @@ -17,6 +17,16 @@ if [ -z "${STRIP}" ]; then STRIP="${CCROOTBIN}/${CROSS}-strip" fi export PATH AR CC CXX RANLIB STRIP +# When cross-compiling Tcl it cannot detect these things and so assumes failure +# This in turn creates linking issues because it will define the replacements +# in the main library and stubs library, which we may both link to +ac_cv_func_memcmp_working=yes +tcl_cv_strstr_unbroken=ok +tcl_cv_strtoul_unbroken=ok +tcl_cv_strtod_unbroken=ok +tcl_cv_strtod_buggy=ok +export ac_cv_func_memcmp_working tcl_cv_strstr_unbroken tcl_cv_strtoul_unbroken tcl_cv_strtod_unbroken tcl_cv_strtod_buggy + ./kitcreator "$@" --host="${CROSS}" ADDED build/make-kit-linux-amd64-static Index: build/make-kit-linux-amd64-static ================================================================== --- build/make-kit-linux-amd64-static +++ build/make-kit-linux-amd64-static @@ -0,0 +1,10 @@ +#! /bin/sh + +CROSS="x86_64-generic-linux-musl" +CC_ADD="-m64" +if ! echo " ${KITCREATOR_PKGS} " | grep ' kitdll ' >/dev/null; then + KC_KITSH_LDFLAGS="${KC_KITSH_FLAGS} -static" +fi +export CROSS CC_ADD KC_KITSH_LDFLAGS + +./build/make-kit-crosscompile "$@" --enable-64bit ADDED build/make-kit-linux-i386-static Index: build/make-kit-linux-i386-static ================================================================== --- build/make-kit-linux-i386-static +++ build/make-kit-linux-i386-static @@ -0,0 +1,10 @@ +#! /bin/sh + +CROSS="x86_64-generic-linux-musl" +CC_ADD='-m32' +if ! echo " ${KITCREATOR_PKGS} " | grep ' kitdll ' >/dev/null; then + KC_KITSH_LDFLAGS="${KC_KITSH_FLAGS} -static" +fi +export CROSS CC_ADD KC_KITSH_LDFLAGS + +./build/make-kit-crosscompile "$@" ADDED build/make-kits Index: build/make-kits ================================================================== --- build/make-kits +++ build/make-kits @@ -0,0 +1,48 @@ +#! /usr/bin/env bash + +versions=(8.5.17 8.6.3) + +for version in ${versions[@]}; do + for includetk in 0 1; do + if [ "${includetk}" = '1' ]; then + unset KITCREATOR_PKGS + + add='' + addurl='' + else + KITCREATOR_PKGS='itcl mk4tcl' + export KITCREATOR_PKGS + + add='sh' + addurl='-notk' + fi + + case "$(hostname)" in + powermacg5.home.rkeene.org) + if [ ! -f "tclkit${add}-${version}-macosx10.5-ix86" ]; then + echo "Building x86_64/ix86 Tclkit${add} version ${version}" + + CXXFLAGS='-arch i386 -arch x86_64 -mmacosx-version-min=10.5' CFLAGS='-arch i386 -arch x86_64 -mmacosx-version-min=10.5' ./kitcreator ${version} --enable-aqua --host=x86_64-apple-darwin9 + mv tclkit-${version} tclkit${add}-${version}-macosx10.5-ix86 + fi + + if [ ! -f "tclkit${add}-${version}-macosx10.5-powerpc" ]; then + echo "Building ppc64/ppc Tclkit${add} version ${version}" + + CXXFLAGS='-arch ppc -arch ppc64 -mmacosx-version-min=10.5' CFLAGS='-arch ppc -arch ppc64 -mmacosx-version-min=10.5' ./kitcreator ${version} --enable-aqua + mv tclkit-${version} tclkit${add}-${version}-macosx10.5-powerpc + fi + ;; + maul) + echo wget -O tclkit${add}-${version}-android-arm http://www.rkeene.org/devel/kitcreator/kitbuild/nightly/tclkit-${version}-android-arm${addurl}-xcompile + echo wget -O tclkit${add}-${version}-linux-mips http://www.rkeene.org/devel/kitcreator/kitbuild/nightly/tclkit-${version}-linux-mipsel${addurl}-xcompile + echo wget -O tclkit${add}-${version}-solaris-sparc http://www.rkeene.org/devel/kitcreator/kitbuild/nightly/tclkit-${version}-solaris-sparc${addurl}-xcompile + echo wget -O tclkit${add}-${version}-solaris-sparc64 http://www.rkeene.org/devel/kitcreator/kitbuild/nightly/tclkit-${version}-solaris-sparc64${addurl}-xcompile + echo wget -O tclkit${add}-${version}-win32-ix86.exe http://www.rkeene.org/devel/kitcreator/kitbuild/nightly/tclkit-${version}-win32-i586${addurl}-xcompile + echo wget -O tclkit${add}-${version}-win32-x86_64.exe http://www.rkeene.org/devel/kitcreator/kitbuild/nightly/tclkit-${version}-win64-amd64${addurl}-xcompile + echo wget -O tclkit${add}-${version}-rhel5-ix86 http://www.rkeene.org/devel/kitcreator/kitbuild/nightly/tclkit-${version}-linux-i386${addurl}-xcompile + echo wget -O tclkit${add}-${version}-rhel5-x86_64 http://www.rkeene.org/devel/kitcreator/kitbuild/nightly/tclkit-${version}-linux-amd64${addurl} + ;; + esac + done +done Index: build/makearch.info ================================================================== --- build/makearch.info +++ build/makearch.info @@ -14,11 +14,11 @@ # each time a "makearch" is done. # # If @@SVNLCR@@ is used anywhere in this version number, it will be # replaced with the highest last-changed-rev from the output of # svn info -R (or 0) -VERS="0.9.0" +VERS="0.9.2" # Space sperated list of documents, if they exist, they will be # prefixed with the contents of the DOC_HDR file and substitution # will occur: # @@UTIL@@ becomes the utility name ${UTIL} Index: build/test/publish-tests ================================================================== --- build/test/publish-tests +++ build/test/publish-tests @@ -158,11 +158,11 @@ if {[file isdirectory $file]} { continue } switch -glob -- $file { - "*.log" - "*.ttml" - "*.html" - "*.desc" - "*-origname" - "*-tclsh" - "*-sdk.tar.gz" - "*.new" { + "*.log" - "*.ttml" - "*.html" - "*.desc" - "*-origname" - "*-tclsh" - "*-sdk.tar.gz" - "*.new" - "*.sha1" { continue } } # Derive what we can from the filename Index: build/test/test ================================================================== --- build/test/test +++ build/test/test @@ -1,8 +1,8 @@ #! /bin/bash -VERSIONS="8.5.15 8.6.2 cvs_HEAD" +VERSIONS="8.5.17 8.6.3 fossil_trunk" # Find the base directory for x in 1 2 3 4 __fail__; do if [ "${x}" = "__fail__" ]; then echo 'Unable to find KitCreator, aborting.' >&2 @@ -438,12 +438,30 @@ if [ "${kitdll}" = "1" ]; then echo "${createdkit}" > "${outputname}-origname" if [ -f "${sdk}" ]; then mv "${sdk}" "${outputname}-sdk.tar.gz" + openssl sha1 "${outputname}-sdk.tar.gz" | sed 's@^.*= @@' > "${outputname}-sdk.tar.gz.sha1" fi fi + + openssl sha1 "${outputname}" | sed 's@^.*= @@' > "${outputname}.sha1" + fi + + # Note the SHA1 has of the file + if [ -f "${outputname}.sha1" ]; then + echo "SHA1: $(cat "${outputname}.sha1")" + else + echo "SHA1: not recorded" + fi + + if [ -f "${outputname}-sdk.tar.gz" ]; then + if [ -f "${outputname}-sdk.tar.gz.sha1" ]; then + echo "SDK SHA1: $(cat "${outputname}-sdk.tar.gz.sha1")" + else + echo "SDK SHA1: not recorded" + fi fi # Test zip status if unzip -l "${outputname}" 2>&1 | grep 'boot\.tcl' >/dev/null; then canunzip="1" Index: build/test/tests/04-version.tcl ================================================================== --- build/test/tests/04-version.tcl +++ build/test/tests/04-version.tcl @@ -2,14 +2,14 @@ set chkversion [lindex $argv 2] # We are unable to make a reasonable determination of the version from a CVS # tag. Assume it's okay. -if {[string match "cvs_*" $chkversion]} { +if {[string match "cvs_*" $chkversion] || [string match "fossil_*" $chkversion]} { exit 0 } if {[info patchlevel] == $chkversion} { exit 0 } exit 1 Index: build/web/building.cgi ================================================================== --- build/web/building.cgi +++ build/web/building.cgi @@ -42,10 +42,17 @@ switch -- $option { "kitdll" { if {$value} { append description ", Built as a Library" } + } + "dynamictk" { + if {$value} { + if {[lsearch -exact $buildinfo(packages) "tk"] != -1} { + append description ", Forced Tk Dynamic Linking" + } + } } "threaded" { if {$value} { append description ", Threaded" } else { @@ -54,10 +61,20 @@ } "debug" { if {$value} { append description ", With Symbols" } + } + "minbuild" { + if {$value} { + append description ", Without Tcl pkgs/ and all encodings" + } + } + "staticlibssl" { + if {$value} { + append description ", Statically linked to LibSSL" + } } "storage" { switch -- $value { "mk4" { append description ", Metakit-based" Index: build/web/kitcreator.vfs/index.rvt ================================================================== --- build/web/kitcreator.vfs/index.rvt +++ build/web/kitcreator.vfs/index.rvt @@ -14,21 +14,26 @@ set kitcreator_version_selected [lindex [lsort -dictionary [array names kitcreator_versions]] end] set kitcreator_versions(trunk) "Fossil Trunk Tip" set tcl_versions(8.5.15) 8.5.15 + set tcl_versions(8.5.16) 8.5.16 + set tcl_versions(8.5.17) 8.5.17 set tcl_versions(8.6.1) 8.6.1 set tcl_versions(8.6.2) 8.6.2 + set tcl_versions(8.6.3) 8.6.3 set tcl_versions(fossil_trunk) "Fossil Trunk Tip" set platforms(android-arm) "Android/ARM" set platforms(freebsd-amd64) "FreeBSD/amd64" set platforms(hpux-hppa64) "HP-UX/PA-RISC 2.0" set platforms(linux-amd64) "Linux/amd64" + set platforms(linux-amd64-static) "Linux/amd64 (static)" set platforms(linux-arm) "Linux/ARM" set platforms(linux-i386) "Linux/i386" - set platforms(linux-mipsel) "Linux/MIPS" + set platforms(linux-i386-static) "Linux/i386 (static)" + set platforms(linux-mipsel) "Linux/MIPS (static)" set platforms(netbsd-amd64) "NetBSD/amd64" set platforms(netbsd-i386) "NetBSD/i386" set platforms(solaris-amd64) "Solaris/amd64" set platforms(solaris-i386) "Solaris/i386" set platforms(solaris-sparc) "Solaris/SPARC" @@ -40,20 +45,26 @@ set packages(mk4tcl) "Metakit" set packages(tcc4tcl) "tcc4tcl" set packages(tls) TLS set packages(dbus) D-BUS set packages(tclx) TclX + set packages(itcl) {[incr Tcl]} + set packages(tcllib) "Tcllib" + set packages(yajltcl) "YAJL-TCL" + set packages(udp) "TclUDP" set disable { - platform linux-mipsel {tk tcc4tcl} - platform android-arm tk - platform netbsd-amd64 {tk tcc4tcl} - platform netbsd-i386 {tk tcc4tcl} - platform solaris-sparc tcc4tcl - platform solaris-sparc64 tcc4tcl - platform hpux-hppa64 tcc4tcl - platform linux-arm tk + platform linux-mipsel {package_tk package_tcc4tcl package_tclx kitdll} + platform android-arm {package_tk package_tclx} + platform netbsd-amd64 {package_tk package_tcc4tcl package_tclx} + platform netbsd-i386 {package_tk package_tcc4tcl package_tclx} + platform solaris-sparc {package_tcc4tcl package_tclx} + platform solaris-sparc64 {package_tcc4tcl package_tclx} + platform hpux-hppa64 {package_tcc4tcl package_tclx} + platform linux-arm {package_tk package_tclx} + platform linux-amd64-static {package_tk package_dbus kitdll} + platform linux-i386-static {package_tk package_dbus kitdll} } set specific { platform win32 file icon {Kit Icon} platform win32 text description {Description} @@ -71,10 +82,12 @@ ## Optional Arguments set build_packages [list] set build_options(threaded) 0 set build_options(kitdll) 0 set build_options(debug) 0 + set build_options(dynamictk) 0 + set build_options(minbuild) 0 foreach arg [array names args] { switch -glob -- $arg { "option_package_*" { set package [join [lrange [split $arg _] 2 end] _] @@ -87,10 +100,19 @@ set build_options(kitdll) 1 } "option_debug" { set build_options(debug) 1 } + "option_dynamictk" { + set build_options(dynamictk) 1 + } + "option_minbuild" { + set build_options(minbuild) 1 + } + "option_staticlibssl" { + set build_options(staticlibssl) 1 + } "option_storage" { switch -- $args($arg) { "mk4" - "zip" - "cvfs" { set build_options(storage) $args($arg) } @@ -204,21 +226,21 @@ ?> KitCreator, Web Interface