Installing Wt on Slackware¶
- Table of contents
- Installing Wt on Slackware
By Miguel Suarez Xavier Penteado miguel_penteado@fca.unesp.br
(sorry by poor english)
In slackware 12 we have not in default installation
- boost library
- asio library _*' ---(no asio stand alone and no boost asio)---
- mxml
- fastcgi lib
- fastcgi apache mod
- ICU
- mysql
- wt
Then, we need build each previous packages and install it before try compile witty.
Slackare 12 use slackbuilds to build packges, so we will put here the slackbuilds for packages above
Remember all packets will be generated in /tmp directory
boost 1.34.1 Slackbuild¶
Before you ctr+c the follow boost.Slackbuild, you need to create the patch files used by script in same dir where you will save boost.Slackbuild.
boost_bjam-gcc42_mod.patch
Index: tools/jam/src/build.sh --- tools/jam/src/build.sh.orig 2006-02-03 17:57:42 +0100 +++ tools/jam/src/build.sh 2007-06-17 13:54:31 +0200 @@ -127,7 +127,7 @@ ;; gcc) - BOOST_JAM_CC=gcc + BOOST_JAM_CC="gcc -O0" ;; darwin) Index: tools/jam/src/build.jam --- tools/jam/src/build.jam.orig 2007-06-17 14:07:34 +0200 +++ tools/jam/src/build.jam 2007-06-17 14:08:21 +0200 @@ -153,7 +153,7 @@ ## GCC 2.x, 3.x, 4.x toolset gcc gcc : "-o " : -D : -pedantic - [ opt --release : [ opt --symbols : -g : -s ] -O3 ] + [ opt --release : [ opt --symbols : -g : -s ] -O0 ] [ opt --debug : -g -O0 -fno-inline ] -I$(--python-include) -Wno-long-long : -L$(--python-lib[1]) -l$(--python-lib[2]) ;
boost-configure.patch
*** configure.orig 2007-01-16 01:39:00.000000000 +0100 --- configure 2007-01-19 03:53:08.000000000 +0100 *************** *** 9,15 **** BJAM="" TOOLSET="" ! BJAM_CONFIG="" BUILD="" PREFIX=/usr/local EPREFIX= --- 9,15 ---- BJAM="" TOOLSET="" ! BJAM_CONFIG="-d2 --layout=system variant=release debug-symbols=on" BUILD="" PREFIX=/usr/local EPREFIX= *************** INCLUDEDIR=$INCLUDEDIR *** 325,332 **** LIBS=$LIBS all: .dummy ! @echo "\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS)" ! @\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS) || \\ echo "Not all Boost libraries built properly." clean: .dummy --- 325,332 ---- LIBS=$LIBS all: .dummy ! @echo "\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS) stage" ! @\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS) stage || \\ echo "Not all Boost libraries built properly." clean: .dummy
boost-gcc-soname.patch
*** tools/build/v2/tools/gcc.jam.orig 2007-05-03 08:09:04.000000000 +0200 --- tools/build/v2/tools/gcc.jam 2007-06-26 20:37:44.000000000 +0200 *************** if [ os.name ] != NT && [ os.name ] != O *** 316,322 **** # expected, therefore it has been disabled. HAVE_SONAME = "" ; ! SONAME_OPTION = -h ; } --- 316,323 ---- # expected, therefore it has been disabled. HAVE_SONAME = "" ; ! SONAME_OPTION = -soname ; ! SONAME_VERSION = 3 ; } *************** rule link.dll ( targets * : sources * : *** 631,637 **** # Differ from 'link' above only by -shared. actions link.dll bind LIBRARIES { ! "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) } # Set up threading support. It's somewhat contrived, so perform it at the end, --- 632,638 ---- # Differ from 'link' above only by -shared. actions link.dll bind LIBRARIES { ! "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=).$(SONAME_VERSION) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) } # Set up threading support. It's somewhat contrived, so perform it at the end,
boost-use-rpm-optflags.patch
*** tools/build/v2/tools/gcc.jam.orig 2007-08-01 01:17:16.000000000 -0500 --- tools/build/v2/tools/gcc.jam 2007-08-01 01:17:46.000000000 -0500 *************** flags gcc.compile PCH_FILE <pch>on : <pc *** 268,274 **** # Declare flags and action for compilation flags gcc.compile OPTIONS <optimization>off : -O0 ; ! flags gcc.compile OPTIONS <optimization>speed : -O3 ; flags gcc.compile OPTIONS <optimization>space : -Os ; flags gcc.compile OPTIONS <inlining>off : -fno-inline ; --- 268,274 ---- # Declare flags and action for compilation flags gcc.compile OPTIONS <optimization>off : -O0 ; ! flags gcc.compile OPTIONS <optimization>speed : "$RPM_OPT_FLAGS" ; flags gcc.compile OPTIONS <optimization>space : -Os ; flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
Now you need download im place where you put patches ( and will put boost.Slackbuild ) the sorces used by scripts of corse. If you to read boost.script , will see script uses two files in build process:
boost_asio on http://sourceforge.net/project/showfiles.php?group_id=122478 or if you prefer directly on
http://easynews.dl.sourceforge.net/sourceforge/asio/asio-0.3.8rc3.tar.gz
Adobe GPL GIL (just for enhace your boost lib) on http://opensource.adobe.com/gil/download.html or directly on http://opensource.adobe.com/gil/gil.tar.gz
finily _' boost 1.34.1 _' on http://sourceforge.net/project/showfiles.php?group_id=7586 or directly on
http://easynews.dl.sourceforge.net/sourceforge/boost/boost_1_34_1.tar.bz2
(boost.Slackbuild will compile your bjam ARGH!! (a ./configure like autotool system) ) in your system , and you will not need download bjam binary.
This Slackbuild is based on boost.SlackBuild,v 1.6 2007/09/04 of Eric Hameleers <alien@slackware.com>
and boost.spec from boost-1.34.0-2.el5.src.rpm from Red Hat Enterprise linux
boost.Slackbuild
#!/bin/sh # $Id: boost.SlackBuild,v 1.6 2007/09/04 23:08:43 root Exp root $ # Copyright (c) 2007 Eric Hameleers <alien@slackware.com> # All rights reserved. # # Permission to use, copy, modify, and distribute this software for # any purpose with or without fee is hereby granted, provided that # the above copyright notice and this permission notice appear in all # copies. # # THIS SOFTWARE IS PROVIDED ``AS IS*_ AND ANY EXPRESSED OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # Slackware SlackBuild script # =========================== # By: Eric Hameleers <alien@slackware.com> # For: boost # Descr: collection of portable C++ source libraries # URL: http://www.boost.org/ # Needs: # Changelog: # 1.34.1-1 01/10/2007 by Miguel Suarez Xavier Penteado <miguel_penteado@fca.unesp.br> # 1.33.1-1: 23/Dec/2006 by Eric Hameleers <alien@slackware.com> # * Initial build. # 1.34.0-1: 04/Sep/2007 by Eric Hameleers <alien@slackware.com> # * Update, Slackware 12.0 package. # # Run 'sh boost.SlackBuild --cleanup' to build a Slackware package. # The package (.tgz) plus descriptive .txt file are created in /tmp . # Install using 'installpkg'. # # Set initial variables: echo "Setting variables ..." echo "Setando variaveis ..." PRGNAM=boost VERSION=${VERSION:-1.34.1} SRCVER=$(echo ${VERSION} | tr '.' '_') ARCH=${ARCH:-i486} BUILD=${BUILD:-1} # This is the python we build against: PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]') PYTHON_FLAGS="-sPYTHON_ROOT=/usr -sPYTHON_VERSION=$PYTHON_VERSION" DOCS="README LICENSE_1_0.txt people wiki" # Where do we look for sources? CWD=$(pwd) SRCDIR=$(dirname $0) [ "${SRCDIR:0:1}" == "." ] && SRCDIR=${CWD}/${SRCDIR} # Place to build (TMP) package (PKG) and output (OUTPUT) the program: TMP=${TMP:-/tmp/build} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} ################################################################################### ASIO=boost_asio VER_ASIO="0_3_8rc3" SOURCE_ASIO="$SRCDIR/${ASIO}_${VER_ASIO}.tar.gz" PKG_ASIO=$TMP/package-$ASIO ################################################################################### ################################################################################### GIL=gil VER_GIL="2.1.1" SOURCE_GIL="$SRCDIR/${GIL}-${VER_GIL}.tar.gz" PKG_GIL=$TMP/package-$GIL ################################################################################### # Input URL: http://dl.sourceforge.net/boost/boost_1_34_1.tar.gz SOURCE="$SRCDIR/${PRGNAM}_${SRCVER}.tar.gz" SRCURL="http://dl.sourceforge.net/${PRGNAM}/${PRGNAM}_${SRCVER}.tar.gz" # Exit the script on errors: set -e trap 'echo "$0 FAILED at line $LINENO!" | tee $OUTPUT/error-${PRGNAM}.log' ERR # Catch unitialized variables: set -u P1=${1:-1} echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"Setando a vers~ao de gcc para 3.3.x ou 4.2.x" ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;32;40m' # Slackware 11 and up need other option (gcc > 3.3.x) if [ $(gcc -dumpversion | tr -d '.' |cut -c 1-2) -gt 33 ]; then MOPT=tune else MOPT=cpu fi case "$ARCH" in i386) SLKCFLAGS="-O2 -march=i386 -m${MOPT}=i686" SLKLDFLAGS=""; LIBDIRSUFFIX="" ;; i486) SLKCFLAGS="-O2 -march=i486 -m${MOPT}=i686" SLKLDFLAGS=""; LIBDIRSUFFIX="" ;; s390) SLKCFLAGS="-O2" SLKLDFLAGS=""; LIBDIRSUFFIX="" ;; powerpc) SLKCFLAGS="-O2" SLKLDFLAGS=""; LIBDIRSUFFIX="" ;; x86_64) SLKCFLAGS="-O2 -fPIC" SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" ;; athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" ;; esac # Create working directories: mkdir -p $TMP/tmp-$PRGNAM # location to build the source rm -rf $TMP/tmp-$PRGNAM/* # By default we remove the remnants of previous build mkdir -p $PKG # place for the package to be built rm -rf $PKG/* # We always erase old package's contents: mkdir -p $OUTPUT # place for the package to be saved # Source file availability: if ! [ -f ${SOURCE} ]; then if ! [ "x${SRCURL}" == "x" ]; then # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)" echo "Source '$(basename ${SOURCE})' not available yet..." echo "Will download file to $(dirname $SOURCE)" wget -nv --connect-timeout=30 -O "${SOURCE}" "${SRCURL}" || true if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then echo "Downloading '$(basename ${SOURCE})' failed... aborting the build." mv -f "${SOURCE}" "${SOURCE}".FAIL exit 1 fi else echo "File '$(basename ${SOURCE})' not available... aborting the build." exit 1 fi fi if [ "$P1" == "--download" ]; then echo "Download complete." exit 0 fi ################################################################################################# # --- PACKAGE BUILDING --- echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"extraindo arquivos" ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;36;40m' echo "++=================" echo "|| $PRGNAM-$VERSION" echo "++=================" cd $TMP/tmp-$PRGNAM echo "Extracting the source archive(s) for $PRGNAM..." if $(file ${SOURCE} | grep -q ": bzip2"); then tar -xjvf ${SOURCE} elif $(file ${SOURCE} | grep -q ": gzip"); then tar -xzvf ${SOURCE} fi mv ${PRGNAM}_${SRCVER} ${PRGNAM}-${VERSION} cd ${PRGNAM}-${VERSION} BUILD_DIR_BOOST=`pwd` chown -R root:root . chmod -R u+w,go+r-w,a-s . ################################################################################################# mkdir -p $TMP/tmp-$ASIO # location to build the source rm -rf $TMP/tmp-$ASIO/* # By default we remove the remnants of previous build cd $TMP/tmp-$ASIO echo "Extracting the SOURCE_ASIO archive(s) for $ASIO..." if $(file ${SOURCE_ASIO} | grep -q ": bzip2"); then tar -xjvf ${SOURCE_ASIO} elif $(file ${SOURCE_ASIO} | grep -q ": gzip"); then tar -xzvf ${SOURCE_ASIO} fi mv ${ASIO}_${VER_ASIO} ${ASIO}-${VER_ASIO} cd ${ASIO}-${VER_ASIO} chown -R root:root . chmod -R u+w,go+r-w,a-s . cp -a boost/ $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION} cp -a libs/ $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION} ################################################################################################# ################################################################################################# mkdir -p $TMP/tmp-$GIL # location to build the source rm -rf $TMP/tmp-$GIL/* # By default we remove the remnants of previous build cd $TMP/tmp-$GIL echo "Extracting the SOURCE_GIL archive(s) for $GIL..." if $(file ${SOURCE_GIL} | grep -q ": bzip2"); then tar -xjvf ${SOURCE_GIL} elif $(file ${SOURCE_GIL} | grep -q ": gzip"); then tar -xzvf ${SOURCE_GIL} fi cd ${GIL}-${VER_GIL} chown -R root:root . chmod -R u+w,go+r-w,a-s . cp -a boost/ $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION} cp -a libs/ $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION} ################################################################################################# cd $BUILD_DIR_BOOST echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"aplicando o patch para gcc 4.2.x " ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;32;40m' cp -a $CWD/boost_bjam-gcc42_mod.patch $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}/ patch -p0 < boost_bjam-gcc42_mod.patch # echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; # echo -e '\E[01;33;40m'"aplicando o patch para Thread " ;tput sgr0; # echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; # echo -e '\E[01;32;40m' # # cp -a $CWD/boost-thread.patch $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}/ # # patch -p0 < boost-thread.patch echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"aplicando o patch para Configure " ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;32;40m' cp -a $CWD/boost-configure.patch $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}/ patch -p0 < boost-configure.patch echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"aplicando o patch para boost-gcc-soname.patch " ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;32;40m' cp -a $CWD/boost-gcc-soname.patch $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}/ patch -p0 < boost-gcc-soname.patch echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"aplicando o patch para boost-use-rpm-optflags.patch " ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;32;40m' cp -a $CWD/boost-use-rpm-optflags.patch $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}/ patch -p0 < boost-use-rpm-optflags.patch echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"Construindo BJAM " ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;36;40m' echo Building ... export LDFLAGS="$SLKLDFLAGS" export CFLAGS="$SLKCFLAGS" export CXXFLAGS="$SLKCFLAGS" BOOST_ROOT=`pwd` staged_dir=stage export BOOST_ROOT # First build bjam, the boost build system: ( cd tools/jam/src ./build.sh gcc 2>&1 | tee $OUTPUT/make-${PRGNAM}.log ) || exit $? BJAM=$(find tools/jam/src/ -name bjam -a -type f) # Create build subdirectory mkdir -p obj echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"Configure " ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;32;40m' #"-sBUILD=<optimization>speed <runtime-link>shared <runtime-link>static <inlining>full <threading>single/multi " # Next, we build boost using bjam echo "Building boost now..." $BJAM \ release \ "-d2 -sBUILD= <runtime-link>shared <threading>multi " \ "-sNO_COMPRESSION=0" "-sZLIB_INCLUDE=/usr/include" "-sZLIB_LIBPATH=/usr/lib" \ "-sBZIP2_INCLUDE=/usr/include" "-sBZIP2_LIBPATH=/usr/lib" \ --toolset=gcc --layout=system --builddir=obj \ --prefix=/usr \ $PYTHON_FLAGS \ stage \ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log # ./configure \ # --with-bjam=$BJAM \ # --with-toolset=gcc \ # --prefix=/usr \ # --with-libraries=all \ # --with-python=/usr/bin/python \ # --with-python-root=/usr \ # --with-python-version=$PYTHON_VERSION # #--with-icu \ # #--with-icu=DIR \ echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"Construindo boost " ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m' # make all echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"Instalando o boost em `pwd` " ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;34;40m' echo "Installing boost now..." $BJAM \ release \ --toolset=gcc --layout=system --link=shared --builddir=obj \ --prefix=$PKG/usr \ $PYTHON_FLAGS \ install \ 2>&1 | tee $OUTPUT/install-${PRGNAM}.log # And then install boost.. mkdir -p $PKG/usr/{bin,lib,include} mkdir -p $PKG/usr/share/${PRGNAM}-${VERSION} cp -a $BJAM $PKG/usr/bin #install lib for i in `find stage -type f -name \*.a`; do NAME=`basename $i`; install -p -m 0644 $i $PKG/usr/lib/$NAME; done; for i in `find stage -type f -name \*.so`; do NAME=$i; SONAME=$i.3; VNAME=$i.${VERSION}; base=`basename $i`; NAMEbase=$base; SONAMEbase=$base.3; VNAMEbase=$base.${VERSION}; mv $i $VNAME; ln -s $VNAMEbase $SONAME; ln -s $VNAMEbase $NAME; install -p -m 755 $VNAME $PKG/usr/lib/$VNAMEbase; mv $SONAME $PKG/usr/lib/$SONAMEbase; mv $NAME $PKG/usr/lib/$NAMEbase; done; ## Move incorrectly installed include files if [ -d $PKG/usr/include/${PRGNAM}-${VERSION} ]; then echo -e '\E[01;33;40m'"Movendo os Includes boost para $PKG/usr/include/ " ;tput sgr0; echo -e '\E[01;34;40m' mv $PKG/usr/include/${PRGNAM}-${VERSION}/boost $PKG/usr/include/ rmdir $PKG/usr/include/${PRGNAM}-${VERSION} fi # Add documentation: mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* # Strip binaries: cd $PKG find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true cd - # Add a package description: mkdir -p $PKG/install cat $SRCDIR/slack-desc > $PKG/install/slack-desc if [ -f $SRCDIR/doinst.sh ]; then cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh fi # Build the package: cd $PKG makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log cd $OUTPUT md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz.md5 cd - cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txt # Clean up the extra stuff: if [ "$P1" = "--cleanup" ]; then rm -rf $TMP/tmp-$PRGNAM rm -rf $PKG fi tput sgr0;
asio 0.3.7 standalone library Slackbuild¶
Next step: we will patch and compile asio-0.3.7.tar.gz . Use asio 0.3.7 version , is working.
#Patch asio-0.3.7 standalone
asio_openssl_init.patch
--- ./include/asio/ssl/detail/openssl_init.hpp.orig 2006-11-15 00:10:08.000000000 +0100 +++ ./include/asio/ssl/detail/openssl_init.hpp 2006-11-15 00:10:38.000000000 +0100 @@ -45,13 +45,13 @@ { ::SSL_library_init(); ::SSL_load_error_strings(); + ::OpenSSL_add_ssl_algorithms(); mutexes_.resize(::CRYPTO_num_locks()); for (size_t i = 0; i < mutexes_.size(); ++i) mutexes_[i].reset(new asio::detail::mutex); ::CRYPTO_set_locking_callback(&do_init::openssl_locking_func); - ::OpenSSL_add_ssl_algorithms(); } }
Getting Asio 0.3.7 library
You may open asio's homepage http://asio.sourceforge.net/ or get asio with this direct link
http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/a/as/asio/asio-0.3.7.tar.gz
asio.Slackbuild
#!/bin/sh PRGNAM=asio VERSION=0.3.7 ARCH=${ARCH:-i486} BUILD=${BUILD:-1} TAG=${TAG:-MSXP} CWD=$(pwd) TMP=${TMP:-/tmp} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} if [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" fi rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP || exit 1 rm -rf $PRGNAM-$VERSION tar -xzvf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1 cd $PRGNAM-$VERSION || exit 1 chown -R root:root . chmod -R u+w,go+r-w,a-s . echo -e '\E[01;32;40m'"****************************************************************";tput sgr0; echo -e '\E[01;33;40m'"aplicando o patch para $TMP/$PRGNAM-$VERSION em`pwd` " ;tput sgr0; echo -e '\E[01;32;40m'"****************************************************************";tput sgr0; echo -e '\E[01;32;40m' cp -a $CWD/asio_openssl_init.patch $TMP/$PRGNAM-$VERSION/ patch -p0 < asio_openssl_init.patch echo -e '\E[01;32;40m'"****************************************************************";tput sgr0; echo -e '\E[01;33;40m'"execucao do script configure para $PRGNAM-$VERSION em`pwd` " ;tput sgr0; echo -e '\E[01;32;40m'"****************************************************************";tput sgr0; echo -e '\E[01;36;40m' CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-boost=/usr \ --with-openssl=/usr echo -e '\E[01;32;40m'"****************************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"execucao de make configure para $PRGNAM-$VERSION em`pwd` " ;tput sgr0; echo -e '\E[01;32;40m'"****************************************************************" ;tput sgr0; echo -e '\E[01;34;40m' make echo -e '\E[01;32;40m'"******************************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"execucao de make install configure para $PRGNAM-$VERSION em`pwd` " ;tput sgr0; echo -e '\E[01;32;40m'"******************************************************************" ;tput sgr0; echo -e '\E[01;33;40m' make install DESTDIR=$PKG echo -e '\E[01;32;40m'"****************************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"Criando o pacote $PRGNAM-$VERSION em`pwd` " ;tput sgr0; echo -e '\E[01;32;40m'"****************************************************************" ;tput sgr0; echo -e '\E[01;32;40m' if [ -d $PKG/usr/man ]; then ( cd $PKG/usr/man find . -type f -exec gzip -9 {} \; for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done ) fi mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz tput sgr0;
mxml 2.3 library Slackbuild¶
Next step we will download Mini XML 2.3 version on
http://www.minixml.org/software.php or in direct link
http://ftp.easysw.com/pub/mxml/2.3/mxml-2.3.tar.gz
mxml.SlackBuild
#!/bin/sh # Slackware build script for mxml # Original form Written by Chess Griffin <chess at chessgriffin dot com> # Adapted by Miguel Suarez Xavier Penteado <miguel_penteado@fca.unesp.br> PRGNAM=mxml VERSION=2.3 ARCH=${ARCH:-i486} BUILD=${BUILD:-1} TAG=${TAG:-MSXP} CWD=$(pwd) TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} if [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" fi rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP || exit 1 rm -rf $PRGNAM-$VERSION tar -xzvf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1 cd $PRGNAM-$VERSION || exit 1 chown -R root:root . chmod -R u+w,go+r-w,a-s . echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;33;40m'"Confire mxml in `pwd` ";tput sgr0; echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;35;40m'; CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --enable-static=no echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;33;40m'"make mxml in `pwd` ";tput sgr0; echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;36;40m'; make echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;33;40m'"make install mxml in `pwd` ";tput sgr0; echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;37;40m'; make install BUILDROOT=$PKG echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;33;40m'" Building packge mxml in `pwd` ";tput sgr0; echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;35;40m'; if [ -d $PKG/usr/man ]; then ( cd $PKG/usr/man find . -type f -exec gzip -9 {} \; for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done ) fi mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz tput sgr0;
Fastcgi-2.4.0 Slackbuild¶
This slackbuild will install fastcgi library in your Slackware 12 ! You will need Fastcgi library plus apache modules. Lets get Library first.
You can download fcgi sorces at http://www.fastcgi.com/ or in this direct link
http://www.fastcgi.com/dist/fcgi.tar.gz You will get 2.4.0 version
Before, you must save this patch in sources tar directory
The patch have 5.117 lines ... sorry try without him
then you may use fastcgi.Slackbuild
fastcgi.Slackbuild
#!/bin/sh # Slackware build script for mysql++ # Written by Chess Griffin <chess at chessgriffin dot com> # Adapted by Miguel Suarez Xavier Penteado <miguel_penteado@fca.unesp.br> PRGNAM=fcgi VERSION=2.4.0 ARCH=${ARCH:-i486} BUILD=${BUILD:-1} TAG=${TAG:-MSXP} CWD=$(pwd) TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} if [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" fi rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP || exit 1 rm -rf $PRGNAM-$VERSION #tar -xzvf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1 tar -xzvf $CWD/$PRGNAM.tar.gz || exit 1 cd $PRGNAM-$VERSION || exit 1 chown -R root:root . chmod -R u+w,go+r-w,a-s . chmod a-x include/fcgios.h libfcgi/os_unix.c cp $CWD/fcgi-2.4.0-autotools.patch $PKG/$PRGNAM-$VERSION patch -p0 < $PKG/$PRGNAM-$VERSION/fcgi-2.4.0-autotools.patch echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"configurando em "`pwd` ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;36;40m' CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"make em "`pwd` ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;32;40m' make echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"make install "`pwd` ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;38;40m' make install DESTDIR=$PKG if [ -d $PKG/usr/man ]; then ( cd $PKG/usr/man find . -type f -exec gzip -9 {} \; for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done ) fi mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz tput sgr0;
Modfastcgi-2.4.2 for apache Slackbuild¶
The mod_fastcgi will generate a patch for your apache 2.x.x modules
Get the module source http://www.fastcgi.com/ or directly here
http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz
patch
mod_fastcgi-2.4.2-update.patch
sorry, to big 774 lines ... search in google, or try without it
Patch for you save in Sorce + Slackbuilds dir
_' mod_fastcgi-2.4.2-apache2.2.patch
--- mod_fastcgi-2.4.2/fcgi.h 2006-03-22 16:59:55.000000000 +0000 +++ mod_fastcgi-2.4.2/fcgi.h 2006-03-22 17:04:41.000000000 +0000 @@ -73,6 +73,36 @@ #define ap_reset_timeout(a) #define ap_unblock_alarms() +/* starting with apache 2.2 the backward-compatibility defines for + * 1.3 APIs are not available anymore. Define them ourselves here. + */ +#ifndef ap_copy_table + +#define ap_copy_table apr_table_copy +#define ap_cpystrn apr_cpystrn +#define ap_destroy_pool apr_pool_destroy +#define ap_isspace apr_isspace +#define ap_make_array apr_array_make +#define ap_make_table apr_table_make +#define ap_null_cleanup apr_pool_cleanup_null +#define ap_palloc apr_palloc +#define ap_pcalloc apr_pcalloc +#define ap_psprintf apr_psprintf +#define ap_pstrcat apr_pstrcat +#define ap_pstrdup apr_pstrdup +#define ap_pstrndup apr_pstrndup +#define ap_push_array apr_array_push +#define ap_register_cleanup apr_pool_cleanup_register +#define ap_snprintf apr_snprintf +#define ap_table_add apr_table_add +#define ap_table_do apr_table_do +#define ap_table_get apr_table_get +#define ap_table_set apr_table_set +#define ap_table_setn apr_table_setn +#define ap_table_unset apr_table_unset + +#endif /* defined(ap_copy_table) */ + #if (defined(HAVE_WRITEV) && !HAVE_WRITEV && !defined(NO_WRITEV)) || defined WIN32 #define NO_WRITEV #endif --- mod_fastcgi-2.4.2/Makefile.AP2 2006-03-22 17:04:55.000000000 +0000 +++ mod_fastcgi-2.4.2/Makefile.AP2 2006-03-22 17:05:22.000000000 +0000 @@ -20,8 +20,6 @@ all: local-shared-build -install: install-modules - clean: -rm -f *.o *.lo *.slo *.la
Outro patch para voce slavar junto ao fonte e aos slackbuilds
_' mod_fastcgi-2.4.2-fix_warnings.patch
--- mod_fastcgi-2.4.2/fcgi_config.c 2007-05-25 16:01:49.000000000 +0200 +++ mod_fastcgi-2.4.2/fcgi_config.c 2007-05-25 16:06:42.000000000 +0200 @@ -694,7 +694,7 @@ return invalid_value(tp, name, fs_path, option, err); } else if (strcasecmp(option, "-min-server-life") == 0) { - if ((err = get_int(tp, &arg, &s->minServerLife, 0))) + if ((err = get_u_int(tp, &arg, &s->minServerLife, 0))) return invalid_value(tp, name, NULL, option, err); } else if (strcasecmp(option, "-priority") == 0) { @@ -763,12 +763,12 @@ { if (s->group == NULL) { - s->group = ap_psprintf(tp, "#%ld", fcgi_util_get_server_gid(cmd->server)); + s->group = ap_psprintf(tp, "#%d", fcgi_util_get_server_gid(cmd->server)); } if (s->user == NULL) { - s->user = ap_psprintf(p, "#%ld", fcgi_util_get_server_uid(cmd->server)); + s->user = ap_psprintf(p, "#%d", fcgi_util_get_server_uid(cmd->server)); } s->uid = ap_uname2id(s->user); @@ -954,12 +954,12 @@ { if (s->group == NULL) { - s->group = ap_psprintf(tp, "#%ld", fcgi_util_get_server_gid(cmd->server)); + s->group = ap_psprintf(tp, "#%d", fcgi_util_get_server_gid(cmd->server)); } if (s->user == NULL) { - s->user = ap_psprintf(p, "#%ld", fcgi_util_get_server_uid(cmd->server)); + s->user = ap_psprintf(p, "#%d", fcgi_util_get_server_uid(cmd->server)); } s->uid = ap_uname2id(s->user);
fastcgi.conf
# This is the Apache server configuration file providing FastCGI support.. # # Documentation is available at <http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html> LoadModule fastcgi_module lib/httpd/modules/mod_fastcgi.so # To use FastCGI to process .fcg .fcgi & .fpl scripts AddHandler fastcgi-script fcg fcgi fpl
doinst.sh
cp /etc/httpd/httpd.conf /etc/httpd/httpd.old echo "Include /etc/httpd/extra/fastcgi.conf" >> /etc/httpd/httpd.conf echo "Restarting httpd ..." sh /etc/rc.d/rc.httpd restart
slack-desc
|-----handy-ruler------------------------------------------------------| mod_fastcgi: mod_fastcgi 2.4.2 mod_fastcgi: mod_fastcgi: A fastcgi module for httpd mod_fastcgi: mod_fastcgi: mod_fastcgi: mod_fastcgi: mod_fastcgi: mod_fastcgi: mod_fastcgi:
*modfastcgi.Slackbuild
#!/bin/sh # # $Id: mod_fastcgi-server.SlackBuild 275 2005-03-08 01:20:25Z freerock $ CWD=`pwd` TMP=${TMP:-/tmp} PKG=$TMP/package-mod_fastcgi VERSION=2.4.2 ARCH=${ARCH:-i486} BUILD=1 if [ ! -d $TMP ]; then mkdir -p $TMP # location to build the source fi rm -rf $PKG mkdir -p $PKG if [ "$ARCH" = "i386" ]; then SLKCFLAGS="-O2 -march=i386 -mcpu=i686" elif [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mcpu=i686" elif [ "$ARCH" = "s390" ]; then SLKCFLAGS="-O2" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2" fi cd $TMP tar xzvf $CWD/mod_fastcgi-$VERSION.tar.gz cd mod_fastcgi-$VERSION echo "copiando patch ..." cp $CWD/mod_fastcgi-2.4.2-apache2.2.patch $TMP/mod_fastcgi-$VERSION cp $CWD/mod_fastcgi-2.4.2-update.patch $TMP/mod_fastcgi-$VERSION cp $CWD/mod_fastcgi-2.4.2-fix_warnings.patch $TMP/mod_fastcgi-$VERSION echo "aplicando patch ..." patch -p1 < mod_fastcgi-2.4.2-apache2.2.patch patch -p1 < mod_fastcgi-2.4.2-update.patch patch -p1 < mod_fastcgi-2.4.2-fix_warnings.patch rm Makefile cat Makefile.AP2 > Makefile LDFLAGS=-s \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"make em "`pwd` ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;32;40m' topdir=$(/usr/bin/dirname $(/usr/sbin/apxs -q exp_installbuilddir)) make top_dir=${topdir} echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"make install "`pwd` ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;36;40m' make top_dir=${topdir} DESTDIR=$PKG MKINSTALLDIRS="mkdir -p" install tput sgr0; mkdir -p $PKG/etc/httpd/extra/ cp -a $CWD/fastcgi.conf $PKG/etc/httpd/extra/ echo "Criando diretório de documentação ..." mkdir -p $PKG/usr/doc/mod_fastcgi-$VERSION echo "Copiando arquivos de documetação ..." cp -a INSTALL README CHANGES $PKG/usr/doc/mod_fastcgi-$VERSION chmod 644 $PKG/usr/doc/mod_fastcgi-$VERSION/* chown root.root $PKG/usr/doc/mod_fastcgi-$VERSION/* find $PKG -type f | xargs file | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded gzip -9 $PKG/usr/man/*/* echo "criando diretório de scripts instalação ..." mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh >> $PKG/install/doinst.sh echo "criando o pacote ..." cd $PKG makepkg -l y -c n $TMP/mod_fastcgi-$VERSION-$ARCH-$BUILD.tgz # Clean up the extra stuff: if [ "$1" = "--cleanup" ]; then rm -rf $TMP/template-$VERSION rm -rf $PKG fi
Mysql Slackbuild¶
You can get the sources of Mysql at http://tangentsoft.net/mysql/ or directly in
http://tangentsoft.net/mysql/releases/mysql--2.3.2.tar.gz
You may need some how-to or tutorials on internet for mysql , so you may like this
http://www.devarticles.com/c/a/Cplusplus/Building-a-Store-Application-With-MySQL-and-C/
save this with slack-desc name in the sources + mysql.Slacbuild directory
# HOW TO EDIT THIS FILE: # The "handy ruler" below makes it easier to edit a package description. Line # up the first '|' above the ':' following the base package name, and the '|' on # the right side marks the last column you can put a character in. You must make # exactly 11 lines for the formatting to be correct. It's also customary to # leave one space after the ':'. |-----handy-ruler------------------------------------------------------| mysql++: mysql++-2.3.2 mysql++: mysql++: MySQL++ is a powerful C++ wrapper for MySQL's C API. mysql++: Its purpose is to make working with queries as easy as working mysql++: with STL containers. mysql++: mysql++: mysql++: mysql++: mysql++: mysql++:
Now you can build package with mysql.Slackbuild
*Mysql.Slackbuild
#!/bin/sh # Slackware build script for mysql++ # Written by Chess Griffin <chess at chessgriffin dot com> PRGNAM=mysql++ VERSION=2.3.2 ARCH=${ARCH:-i486} BUILD=${BUILD:-1} TAG=${TAG:-MSXP} CWD=$(pwd) TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} if [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" fi rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP || exit 1 rm -rf $PRGNAM-$VERSION tar -xzvf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1 cd $PRGNAM-$VERSION || exit 1 chown -R root:root . chmod -R u+w,go+r-w,a-s . CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var make make install DESTDIR=$PKG if [ -d $PKG/usr/man ]; then ( cd $PKG/usr/man find . -type f -exec gzip -9 {} \; for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done ) fi mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
ICU Slackbuild¶
optional
Wt-2.0.5 Slackbuild¶
Finally tou ready for Witty.
Get witty sources on
http://www.webtoolkit.eu/ or in direct link
http://easynews.dl.sourceforge.net/sourceforge/witty/wt-2.0.5.tar.gz
#put this description file file as slack-desc in wt.Slackbuild source directory
# HOW TO EDIT THIS FILE: # The "handy ruler" below makes it easier to edit a package description. Line # up the first '|' above the ':' following the base package name, and the '|' on # the right side marks the last column you can put a character in. You must make # exactly 11 lines for the formatting to be correct. It's also customary to # leave one space after the ':'. |-----handy-ruler------------------------------------------------------| wt: wt-2.0.5 - Webtoolkit wt: wt: Wt (pronounced 'witty') is a C++ library and application server wt: for developping and deploying web applications. The API is wt: widget-centric, and inspired by existing C++ Graphical User Interface wt: (GUI) APIs. To the developer, it offers complete abstraction of any wt: web-specific implementation details. wt: In contrast, a web application developed with Wt is written in only wt: one compiled language (C++), from which the library generates the wt: necessary HTML, Javascript, CGI, and AJAX code. wt: wt: http://www.webtoolkit.eu/ wt:
#put this config file in Slackbuild + source directory
wt_httpd.conf
<Directory /var/www/wt/> #Order Deny,Allow Allow from all # Don't show indexes for directories on publicly accessible machines (Uncomment if it's a private devshell). #Options -Indexes # Enable CGIs to be executed Options ExecCGI </Directory>
#put this post-install script file in Slackbuild + source directory
doinst.sh
echo "backup /etc/httpd/httpd.conf as httpd.conf.old ..." cp /etc/httpd/httpd.conf /etc/httpd/httpd.conf.old echo "Including /etc/httpd/extra/wt_httpd.conf in httpd.conf ..." echo "Include /etc/httpd/extra/wt_httpd.conf" >> /etc/httpd/httpd.conf echo "Reloading Apache httpd ..." sh /etc/rc.d/rc.httpd restart
wt.Slackbuild
#!/bin/sh # Slackware build script for wt. NAME=wt # Get the current and temporary directories CWD=`pwd` if [ "$TMP" = "" ]; then TMP=/tmp fi PKG=$TMP/package-$NAME VERSION=${VERSION:-2.0.5} ARCH=${ARCH:-i486} BUILD=${BUILD:-1} if [ "$ARCH" = "i386" ]; then SLKCFLAGS="-O2 -m32 -march=i386 -mcpu=i386" elif [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -m32 -march=i486 -mtune=i686" elif [ "$ARCH" = "s390" ]; then SLKCFLAGS="-O2" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2" fi if [ ! -d $TMP ]; then mkdir -p $TMP # location to build the source fi # Clean up a previous build rm -rf $PKG mkdir -p $PKG # Decompress cd $TMP rm -rf $NAME-$VERSION tar xvf $CWD/$NAME-$VERSION.tar.gz || exit 1 cd $NAME-$VERSION # Fix chown -R root:root . find . -perm 666 -exec chmod 644 {} \; find . -perm 664 -exec chmod 644 {} \; find . -perm 600 -exec chmod 644 {} \; find . -perm 444 -exec chmod 644 {} \; find . -perm 400 -exec chmod 644 {} \; find . -perm 440 -exec chmod 644 {} \; find . -perm 777 -exec chmod 755 {} \; find . -perm 775 -exec chmod 755 {} \; find . -perm 511 -exec chmod 755 {} \; find . -perm 711 -exec chmod 755 {} \; find . -perm 555 -exec chmod 755 {} \; mkdir -p $PKG/var/www/wt mkdir -p $PKG/etc/wt mkdir $PKG/usr/src/wt cp $CWD/wt.Slackbuild $PKG/usr/src/wt mkdir `pwd`/build cd `pwd`/build echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;33;40m'"execucao do script cmake para wt em "`pwd` ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ;tput sgr0; echo -e '\E[01;36;40m' cmake -D DEPLOYROOT=/var/www/wt \ -D WEBUSER=apache \ -D BUILD_SHARED_LIBS=ON \ -D CONFIGURATION=/etc/wt \ -D BOOST_COMPILER=gcc \ -D BOOST_VERSION=1_34_1 \ -D BOOST_DIR=/usr \ -D RUNDIR=/var/run \ -D CMAKE_INSTALL_PREFIX=/usr \ -D HTTP_WITH_SSL=true \ -D CONNECTOR_FCGI=true \ -D EXAMPLES_CONNECTOR=wthttp \ -D WEBGROUP=users ../ #-D EXECUTABLE_OUTPUT_PATH=/var/www/wt/bin \ # Build echo -e '\E[01;32;40m'"**************************************************" ; tput sgr0; echo -e '\E[01;33;40m'" Compilando wt com make em " `pwd` ; tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ; tput sgr0; echo -e '\E[01;34;40m'; make echo -e '\E[01;32;40m'"**************************************************" ; tput sgr0; echo -e '\E[01;33;40m'" Compilando exemplos com make em " `pwd` ; tput sgr0; echo -e '\E[01;32;40m'"**************************************************" ; tput sgr0; echo -e '\E[01;32;40m'; make -C examples echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;33;40m'"instalado wt em $PKG com o make install" ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;35;40m'; make install DESTDIR=$PKG echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;33;40m'"instalado wt examples em $PKG " ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;32;40m'; mkdir -p $PKG/usr/share/$NAME-$VERSION/examples cp -a $TMP/$NAME-$VERSION/build/examples $PKG/usr/share/$NAME-$VERSION/ echo -e '\E[01;32;40m'"**************************************************";tput sgr0; echo -e '\E[01;33;40m'"Montando o pacote" ;tput sgr0; echo -e '\E[01;32;40m'"**************************************************";tput sgr0; # Clean up a previous build rm -rf $PKG/etc/wt mkdir -p $PKG/etc/wt rm -rf $PKG/var/www/wt mkdir -p $PKG/var/www/wt mkdir -p $PKG/etc/httpd/extra cp $CWD/wt_httpd.conf $PKG/etc/httpd/extra # Gzip man pages find $PKG/usr/man -name "*.[123456789]" -exec gzip -9 {} \; # Strip binaries ( cd $PKG find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) # Copy Slackware package files mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh >> $PKG/install/doinst.sh # Create package echo "Creating package" cd $PKG makepkg -l y -c n ../$NAME-$VERSION-$ARCH-$BUILD.tgz # Clean up if [ "$1" = "--cleanup" ]; then rm -rf $TMP/$NAME-$VERSION rm -rf $PKG fi
Testing Witty without apache¶
open a konsole window and
cd /usr/share/wt-2.0.5/examples/ cd hello sh deploy.sh
then go to
cd /var/www/wt/hello cd /var/www/wt/hello/ ./hello.wt --docroot . --http-address your.ip.com --http-port 8080
and open your browser at http://you.ip.com:8080
Have a fun !!!
Updated by Pieter Libin over 13 years ago · 2 revisions