Project

General

Profile

Installing Wt on Slackware » History » Version 2

Pieter Libin, 10/29/2009 02:07 PM

1 1 Pieter Libin
h1. Installing Wt on Slackware
2
3
{{toc}}
4
5
By Miguel Suarez Xavier Penteado miguel_penteado@fca.unesp.br
6
7
(sorry by poor english)
8
9
In slackware 12 we have not in default installation 
10
# boost library
11
# asio library _*' --(no asio stand alone and no boost asio)--
12
# mxml 
13
# fastcgi lib 
14
# fastcgi apache mod 
15
# ICU
16
# mysql++
17
# wt
18
19
Then, we need build each previous packages and install it before try compile witty.
20
21
Slackare 12 use slackbuilds to build packges, so we will put here the slackbuilds for packages above 
22
23
*Remember all packets will be generated in /tmp directory*
24
25
26
h3. boost 1.34.1 Slackbuild  
27
28
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.
29
30
*boost_bjam-gcc42_mod.patch*
31
32
33
<pre>
34
 Index: tools/jam/src/build.sh
35
 --- tools/jam/src/build.sh.orig	2006-02-03 17:57:42 +0100
36
 +++ tools/jam/src/build.sh	2007-06-17 13:54:31 +0200
37
 @@ -127,7 +127,7 @@
38
      ;;
39
      
40
      gcc)
41
 -    BOOST_JAM_CC=gcc
42
 +    BOOST_JAM_CC="gcc -O0"
43
      ;;
44
      
45
      darwin)
46
 Index: tools/jam/src/build.jam
47
 --- tools/jam/src/build.jam.orig	2007-06-17 14:07:34 +0200
48
 +++ tools/jam/src/build.jam	2007-06-17 14:08:21 +0200
49
 @@ -153,7 +153,7 @@
50
  ## GCC 2.x, 3.x, 4.x
51
  toolset gcc gcc : "-o " : -D
52
      : -pedantic
53
 -    [ opt --release : [ opt --symbols : -g : -s ] -O3 ]
54
 +    [ opt --release : [ opt --symbols : -g : -s ] -O0 ]
55
      [ opt --debug : -g -O0 -fno-inline ]
56
      -I$(--python-include) -Wno-long-long
57
      : -L$(--python-lib[1]) -l$(--python-lib[2]) ;
58
</pre>
59
60
61
62
*boost-configure.patch*
63
64
<pre>
65
 *** configure.orig	2007-01-16 01:39:00.000000000 +0100
66
 --- configure	2007-01-19 03:53:08.000000000 +0100
67
 ***************
68
 *** 9,15 ****
69
   
70
   BJAM=""
71
   TOOLSET=""
72
 ! BJAM_CONFIG=""
73
   BUILD=""
74
   PREFIX=/usr/local
75
   EPREFIX=
76
 --- 9,15 ----
77
   
78
   BJAM=""
79
   TOOLSET=""
80
 ! BJAM_CONFIG="-d2 --layout=system variant=release debug-symbols=on"
81
   BUILD=""
82
   PREFIX=/usr/local
83
   EPREFIX=
84
 *************** INCLUDEDIR=$INCLUDEDIR
85
 *** 325,332 ****
86
   LIBS=$LIBS
87
   
88
   all: .dummy
89
 ! 	@echo "\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS)"
90
 ! 	@\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS) || \\
91
   	echo "Not all Boost libraries built properly."
92
   
93
   clean: .dummy
94
 --- 325,332 ----
95
   LIBS=$LIBS
96
   
97
   all: .dummy
98
 ! 	@echo "\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS) stage"
99
 ! 	@\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS) stage || \\
100
   	echo "Not all Boost libraries built properly."
101
   
102
   clean: .dummy
103
 
104
</pre>
105
106
*boost-gcc-soname.patch*
107
108
<pre>
109
 *** tools/build/v2/tools/gcc.jam.orig	2007-05-03 08:09:04.000000000 +0200
110
 --- tools/build/v2/tools/gcc.jam	2007-06-26 20:37:44.000000000 +0200
111
 *************** if [ os.name ] != NT && [ os.name ] != O
112
 *** 316,322 ****
113
       # expected, therefore it has been disabled.
114
   
115
       HAVE_SONAME   = "" ;
116
 !     SONAME_OPTION = -h ;
117
   }
118
   
119
   
120
 --- 316,323 ----
121
       # expected, therefore it has been disabled.
122
   
123
       HAVE_SONAME   = "" ;
124
 !     SONAME_OPTION = -soname ;
125
 !     SONAME_VERSION = 3 ;
126
   }
127
   
128
   
129
 *************** rule link.dll ( targets * : sources * : 
130
 *** 631,637 ****
131
   # Differ from 'link' above only by -shared.
132
   actions link.dll bind LIBRARIES
133
   {
134
 !     "$(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)
135
   }
136
   
137
   # Set up threading support. It's somewhat contrived, so perform it at the end,
138
 --- 632,638 ----
139
   # Differ from 'link' above only by -shared.
140
   actions link.dll bind LIBRARIES
141
   {
142
 !     "$(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)
143
   }
144
   
145
   # Set up threading support. It's somewhat contrived, so perform it at the end, 
146
</pre>
147
148
*boost-use-rpm-optflags.patch*
149
150
<pre>
151
 *** tools/build/v2/tools/gcc.jam.orig	2007-08-01 01:17:16.000000000 -0500
152
 --- tools/build/v2/tools/gcc.jam	2007-08-01 01:17:46.000000000 -0500
153
 *************** flags gcc.compile PCH_FILE <pch>on : <pc
154
 *** 268,274 ****
155
   
156
   # Declare flags and action for compilation
157
   flags gcc.compile OPTIONS <optimization>off : -O0 ;
158
 ! flags gcc.compile OPTIONS <optimization>speed : -O3 ;
159
   flags gcc.compile OPTIONS <optimization>space : -Os ;
160
   
161
   flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
162
 --- 268,274 ----
163
   
164
   # Declare flags and action for compilation
165
   flags gcc.compile OPTIONS <optimization>off : -O0 ;
166
 ! flags gcc.compile OPTIONS <optimization>speed : "$RPM_OPT_FLAGS" ;
167
   flags gcc.compile OPTIONS <optimization>space : -Os ;
168
   
169
   flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
170
</pre>
171
172
173
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:
174
175
*boost_asio* on http://sourceforge.net/project/showfiles.php?group_id=122478 or if you prefer directly on 
176
http://easynews.dl.sourceforge.net/sourceforge/asio/asio-0.3.8rc3.tar.gz
177
178
*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
179
180
finily _*' boost 1.34.1 _*' on http://sourceforge.net/project/showfiles.php?group_id=7586 or directly on
181
http://easynews.dl.sourceforge.net/sourceforge/boost/boost_1_34_1.tar.bz2
182
(boost.Slackbuild will compile your bjam -ARGH!!- (a ./configure like autotool system) ) in your system , and you will not need download bjam binary.
183
184
185
This Slackbuild is based on boost.SlackBuild,v 1.6 2007/09/04 of Eric Hameleers <alien@slackware.com>
186
and boost.spec from boost-1.34.0-2.el5.src.rpm from Red Hat Enterprise linux
187
188
*boost.Slackbuild*
189
<pre>
190
 #!/bin/sh
191
 # $Id: boost.SlackBuild,v 1.6 2007/09/04 23:08:43 root Exp root $
192
 # Copyright (c) 2007 Eric Hameleers <alien@slackware.com>
193
 # All rights reserved.
194
 #
195
 #   Permission to use, copy, modify, and distribute this software for
196
 #   any purpose with or without fee is hereby granted, provided that
197
 #   the above copyright notice and this permission notice appear in all
198
 #   copies.
199
 #
200
 #   THIS SOFTWARE IS PROVIDED ``AS IS*_ AND ANY EXPRESSED OR IMPLIED
201
 #   WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
202
 #   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
203
 #   IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
204
 #   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
205
 #   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
206
 #   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
207
 #   USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
208
 #   ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
209
 #   OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
210
 #   OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
211
 #   SUCH DAMAGE.
212
 #
213
 # Slackware SlackBuild script 
214
 # ===========================
215
 # By:        Eric Hameleers <alien@slackware.com>
216
 # For:       boost
217
 # Descr:     collection of portable C++ source libraries
218
 # URL:       http://www.boost.org/
219
 # Needs:     
220
 # Changelog:
221
 # 1.34.1-1   01/10/2007 by Miguel Suarez Xavier Penteado <miguel_penteado@fca.unesp.br>
222
 # 1.33.1-1:  23/Dec/2006 by Eric Hameleers <alien@slackware.com>
223
 #            * Initial build.
224
 # 1.34.0-1:  04/Sep/2007 by Eric Hameleers <alien@slackware.com>
225
 #            * Update, Slackware 12.0 package.
226
 # 
227
 # Run 'sh boost.SlackBuild --cleanup' to build a Slackware package.
228
 # The package (.tgz) plus descriptive .txt file are created in /tmp .
229
 # Install using 'installpkg'. 
230
 #
231
 # Set initial variables:
232
 
233
 echo "Setting variables ..."
234
 echo "Setando variaveis ..."
235
 
236
 PRGNAM=boost
237
 VERSION=${VERSION:-1.34.1}
238
 SRCVER=$(echo ${VERSION} | tr '.' '_')
239
 ARCH=${ARCH:-i486}
240
 BUILD=${BUILD:-1}
241
 
242
 # This is the python we build against:
243
 PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
244
 PYTHON_FLAGS="-sPYTHON_ROOT=/usr -sPYTHON_VERSION=$PYTHON_VERSION" 
245
 
246
 DOCS="README LICENSE_1_0.txt people wiki"
247
 
248
 # Where do we look for sources?
249
 CWD=$(pwd)
250
 SRCDIR=$(dirname $0)
251
 [ "${SRCDIR:0:1}" == "." ] && SRCDIR=${CWD}/${SRCDIR}
252
 
253
 # Place to build (TMP) package (PKG) and output (OUTPUT) the program:
254
 TMP=${TMP:-/tmp/build}
255
 PKG=$TMP/package-$PRGNAM
256
 OUTPUT=${OUTPUT:-/tmp}
257
 
258
 ###################################################################################
259
 ASIO=boost_asio
260
 VER_ASIO="0_3_8rc3"
261
 SOURCE_ASIO="$SRCDIR/${ASIO}_${VER_ASIO}.tar.gz"
262
 PKG_ASIO=$TMP/package-$ASIO
263
 
264
 ################################################################################### 
265
 
266
 ###################################################################################
267
 GIL=gil
268
 VER_GIL="2.1.1"
269
 SOURCE_GIL="$SRCDIR/${GIL}-${VER_GIL}.tar.gz"
270
 PKG_GIL=$TMP/package-$GIL 
271
 
272
 ###################################################################################
273
 
274
 
275
 # Input URL: http://dl.sourceforge.net/boost/boost_1_34_1.tar.gz
276
 SOURCE="$SRCDIR/${PRGNAM}_${SRCVER}.tar.gz"
277
 SRCURL="http://dl.sourceforge.net/${PRGNAM}/${PRGNAM}_${SRCVER}.tar.gz" 
278
 
279
 
280
 # Exit the script on errors:
281
 set -e
282
 trap 'echo "$0 FAILED at line $LINENO!" | tee $OUTPUT/error-${PRGNAM}.log' ERR
283
 # Catch unitialized variables:
284
 set -u
285
 P1=${1:-1}
286
 
287
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
288
 echo -e  '\E[01;33;40m'"Setando a vers~ao de gcc para 3.3.x ou 4.2.x"          ;tput sgr0;
289
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
290
 echo -e '\E[01;32;40m'
291
 
292
 # Slackware 11 and up need other option (gcc > 3.3.x)
293
 if [ $(gcc -dumpversion | tr -d  '.' |cut -c 1-2) -gt 33 ]; then
294
 MOPT=tune
295
 else
296
 MOPT=cpu
297
 fi
298
 
299
 case "$ARCH" in
300
 i386)      SLKCFLAGS="-O2 -march=i386 -m${MOPT}=i686" 
301
 	SLKLDFLAGS=""; LIBDIRSUFFIX="" 
302
 	;;
303
 i486)      SLKCFLAGS="-O2 -march=i486 -m${MOPT}=i686"
304
 	SLKLDFLAGS=""; LIBDIRSUFFIX=""
305
 	;;
306
 s390)      SLKCFLAGS="-O2"
307
 	SLKLDFLAGS=""; LIBDIRSUFFIX=""
308
 	;;
309
 powerpc)   SLKCFLAGS="-O2"
310
 	SLKLDFLAGS=""; LIBDIRSUFFIX=""
311
 	;;
312
 x86_64)    SLKCFLAGS="-O2 -fPIC"
313
 	SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
314
 	;;
315
 athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
316
 	SLKLDFLAGS=""; LIBDIRSUFFIX=""
317
 	;;
318
 esac
319
 
320
 # Create working directories:
321
 mkdir -p $TMP/tmp-$PRGNAM # location to build the source
322
 rm -rf $TMP/tmp-$PRGNAM/* # By default we remove the remnants of previous build
323
 mkdir -p $PKG     # place for the package to be built
324
 rm -rf $PKG/*     # We always erase old package's contents:
325
 mkdir -p $OUTPUT  # place for the package to be saved
326
 
327
 # Source file availability:
328
 if ! [ -f ${SOURCE} ]; then
329
 if ! [ "x${SRCURL}" == "x" ]; then
330
 # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT
331
 [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)"
332
 echo "Source '$(basename ${SOURCE})' not available yet..."
333
 echo "Will download file to $(dirname $SOURCE)"
334
 wget -nv --connect-timeout=30 -O "${SOURCE}" "${SRCURL}" || true
335
 if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then
336
 echo "Downloading '$(basename ${SOURCE})' failed... aborting the build."
337
 mv -f "${SOURCE}" "${SOURCE}".FAIL
338
 exit 1
339
 fi
340
 else
341
 echo "File '$(basename ${SOURCE})' not available... aborting the build."
342
 exit 1
343
 fi
344
 fi
345
 
346
 if [ "$P1" == "--download" ]; then
347
 echo "Download complete."
348
 exit 0
349
 fi
350
 
351
 
352
 #################################################################################################
353
 # --- PACKAGE BUILDING ---
354
 
355
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
356
 echo -e  '\E[01;33;40m'"extraindo arquivos"                                    ;tput sgr0;
357
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
358
 echo -e '\E[01;36;40m' 
359
 
360
 echo "++================="
361
 echo "|| $PRGNAM-$VERSION"
362
 echo "++================="
363
 
364
 cd $TMP/tmp-$PRGNAM
365
 echo "Extracting the source archive(s) for $PRGNAM..."
366
 if $(file ${SOURCE} | grep -q ": bzip2"); then
367
 tar -xjvf ${SOURCE}
368
 elif $(file ${SOURCE} | grep -q ": gzip"); then
369
 tar -xzvf ${SOURCE}
370
 fi
371
 mv ${PRGNAM}_${SRCVER} ${PRGNAM}-${VERSION}
372
 cd ${PRGNAM}-${VERSION}
373
 BUILD_DIR_BOOST=`pwd`
374
 chown -R root:root .
375
 chmod -R u+w,go+r-w,a-s .
376
 
377
 
378
 
379
 #################################################################################################
380
 mkdir -p $TMP/tmp-$ASIO # location to build the source
381
 rm -rf $TMP/tmp-$ASIO/* # By default we remove the remnants of previous build
382
 
383
 cd $TMP/tmp-$ASIO
384
 echo "Extracting the SOURCE_ASIO archive(s) for $ASIO..."
385
 if $(file ${SOURCE_ASIO} | grep -q ": bzip2"); then
386
 tar -xjvf ${SOURCE_ASIO}
387
 elif $(file ${SOURCE_ASIO} | grep -q ": gzip"); then
388
 tar -xzvf ${SOURCE_ASIO}
389
 fi
390
 mv ${ASIO}_${VER_ASIO} ${ASIO}-${VER_ASIO}
391
 cd ${ASIO}-${VER_ASIO}
392
 chown -R root:root .
393
 chmod -R u+w,go+r-w,a-s .
394
 
395
 cp -a boost/ $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}
396
 cp -a  libs/ $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}
397
 
398
 #################################################################################################
399
 
400
 #################################################################################################
401
 mkdir -p $TMP/tmp-$GIL # location to build the source
402
 rm -rf $TMP/tmp-$GIL/* # By default we remove the remnants of previous build
403
 
404
 cd $TMP/tmp-$GIL
405
 echo "Extracting the SOURCE_GIL archive(s) for $GIL..."
406
 if $(file ${SOURCE_GIL} | grep -q ": bzip2"); then
407
 tar -xjvf ${SOURCE_GIL}
408
 elif $(file ${SOURCE_GIL} | grep -q ": gzip"); then
409
 tar -xzvf ${SOURCE_GIL}
410
 fi
411
 
412
 cd ${GIL}-${VER_GIL}
413
 chown -R root:root .
414
 chmod -R u+w,go+r-w,a-s .
415
 
416
 cp -a boost/ $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}
417
 cp -a  libs/ $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}
418
 
419
 #################################################################################################
420
 
421
 cd $BUILD_DIR_BOOST
422
 
423
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
424
 echo -e  '\E[01;33;40m'"aplicando o patch para gcc 4.2.x          "            ;tput sgr0;
425
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
426
 echo -e '\E[01;32;40m'
427
 
428
 cp -a $CWD/boost_bjam-gcc42_mod.patch $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}/
429
 
430
 patch -p0 < boost_bjam-gcc42_mod.patch
431
 
432
 # echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
433
 # echo -e  '\E[01;33;40m'"aplicando o patch para Thread          "            ;tput sgr0;
434
 # echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
435
 # echo -e '\E[01;32;40m'
436
 # 
437
 # cp -a $CWD/boost-thread.patch $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}/
438
 # 
439
 # patch -p0 < boost-thread.patch
440
 
441
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
442
 echo -e  '\E[01;33;40m'"aplicando o patch para Configure          "            ;tput sgr0;
443
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
444
 echo -e '\E[01;32;40m'
445
 
446
 cp -a $CWD/boost-configure.patch $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}/
447
 
448
 patch -p0 < boost-configure.patch
449
 
450
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
451
 echo -e  '\E[01;33;40m'"aplicando o patch para boost-gcc-soname.patch    "     ;tput sgr0;
452
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
453
 echo -e '\E[01;32;40m'
454
 
455
 cp -a $CWD/boost-gcc-soname.patch $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}/
456
 
457
 patch -p0 < boost-gcc-soname.patch
458
 
459
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
460
 echo -e  '\E[01;33;40m'"aplicando o patch para boost-use-rpm-optflags.patch "  ;tput sgr0;
461
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
462
 echo -e '\E[01;32;40m'
463
 
464
 cp -a $CWD/boost-use-rpm-optflags.patch $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}/
465
 
466
 patch -p0 < boost-use-rpm-optflags.patch
467
 
468
 
469
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
470
 echo -e  '\E[01;33;40m'"Construindo BJAM                          "            ;tput sgr0;
471
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
472
 echo -e '\E[01;36;40m'
473
 
474
 
475
 echo Building ...
476
 export LDFLAGS="$SLKLDFLAGS"
477
 export CFLAGS="$SLKCFLAGS"
478
 export CXXFLAGS="$SLKCFLAGS"
479
 
480
 BOOST_ROOT=`pwd`
481
 staged_dir=stage
482
 export BOOST_ROOT
483
 
484
 
485
 # First build bjam, the boost build system:
486
 ( cd tools/jam/src
487
 ./build.sh gcc 2>&1 | tee $OUTPUT/make-${PRGNAM}.log
488
 ) || exit $?
489
 BJAM=$(find tools/jam/src/ -name bjam -a -type f)
490
 
491
 # Create build subdirectory
492
 mkdir -p obj
493
 
494
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
495
 echo -e '\E[01;33;40m'"Configure                                         "     ;tput sgr0;
496
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
497
 echo -e '\E[01;32;40m'
498
 
499
 #"-sBUILD=<optimization>speed <runtime-link>shared <runtime-link>static <inlining>full <threading>single/multi " 
500
 # Next, we build boost using bjam
501
 echo "Building boost now..."
502
 $BJAM \
503
 release \
504
 "-d2 -sBUILD= <runtime-link>shared  <threading>multi " \
505
 "-sNO_COMPRESSION=0" "-sZLIB_INCLUDE=/usr/include" "-sZLIB_LIBPATH=/usr/lib" \
506
 "-sBZIP2_INCLUDE=/usr/include" "-sBZIP2_LIBPATH=/usr/lib" \
507
 --toolset=gcc --layout=system --builddir=obj \
508
 --prefix=/usr \
509
 $PYTHON_FLAGS \
510
 stage \
511
 2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log
512
 
513
 
514
 # ./configure \
515
 # --with-bjam=$BJAM \
516
 # --with-toolset=gcc \
517
 # --prefix=/usr \
518
 # --with-libraries=all \
519
 # --with-python=/usr/bin/python \
520
 # --with-python-root=/usr \
521
 # --with-python-version=$PYTHON_VERSION 
522
 # #--with-icu \
523
 # #--with-icu=DIR \
524
 
525
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
526
 echo -e '\E[01;33;40m'"Construindo boost                                 "     ;tput sgr0;
527
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
528
 echo -e '\E[01;33;40m'
529
 
530
 # make all
531
 
532
 
533
 
534
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
535
 echo -e '\E[01;33;40m'"Instalando o boost em `pwd`                       "     ;tput sgr0;
536
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
537
 echo -e '\E[01;34;40m'
538
 
539
 echo "Installing boost now..."
540
 $BJAM \
541
 release \
542
 --toolset=gcc --layout=system --link=shared --builddir=obj \
543
 --prefix=$PKG/usr \
544
 $PYTHON_FLAGS \
545
 install \
546
 2>&1 | tee $OUTPUT/install-${PRGNAM}.log
547
 
548
 
549
 
550
 # And then install boost..
551
 mkdir -p $PKG/usr/{bin,lib,include}
552
 mkdir -p $PKG/usr/share/${PRGNAM}-${VERSION}
553
 cp -a $BJAM $PKG/usr/bin
554
 
555
 #install lib
556
 for i in `find stage -type f -name \*.a`; do
557
 NAME=`basename $i`;
558
 install -p -m 0644 $i $PKG/usr/lib/$NAME;
559
 done;
560
 
561
 for i in `find stage -type f -name \*.so`; do
562
 NAME=$i;
563
 SONAME=$i.3;
564
 VNAME=$i.${VERSION};
565
 base=`basename $i`;
566
 NAMEbase=$base;
567
 SONAMEbase=$base.3;
568
 VNAMEbase=$base.${VERSION};
569
 mv $i $VNAME;
570
 ln -s $VNAMEbase $SONAME;
571
 ln -s $VNAMEbase $NAME;
572
 install -p -m 755 $VNAME $PKG/usr/lib/$VNAMEbase;
573
 mv $SONAME $PKG/usr/lib/$SONAMEbase;
574
 mv $NAME $PKG/usr/lib/$NAMEbase;
575
 done;
576
 
577
 
578
 ## Move incorrectly installed include files
579
 if [ -d $PKG/usr/include/${PRGNAM}-${VERSION} ]; then
580
 echo -e '\E[01;33;40m'"Movendo os Includes boost para $PKG/usr/include/  "     ;tput sgr0;
581
 echo -e '\E[01;34;40m'
582
 mv $PKG/usr/include/${PRGNAM}-${VERSION}/boost $PKG/usr/include/
583
 rmdir $PKG/usr/include/${PRGNAM}-${VERSION}
584
 fi
585
 
586
 
587
 
588
 # Add documentation:
589
 mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
590
 cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true
591
 chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/*
592
 
593
 # Strip binaries:
594
 cd $PKG
595
 find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
596
 find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
597
 cd -
598
 
599
 # Add a package description:
600
 mkdir -p $PKG/install
601
 cat $SRCDIR/slack-desc > $PKG/install/slack-desc
602
 if [ -f $SRCDIR/doinst.sh ]; then
603
 cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh
604
 fi
605
 
606
 # Build the package:
607
 cd $PKG
608
 makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
609
 cd $OUTPUT
610
 md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz.md5
611
 cd -
612
 cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txt
613
 
614
 # Clean up the extra stuff:
615
 if [ "$P1" = "--cleanup" ]; then
616
 rm -rf $TMP/tmp-$PRGNAM
617
 rm -rf $PKG
618
 fi
619
 tput sgr0; 
620
</pre>
621
622
623
h3. asio 0.3.7 standalone library Slackbuild  
624
625
Next step: we will patch and compile asio-0.3.7.tar.gz . Use asio 0.3.7 version , is working. 
626
#Patch asio-0.3.7 standalone
627
628
asio_openssl_init.patch
629
<pre>
630
 --- ./include/asio/ssl/detail/openssl_init.hpp.orig	2006-11-15 00:10:08.000000000 +0100
631
 +++ ./include/asio/ssl/detail/openssl_init.hpp	2006-11-15 00:10:38.000000000 +0100
632
 @@ -45,13 +45,13 @@
633
        {
634
          ::SSL_library_init();
635
          ::SSL_load_error_strings();        
636
 +        ::OpenSSL_add_ssl_algorithms();
637
  
638
          mutexes_.resize(::CRYPTO_num_locks());
639
          for (size_t i = 0; i < mutexes_.size(); ++i)
640
            mutexes_[i].reset(new asio::detail::mutex);
641
          ::CRYPTO_set_locking_callback(&do_init::openssl_locking_func);
642
  
643
 -        ::OpenSSL_add_ssl_algorithms();
644
        }
645
      }
646
</pre>
647
648
Getting Asio 0.3.7 library
649
You may open asio's homepage http://asio.sourceforge.net/ or get asio with this direct link
650
http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/a/as/asio/asio-0.3.7.tar.gz
651
652 2 Pieter Libin
*asio.Slackbuild*
653 1 Pieter Libin
654
<pre>
655
 #!/bin/sh 
656
 
657
 PRGNAM=asio
658
 VERSION=0.3.7
659
 ARCH=${ARCH:-i486}
660
 BUILD=${BUILD:-1}
661
 TAG=${TAG:-MSXP}
662
 CWD=$(pwd)
663
 TMP=${TMP:-/tmp}	
664
 PKG=$TMP/package-$PRGNAM
665
 OUTPUT=${OUTPUT:-/tmp} 
666
 
667
 if [ "$ARCH" = "i486" ]; then
668
   SLKCFLAGS="-O2 -march=i486 -mtune=i686"
669
 elif [ "$ARCH" = "i686" ]; then
670
   SLKCFLAGS="-O2 -march=i686 -mtune=i686"
671
 fi
672
 
673
 rm -rf $PKG
674
 mkdir -p $TMP $PKG $OUTPUT
675
 cd $TMP || exit 1
676
 rm -rf $PRGNAM-$VERSION
677
 tar -xzvf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1
678
 cd $PRGNAM-$VERSION || exit 1
679
 chown -R root:root .
680
 chmod -R u+w,go+r-w,a-s .
681
 
682
 echo -e '\E[01;32;40m'"****************************************************************";tput sgr0;
683
 echo -e '\E[01;33;40m'"aplicando o patch para $TMP/$PRGNAM-$VERSION  em`pwd` "               ;tput sgr0;
684
 echo -e '\E[01;32;40m'"****************************************************************";tput sgr0;
685
 echo -e '\E[01;32;40m'
686
 
687
 cp -a $CWD/asio_openssl_init.patch $TMP/$PRGNAM-$VERSION/ 
688
 
689
 patch -p0 < asio_openssl_init.patch
690
 
691
 
692
 echo -e '\E[01;32;40m'"****************************************************************";tput sgr0;
693
 echo -e '\E[01;33;40m'"execucao do script configure para $PRGNAM-$VERSION  em`pwd` "    ;tput sgr0;
694
 echo -e '\E[01;32;40m'"****************************************************************";tput sgr0;
695
 echo -e '\E[01;36;40m'
696
 
697
 CFLAGS="$SLKCFLAGS" \
698
 CXXFLAGS="$SLKCFLAGS" \
699
 ./configure \
700
  --prefix=/usr \
701
  --sysconfdir=/etc \
702
  --localstatedir=/var \
703
  --with-boost=/usr \
704
  --with-openssl=/usr
705
 
706
 echo -e '\E[01;32;40m'"****************************************************************"     ;tput sgr0;
707
 echo -e '\E[01;33;40m'"execucao de make configure para $PRGNAM-$VERSION  em`pwd`   "         ;tput sgr0;
708
 echo -e '\E[01;32;40m'"****************************************************************"     ;tput sgr0;
709
 echo -e '\E[01;34;40m'
710
 
711
 make 
712
 
713
 echo -e '\E[01;32;40m'"******************************************************************"     ;tput sgr0;
714
 echo -e '\E[01;33;40m'"execucao de make install configure para $PRGNAM-$VERSION  em`pwd` "     ;tput sgr0;
715
 echo -e '\E[01;32;40m'"******************************************************************"     ;tput sgr0;
716
 echo -e '\E[01;33;40m'
717
 
718
 make install DESTDIR=$PKG
719
 
720
 echo -e '\E[01;32;40m'"****************************************************************"     ;tput sgr0;
721
 echo -e '\E[01;33;40m'"Criando o pacote $PRGNAM-$VERSION  em`pwd`                  "         ;tput sgr0;
722
 echo -e '\E[01;32;40m'"****************************************************************"     ;tput sgr0;
723
 echo -e '\E[01;32;40m' 
724
 
725
 if [ -d $PKG/usr/man ]; then
726
 ( cd $PKG/usr/man
727
   find . -type f -exec gzip -9 {} \;
728
   for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
729
 )
730
 fi
731
 
732
 mkdir -p $PKG/install
733
 cat $CWD/slack-desc > $PKG/install/slack-desc
734
 
735
 cd $PKG
736
 /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
737
 
738
 tput sgr0;
739
</pre>
740
741
h3. mxml 2.3 library Slackbuild  
742
743
Next step we will download Mini XML 2.3 version on
744
http://www.minixml.org/software.php or in direct link
745
http://ftp.easysw.com/pub/mxml/2.3/mxml-2.3.tar.gz
746
747
*mxml.SlackBuild*
748
749
<pre>
750
 #!/bin/sh
751
 
752
 # Slackware build script for mxml 
753
 # Original form Written by Chess Griffin <chess at chessgriffin dot com>
754
 # Adapted by Miguel Suarez Xavier Penteado <miguel_penteado@fca.unesp.br> 
755
 
756
 PRGNAM=mxml
757
 VERSION=2.3
758
 ARCH=${ARCH:-i486}
759
 BUILD=${BUILD:-1}
760
 TAG=${TAG:-MSXP}
761
 CWD=$(pwd)
762
 TMP=${TMP:-/tmp/SBo}	
763
 PKG=$TMP/package-$PRGNAM
764
 OUTPUT=${OUTPUT:-/tmp}
765
 
766
 if [ "$ARCH" = "i486" ]; then
767
   SLKCFLAGS="-O2 -march=i486 -mtune=i686"
768
 elif [ "$ARCH" = "i686" ]; then
769
   SLKCFLAGS="-O2 -march=i686 -mtune=i686"
770
 fi
771
 
772
 rm -rf $PKG
773
 mkdir -p $TMP $PKG $OUTPUT
774
 cd $TMP || exit 1
775
 rm -rf $PRGNAM-$VERSION
776
 tar -xzvf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1
777
 cd $PRGNAM-$VERSION || exit 1
778
 chown -R root:root .
779
 chmod -R u+w,go+r-w,a-s .
780
 
781
 
782
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
783
 echo -e  '\E[01;33;40m'"Confire mxml in `pwd`                            ";tput sgr0;
784
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
785
 echo -e '\E[01;35;40m';
786
  
787
 CFLAGS="$SLKCFLAGS" \
788
 CXXFLAGS="$SLKCFLAGS" \
789
 ./configure \
790
  --prefix=/usr \
791
  --sysconfdir=/etc \
792
  --localstatedir=/var \
793
  --enable-static=no 
794
 
795
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
796
 echo -e  '\E[01;33;40m'"make mxml in `pwd`                               ";tput sgr0;
797
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
798
 echo -e '\E[01;36;40m';
799
  
800
 make 
801
 
802
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
803
 echo -e  '\E[01;33;40m'"make install mxml in `pwd`                        ";tput sgr0;
804
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
805
 echo -e '\E[01;37;40m';
806
  
807
 make install BUILDROOT=$PKG 
808
  
809
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
810
 echo -e '\E[01;33;40m'" Building packge mxml in `pwd`                    ";tput sgr0;
811
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
812
 echo -e '\E[01;35;40m'; 
813
 
814
 if [ -d $PKG/usr/man ]; then
815
 ( cd $PKG/usr/man
816
   find . -type f -exec gzip -9 {} \;
817
   for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
818
 )
819
 fi
820
 
821
 mkdir -p $PKG/install
822
 cat $CWD/slack-desc > $PKG/install/slack-desc
823
 
824
 cd $PKG
825
 /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
826
 tput sgr0;
827
</pre>
828
829
<pre>
830
 
831
</pre>
832
833
h3. Fastcgi-2.4.0 Slackbuild  
834
835
This slackbuild will install fastcgi library in your Slackware 12 ! You will need Fastcgi library plus apache modules. Lets get Library first.
836
837
You can download fcgi sorces at http://www.fastcgi.com/ or in this direct link
838
http://www.fastcgi.com/dist/fcgi.tar.gz You will get 2.4.0 version
839
840
Before, you must save this patch in sources tar directory 
841
842
<pre>
843
 The patch have 5.117 lines ... sorry try without him
844
</pre>
845
846
847
then you may use fastcgi.Slackbuild
848 2 Pieter Libin
849 1 Pieter Libin
*fastcgi.Slackbuild*
850
851
<pre>
852
 #!/bin/sh
853
 
854
 # Slackware build script for mysql++ 
855
 # Written by Chess Griffin <chess at chessgriffin dot com> 
856
 # Adapted by Miguel Suarez Xavier Penteado <miguel_penteado@fca.unesp.br>
857
 
858
 PRGNAM=fcgi
859
 VERSION=2.4.0
860
 ARCH=${ARCH:-i486}
861
 BUILD=${BUILD:-1}
862
 TAG=${TAG:-MSXP}
863
 CWD=$(pwd)
864
 TMP=${TMP:-/tmp/SBo}	
865
 PKG=$TMP/package-$PRGNAM
866
 OUTPUT=${OUTPUT:-/tmp}
867
 
868
 if [ "$ARCH" = "i486" ]; then
869
   SLKCFLAGS="-O2 -march=i486 -mtune=i686"
870
 elif [ "$ARCH" = "i686" ]; then
871
   SLKCFLAGS="-O2 -march=i686 -mtune=i686"
872
 fi
873
 
874
 rm -rf $PKG
875
 mkdir -p $TMP $PKG $OUTPUT
876
 cd $TMP || exit 1
877
 rm -rf $PRGNAM-$VERSION
878
 #tar -xzvf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1
879
 tar -xzvf $CWD/$PRGNAM.tar.gz || exit 1
880
 cd $PRGNAM-$VERSION || exit 1
881
 chown -R root:root .
882
 chmod -R u+w,go+r-w,a-s .
883
 chmod a-x include/fcgios.h libfcgi/os_unix.c
884
 
885
 cp $CWD/fcgi-2.4.0-autotools.patch $PKG/$PRGNAM-$VERSION
886
 patch -p0 <  $PKG/$PRGNAM-$VERSION/fcgi-2.4.0-autotools.patch
887
 
888
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
889
 echo -e '\E[01;33;40m'"configurando em "`pwd`                                 ;tput sgr0;
890
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
891
 echo -e '\E[01;36;40m'
892
 
893
 CFLAGS="$SLKCFLAGS" \
894
 CXXFLAGS="$SLKCFLAGS" \
895
 ./configure \
896
  --prefix=/usr \
897
  --sysconfdir=/etc \
898
  --localstatedir=/var
899
 
900
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
901
 echo -e '\E[01;33;40m'"make em "`pwd`            ;tput sgr0;
902
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
903
 echo -e '\E[01;32;40m'
904
 make 
905
 
906
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
907
 echo -e '\E[01;33;40m'"make install "`pwd`            ;tput sgr0;
908
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
909
 echo -e '\E[01;38;40m' 
910
 
911
 make install DESTDIR=$PKG
912
 
913
 
914
 if [ -d $PKG/usr/man ]; then
915
 ( cd $PKG/usr/man
916
   find . -type f -exec gzip -9 {} \;
917
   for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
918
 )
919
 fi
920
 
921
 mkdir -p $PKG/install
922
 cat $CWD/slack-desc > $PKG/install/slack-desc 
923
 
924
 cd $PKG
925
 /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
926
 tput sgr0;
927
 
928
</pre>
929
930
931
h3. Modfastcgi-2.4.2 for apache Slackbuild  
932
933
The mod_fastcgi will generate a patch for your apache 2.x.x modules
934
935
Get the module source http://www.fastcgi.com/ or directly here
936
http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz
937
938
939
patch
940
*mod_fastcgi-2.4.2-update.patch*
941
<pre>
942
 sorry, to big 774 lines ... search in google, or try without it
943
</pre>
944
945
Patch for you save in Sorce + Slackbuilds dir
946
947
_*' mod_fastcgi-2.4.2-apache2.2.patch*
948
<pre>
949
 --- mod_fastcgi-2.4.2/fcgi.h	2006-03-22 16:59:55.000000000 +0000
950
 +++ mod_fastcgi-2.4.2/fcgi.h	2006-03-22 17:04:41.000000000 +0000
951
 @@ -73,6 +73,36 @@
952
  #define ap_reset_timeout(a)
953
  #define ap_unblock_alarms()
954
  
955
 +/* starting with apache 2.2 the backward-compatibility defines for
956
 + * 1.3 APIs are not available anymore. Define them ourselves here.
957
 + */
958
 +#ifndef ap_copy_table
959
 +
960
 +#define ap_copy_table apr_table_copy
961
 +#define ap_cpystrn apr_cpystrn
962
 +#define ap_destroy_pool apr_pool_destroy
963
 +#define ap_isspace apr_isspace
964
 +#define ap_make_array apr_array_make
965
 +#define ap_make_table apr_table_make
966
 +#define ap_null_cleanup apr_pool_cleanup_null 
967
 +#define ap_palloc apr_palloc
968
 +#define ap_pcalloc apr_pcalloc
969
 +#define ap_psprintf apr_psprintf
970
 +#define ap_pstrcat apr_pstrcat
971
 +#define ap_pstrdup apr_pstrdup
972
 +#define ap_pstrndup apr_pstrndup
973
 +#define ap_push_array apr_array_push
974
 +#define ap_register_cleanup apr_pool_cleanup_register
975
 +#define ap_snprintf apr_snprintf
976
 +#define ap_table_add apr_table_add
977
 +#define ap_table_do apr_table_do
978
 +#define ap_table_get apr_table_get
979
 +#define ap_table_set apr_table_set
980
 +#define ap_table_setn apr_table_setn
981
 +#define ap_table_unset apr_table_unset
982
 +
983
 +#endif /* defined(ap_copy_table) */
984
 +
985
  #if (defined(HAVE_WRITEV) && !HAVE_WRITEV && !defined(NO_WRITEV)) || defined WIN32
986
  #define NO_WRITEV
987
  #endif
988
 --- mod_fastcgi-2.4.2/Makefile.AP2	2006-03-22 17:04:55.000000000 +0000
989
 +++ mod_fastcgi-2.4.2/Makefile.AP2	2006-03-22 17:05:22.000000000 +0000
990
 @@ -20,8 +20,6 @@
991
  
992
  all: local-shared-build
993
 
994
 -install: install-modules
995
 -
996
  clean:
997
  	-rm -f *.o *.lo *.slo *.la
998
</pre>
999
1000
Outro patch para voce slavar junto ao fonte e aos slackbuilds
1001
1002
_*' mod_fastcgi-2.4.2-fix_warnings.patch*
1003
1004
<pre>
1005
 --- mod_fastcgi-2.4.2/fcgi_config.c	2007-05-25 16:01:49.000000000 +0200
1006
 +++ mod_fastcgi-2.4.2/fcgi_config.c	2007-05-25 16:06:42.000000000 +0200
1007
 @@ -694,7 +694,7 @@
1008
                  return invalid_value(tp, name, fs_path, option, err);
1009
          }
1010
          else if (strcasecmp(option, "-min-server-life") == 0) {
1011
 -            if ((err = get_int(tp, &arg, &s->minServerLife, 0)))
1012
 +            if ((err = get_u_int(tp, &arg, &s->minServerLife, 0)))
1013
                  return invalid_value(tp, name, NULL, option, err);
1014
          }
1015
          else if (strcasecmp(option, "-priority") == 0) {
1016
 @@ -763,12 +763,12 @@
1017
      {
1018
          if (s->group == NULL)
1019
          {
1020
 -            s->group = ap_psprintf(tp, "#%ld", fcgi_util_get_server_gid(cmd->server));
1021
 +            s->group = ap_psprintf(tp, "#%d", fcgi_util_get_server_gid(cmd->server));
1022
          }
1023
  
1024
          if (s->user == NULL)
1025
          {
1026
 -            s->user = ap_psprintf(p, "#%ld", fcgi_util_get_server_uid(cmd->server)); 
1027
 +            s->user = ap_psprintf(p, "#%d", fcgi_util_get_server_uid(cmd->server)); 
1028
          }
1029
  
1030
          s->uid = ap_uname2id(s->user);
1031
 @@ -954,12 +954,12 @@
1032
      {
1033
          if (s->group == NULL)
1034
          {
1035
 -            s->group = ap_psprintf(tp, "#%ld", fcgi_util_get_server_gid(cmd->server));
1036
 +            s->group = ap_psprintf(tp, "#%d", fcgi_util_get_server_gid(cmd->server)); 
1037
         }
1038
  
1039
          if (s->user == NULL)
1040
          {
1041
 -            s->user = ap_psprintf(p, "#%ld", fcgi_util_get_server_uid(cmd->server));
1042
 +            s->user = ap_psprintf(p, "#%d", fcgi_util_get_server_uid(cmd->server));
1043
          }
1044
  
1045
          s->uid = ap_uname2id(s->user); 
1046
 
1047
</pre>
1048
1049
*fastcgi.conf*
1050
1051
<pre>
1052
 # This is the Apache server configuration file providing FastCGI support..
1053
 #
1054
 # Documentation is available at <http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html>
1055
 
1056
 LoadModule fastcgi_module lib/httpd/modules/mod_fastcgi.so
1057
 
1058
 # To use FastCGI to process .fcg .fcgi & .fpl scripts
1059
 AddHandler fastcgi-script fcg fcgi fpl
1060
</pre>
1061
1062
1063
*doinst.sh*
1064
1065
<pre>
1066
 cp /etc/httpd/httpd.conf /etc/httpd/httpd.old
1067
 echo "Include /etc/httpd/extra/fastcgi.conf" >> /etc/httpd/httpd.conf 
1068
 echo "Restarting httpd ..."
1069
 sh /etc/rc.d/rc.httpd restart
1070
</pre>
1071
1072
1073
*slack-desc*
1074
1075
<pre>
1076
            |-----handy-ruler------------------------------------------------------|
1077
 mod_fastcgi: mod_fastcgi 2.4.2
1078
 mod_fastcgi:
1079
 mod_fastcgi: A fastcgi module for httpd
1080
 mod_fastcgi:
1081
 mod_fastcgi:
1082
 mod_fastcgi:
1083
 mod_fastcgi:
1084
 mod_fastcgi:
1085
 mod_fastcgi:
1086
 mod_fastcgi:
1087
</pre>
1088
1089
1090
*modfastcgi.Slackbuild
1091
1092
<pre>
1093
 #!/bin/sh
1094
 #
1095
 # $Id: mod_fastcgi-server.SlackBuild 275 2005-03-08 01:20:25Z freerock $
1096
 
1097
 CWD=`pwd`
1098
 TMP=${TMP:-/tmp}
1099
 PKG=$TMP/package-mod_fastcgi
1100
 
1101
 VERSION=2.4.2
1102
 ARCH=${ARCH:-i486}
1103
 BUILD=1
1104
 
1105
 if [ ! -d $TMP ]; then
1106
   mkdir -p $TMP # location to build the source
1107
 fi
1108
 rm -rf $PKG
1109
 mkdir -p $PKG
1110
 
1111
 if [ "$ARCH" = "i386" ]; then
1112
   SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
1113
 elif [ "$ARCH" = "i486" ]; then
1114
   SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
1115
 elif [ "$ARCH" = "s390" ]; then
1116
   SLKCFLAGS="-O2"
1117
 elif [ "$ARCH" = "x86_64" ]; then
1118
   SLKCFLAGS="-O2"
1119
 fi
1120
 
1121
 cd $TMP 
1122
 tar xzvf $CWD/mod_fastcgi-$VERSION.tar.gz
1123
 
1124
 cd mod_fastcgi-$VERSION
1125
 
1126
 echo "copiando patch ..."
1127
 
1128
 cp $CWD/mod_fastcgi-2.4.2-apache2.2.patch $TMP/mod_fastcgi-$VERSION
1129
 cp $CWD/mod_fastcgi-2.4.2-update.patch $TMP/mod_fastcgi-$VERSION
1130
 cp $CWD/mod_fastcgi-2.4.2-fix_warnings.patch $TMP/mod_fastcgi-$VERSION
1131
 
1132
 echo "aplicando patch ..."
1133
 
1134
 patch -p1 < mod_fastcgi-2.4.2-apache2.2.patch
1135
 patch -p1 < mod_fastcgi-2.4.2-update.patch
1136
 patch -p1 < mod_fastcgi-2.4.2-fix_warnings.patch
1137
 
1138
 rm Makefile
1139
 
1140
 cat Makefile.AP2 > Makefile
1141
 
1142
 LDFLAGS=-s \
1143
 CFLAGS="$SLKCFLAGS" \
1144
 CXXFLAGS="$SLKCFLAGS" 
1145
 
1146
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
1147
 echo -e  '\E[01;33;40m'"make em "`pwd`                                         ;tput sgr0;
1148
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
1149
 echo -e '\E[01;32;40m'
1150
 
1151
 topdir=$(/usr/bin/dirname $(/usr/sbin/apxs -q exp_installbuilddir))
1152
 
1153
 make top_dir=${topdir}
1154
 
1155
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
1156
 echo -e  '\E[01;33;40m'"make install "`pwd`                                    ;tput sgr0;
1157
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
1158
 echo -e '\E[01;36;40m'
1159
 
1160
 make top_dir=${topdir} DESTDIR=$PKG MKINSTALLDIRS="mkdir -p"  install
1161
 
1162
 tput sgr0;
1163
 
1164
 mkdir -p $PKG/etc/httpd/extra/
1165
 cp -a $CWD/fastcgi.conf $PKG/etc/httpd/extra/
1166
  
1167
 echo "Criando diretório de documentação ..."
1168
 mkdir -p $PKG/usr/doc/mod_fastcgi-$VERSION 
1169
 
1170
 echo "Copiando arquivos de documetação ..."
1171
 cp -a  INSTALL README CHANGES  $PKG/usr/doc/mod_fastcgi-$VERSION
1172
 
1173
 chmod 644 $PKG/usr/doc/mod_fastcgi-$VERSION/*
1174
 chown root.root $PKG/usr/doc/mod_fastcgi-$VERSION/* 
1175
 
1176
 find $PKG -type f | xargs file | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded
1177
 gzip -9 $PKG/usr/man/*/*
1178
 
1179
 echo "criando diretório de scripts instalação ..."
1180
 mkdir -p $PKG/install
1181
 cat $CWD/slack-desc > $PKG/install/slack-desc
1182
 cat $CWD/doinst.sh >> $PKG/install/doinst.sh 
1183
 
1184
 echo "criando o pacote ..."
1185
 cd $PKG
1186
 makepkg -l y -c n $TMP/mod_fastcgi-$VERSION-$ARCH-$BUILD.tgz
1187
 
1188
 # Clean up the extra stuff:
1189
 if [ "$1" = "--cleanup" ]; then
1190
   rm -rf $TMP/template-$VERSION
1191
   rm -rf $PKG
1192
 fi
1193
</pre>
1194
1195
1196
h3. Mysql++ Slackbuild  
1197
1198
You can get the sources of Mysql++ at http://tangentsoft.net/mysql++/ or directly in
1199
http://tangentsoft.net/mysql++/releases/mysql++-2.3.2.tar.gz
1200
1201
1202
You may need some how-to or tutorials on internet for mysql++ , so you may like this 
1203
http://www.devarticles.com/c/a/Cplusplus/Building-a-Store-Application-With-MySQL-and-C/
1204
save this with *slack-desc* name in the sources + mysql++.Slacbuild directory
1205
1206
<pre>
1207
 # HOW TO EDIT THIS FILE:
1208
 # The "handy ruler" below makes it easier to edit a package description.  Line
1209
 # up the first '|' above the ':' following the base package name, and the '|' on
1210
 # the right side marks the last column you can put a character in. You must make
1211
 # exactly 11 lines for the formatting to be correct.  It's also customary to
1212
 # leave one space after the ':'.
1213
 
1214
        |-----handy-ruler------------------------------------------------------|
1215
 mysql++: mysql++-2.3.2      
1216
 mysql++:
1217
 mysql++: MySQL++ is a powerful C++ wrapper for MySQL's C API. 
1218
 mysql++: Its purpose is to make working with queries as easy as working
1219
 mysql++: with STL containers.
1220
 mysql++:
1221
 mysql++:
1222
 mysql++:
1223
 mysql++:
1224
 mysql++:
1225
 mysql++:
1226
</pre>
1227
1228
1229
Now you can build package with mysql++.Slackbuild
1230
1231
*Mysql++.Slackbuild
1232
1233
<pre>
1234
 #!/bin/sh
1235
 
1236
 # Slackware build script for mysql++ 
1237
 # Written by Chess Griffin <chess at chessgriffin dot com>
1238
 
1239
 PRGNAM=mysql++
1240
 VERSION=2.3.2
1241
 ARCH=${ARCH:-i486}
1242
 BUILD=${BUILD:-1}
1243
 TAG=${TAG:-MSXP}
1244
 CWD=$(pwd)
1245
 TMP=${TMP:-/tmp/SBo}	
1246
 PKG=$TMP/package-$PRGNAM
1247
 OUTPUT=${OUTPUT:-/tmp}
1248
 
1249
 if [ "$ARCH" = "i486" ]; then
1250
   SLKCFLAGS="-O2 -march=i486 -mtune=i686"
1251
 elif [ "$ARCH" = "i686" ]; then
1252
   SLKCFLAGS="-O2 -march=i686 -mtune=i686"
1253
 fi
1254
 
1255
 rm -rf $PKG
1256
 mkdir -p $TMP $PKG $OUTPUT
1257
 cd $TMP || exit 1
1258
 rm -rf $PRGNAM-$VERSION
1259
 tar -xzvf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1
1260
 cd $PRGNAM-$VERSION || exit 1
1261
 chown -R root:root .
1262
 chmod -R u+w,go+r-w,a-s .
1263
 
1264
 CFLAGS="$SLKCFLAGS" \
1265
 CXXFLAGS="$SLKCFLAGS" \
1266
 ./configure \
1267
   --prefix=/usr \
1268
   --sysconfdir=/etc \
1269
   --localstatedir=/var
1270
 
1271
 make 
1272
 
1273
 make install DESTDIR=$PKG
1274
 
1275
 if [ -d $PKG/usr/man ]; then
1276
 ( cd $PKG/usr/man
1277
   find . -type f -exec gzip -9 {} \;
1278
   for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
1279
 )
1280
 fi
1281
 
1282
 mkdir -p $PKG/install
1283
 cat $CWD/slack-desc > $PKG/install/slack-desc
1284
 
1285
 cd $PKG
1286
 /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
1287
 
1288
</pre>
1289
1290
1291
1292
h3. ICU Slackbuild  
1293
1294
optional
1295
1296
1297
h3. Wt-2.0.5 Slackbuild  
1298
1299
Finally tou ready for Witty.
1300
1301
Get witty sources on 
1302
http://www.webtoolkit.eu/ or in direct link
1303
http://easynews.dl.sourceforge.net/sourceforge/witty/wt-2.0.5.tar.gz
1304
1305
#put this description file file as *slack-desc* in wt.Slackbuild source directory
1306
<pre>
1307
 # HOW TO EDIT THIS FILE:
1308
 # The "handy ruler" below makes it easier to edit a package description.  Line
1309
 # up the first '|' above the ':' following the base package name, and the '|' on
1310
 # the right side marks the last column you can put a character in. You must make
1311
 # exactly 11 lines for the formatting to be correct.  It's also customary to
1312
 # leave one space after the ':'.
1313
 
1314
   |-----handy-ruler------------------------------------------------------|
1315
 wt: wt-2.0.5 - Webtoolkit
1316
 wt:
1317
 wt: Wt (pronounced 'witty') is a C++ library and application server
1318
 wt: for developping and deploying web applications. The API is 
1319
 wt: widget-centric, and inspired by existing C++ Graphical User Interface 
1320
 wt: (GUI) APIs. To the developer, it offers complete abstraction of any 
1321
 wt: web-specific implementation details.
1322
 wt: In contrast, a web application developed with Wt is written in only 
1323
 wt: one compiled language (C++), from which the library generates the 
1324
 wt: necessary HTML, Javascript, CGI, and AJAX code.
1325
 wt:
1326
 wt: http://www.webtoolkit.eu/
1327
 wt:
1328
</pre>
1329
1330
1331
1332
#put this config file in Slackbuild + source directory
1333
*wt_httpd.conf*
1334
1335
<pre>
1336
 <Directory /var/www/wt/>
1337
 	#Order Deny,Allow
1338
 	Allow from all
1339
 	# Don't show indexes for directories on publicly accessible machines (Uncomment if it's a private devshell).
1340
 	#Options -Indexes
1341
 	# Enable CGIs to be executed 
1342
 	Options ExecCGI
1343
 </Directory> 
1344
 
1345
</pre>
1346
1347
#put this post-install script file in Slackbuild + source directory
1348
*doinst.sh*
1349
<pre>
1350
 echo "backup /etc/httpd/httpd.conf as httpd.conf.old ..."
1351
 cp /etc/httpd/httpd.conf /etc/httpd/httpd.conf.old 
1352
 echo "Including /etc/httpd/extra/wt_httpd.conf in httpd.conf ..."
1353
 echo "Include /etc/httpd/extra/wt_httpd.conf" >> /etc/httpd/httpd.conf  
1354
 echo "Reloading Apache httpd ..."
1355
 sh /etc/rc.d/rc.httpd restart
1356
</pre>
1357
1358
*wt.Slackbuild*
1359
1360
<pre>
1361
 #!/bin/sh
1362
 # Slackware build script for wt.
1363
 NAME=wt
1364
 
1365
 # Get the current and temporary directories
1366
 CWD=`pwd`
1367
 if [ "$TMP" = "" ]; then
1368
   TMP=/tmp
1369
 fi
1370
 PKG=$TMP/package-$NAME
1371
 
1372
 VERSION=${VERSION:-2.0.5}
1373
 ARCH=${ARCH:-i486}
1374
 BUILD=${BUILD:-1}
1375
 
1376
 if [ "$ARCH" = "i386" ]; then
1377
   SLKCFLAGS="-O2 -m32 -march=i386 -mcpu=i386"
1378
 elif [ "$ARCH" = "i486" ]; then
1379
   SLKCFLAGS="-O2 -m32 -march=i486 -mtune=i686"
1380
 elif [ "$ARCH" = "s390" ]; then
1381
   SLKCFLAGS="-O2"
1382
 elif [ "$ARCH" = "x86_64" ]; then
1383
   SLKCFLAGS="-O2"
1384
 fi
1385
 
1386
 if [ ! -d $TMP ]; then
1387
   mkdir -p $TMP # location to build the source
1388
 fi
1389
 
1390
 # Clean up a previous build
1391
 rm -rf $PKG
1392
 mkdir -p $PKG 
1393
 
1394
 # Decompress
1395
 cd $TMP
1396
 rm -rf $NAME-$VERSION
1397
 tar xvf $CWD/$NAME-$VERSION.tar.gz || exit 1
1398
 cd $NAME-$VERSION
1399
 
1400
 # Fix
1401
 chown -R root:root .
1402
 find . -perm 666 -exec chmod 644 {} \;
1403
 find . -perm 664 -exec chmod 644 {} \;
1404
 find . -perm 600 -exec chmod 644 {} \;
1405
 find . -perm 444 -exec chmod 644 {} \;
1406
 find . -perm 400 -exec chmod 644 {} \;
1407
 find . -perm 440 -exec chmod 644 {} \;
1408
 find . -perm 777 -exec chmod 755 {} \;
1409
 find . -perm 775 -exec chmod 755 {} \;
1410
 find . -perm 511 -exec chmod 755 {} \;
1411
 find . -perm 711 -exec chmod 755 {} \;
1412
 find . -perm 555 -exec chmod 755 {} \;
1413
 
1414
 mkdir -p $PKG/var/www/wt
1415
 mkdir -p $PKG/etc/wt
1416
 
1417
 mkdir $PKG/usr/src/wt
1418
 cp $CWD/wt.Slackbuild $PKG/usr/src/wt
1419
 
1420
 mkdir `pwd`/build
1421
 cd `pwd`/build
1422
 
1423
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
1424
 echo -e  '\E[01;33;40m'"execucao do script  cmake para wt em "`pwd`            ;tput sgr0;
1425
 echo -e '\E[01;32;40m'"**************************************************"     ;tput sgr0;
1426
 echo -e '\E[01;36;40m'
1427
 
1428
 cmake -D DEPLOYROOT=/var/www/wt \
1429
 -D WEBUSER=apache \
1430
 -D BUILD_SHARED_LIBS=ON \
1431
 -D CONFIGURATION=/etc/wt \
1432
 -D BOOST_COMPILER=gcc \
1433
 -D BOOST_VERSION=1_34_1 \
1434
 -D BOOST_DIR=/usr \
1435
 -D RUNDIR=/var/run \
1436
 -D CMAKE_INSTALL_PREFIX=/usr \
1437
 -D HTTP_WITH_SSL=true \
1438
 -D CONNECTOR_FCGI=true \
1439
 -D EXAMPLES_CONNECTOR=wthttp \
1440
 -D WEBGROUP=users ../
1441
 #-D EXECUTABLE_OUTPUT_PATH=/var/www/wt/bin \
1442
 
1443
 
1444
 # Build
1445
 
1446
 echo -e '\E[01;32;40m'"**************************************************" ; tput sgr0;
1447
 echo -e  '\E[01;33;40m'"        Compilando wt com make em " `pwd`          ; tput sgr0;
1448
 echo -e '\E[01;32;40m'"**************************************************" ; tput sgr0;
1449
 echo -e '\E[01;34;40m';
1450
 
1451
 make
1452
 
1453
 echo -e '\E[01;32;40m'"**************************************************" ; tput sgr0;
1454
 echo -e  '\E[01;33;40m'"        Compilando exemplos com make em " `pwd`          ; tput sgr0;
1455
 echo -e '\E[01;32;40m'"**************************************************" ; tput sgr0;
1456
 echo -e '\E[01;32;40m';
1457
 
1458
 make -C examples
1459
 
1460
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
1461
 echo -e  '\E[01;33;40m'"instalado wt  em $PKG com o make  install"        ;tput sgr0;
1462
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
1463
 echo -e '\E[01;35;40m';
1464
 
1465
 make install DESTDIR=$PKG
1466
 
1467
 
1468
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
1469
 echo -e  '\E[01;33;40m'"instalado wt examples  em $PKG             "      ;tput sgr0;
1470
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
1471
 echo -e '\E[01;32;40m';
1472
 
1473
 
1474
 mkdir -p $PKG/usr/share/$NAME-$VERSION/examples
1475
 cp -a $TMP/$NAME-$VERSION/build/examples $PKG/usr/share/$NAME-$VERSION/
1476
  
1477
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0;
1478
 echo -e  '\E[01;33;40m'"Montando o pacote"                                ;tput sgr0;
1479
 echo -e '\E[01;32;40m'"**************************************************";tput sgr0; 
1480
 
1481
 # Clean up a previous build
1482
 rm -rf $PKG/etc/wt
1483
 mkdir -p $PKG/etc/wt 
1484
 
1485
 rm -rf $PKG/var/www/wt
1486
 mkdir -p $PKG/var/www/wt
1487
 
1488
 mkdir -p $PKG/etc/httpd/extra
1489
 cp $CWD/wt_httpd.conf $PKG/etc/httpd/extra
1490
 
1491
 
1492
 # Gzip man pages
1493
 find $PKG/usr/man -name "*.[123456789]" -exec gzip -9 {} \;
1494
 
1495
 # Strip binaries
1496
 ( cd $PKG
1497
   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
1498
   find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
1499
 )
1500
 
1501
 # Copy Slackware package files
1502
 mkdir -p $PKG/install
1503
 cat $CWD/slack-desc > $PKG/install/slack-desc
1504
 cat $CWD/doinst.sh >> $PKG/install/doinst.sh
1505
 
1506
 # Create package
1507
 echo "Creating package"
1508
 cd $PKG
1509
 makepkg -l y -c n ../$NAME-$VERSION-$ARCH-$BUILD.tgz 
1510
 
1511
 # Clean up
1512
 if [ "$1" = "--cleanup" ]; then 
1513
 	rm -rf $TMP/$NAME-$VERSION
1514
 	rm -rf $PKG
1515
 fi
1516
</pre>
1517
1518
1519
h3. Testing Witty without apache 
1520
1521
open a konsole window and
1522
1523
<pre>
1524
 cd /usr/share/wt-2.0.5/examples/
1525
 cd hello
1526
 sh deploy.sh
1527
</pre>
1528
1529
then go to
1530
<pre>
1531
 cd /var/www/wt/hello
1532
 cd /var/www/wt/hello/
1533
 ./hello.wt --docroot . --http-address your.ip.com --http-port 8080
1534
</pre>
1535
1536
and open your browser at http://you.ip.com:8080
1537
1538
Have a fun !!!