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 about 15 years ago · 2 revisions