Monday Jul 20, 2009

Running Open Web Server on FreeBSD

Running Open Web Server on FreeBSD

Downloaded Free BSD from ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.2/7.2-RELEASE-i386-dvd1.iso.gz

and installed it.

For reference, see http://wikis.sun.com/display/wsFOSS/Checkout+and+Build+Instructions

To search for a package, I used cd /usr/ports; make search name="mercurial" and so on.

First make sure that you already have these components

GNU make 3.81 /usr/local/bin/gmake
C/C++ Compiler 4.2.1 /usr/bin/g++ and gcc
Zlib  /usr/lib/libz.so already installed
Perl 5.8.9 /usr/bin/perl
CVS  1.11.22.1 /usr/bin/cvs

Install/Build these Components

Mercurial
cd /usr/ports/devel/mercurial; make install

Java SE

5 or 6

Due to license problems had to manually download and putting it in /usr/ports/distfiles
For JDK 5 : cd /usr/posts/java/jdk15; make install and download the following files into /usr/ports/distfiles

  • http://www.java.net/download/tiger/tiger_u16/jdk-1_5_0_16-fcs-bin-b02-jrl-28_may_2008.jar
  • http://www.java.net/download/tiger/tiger_u16/jdk-1_5_0_16-fcs-src-b02-jrl-28_may_2008.jar
  • tzupdater-1_3_12-2009a.zip from http://www.filewatcher.com/m/tzupdater-1_3_12-2009a.zip.261842.0.0.html
  • Java(TM) Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 5.0 - jce_policy-1_5_0.zip
  • http://www.eyesbeyond.com/freebsddom/java/jdk15.html - bsd-jdk15-patches-9.tar.bz2
For JDK 6 : cd /usr/posts/java/diablo-jdk16; make install and download the following files into /usr/ports/distfiles
  • Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6 jce_policy-6.zip
  • Java SE Timezone Updater 1.3.15 - tzupdater-1_3_15-2009g.zip
  • http://www.freebsdfoundation.org/cgi-bin/download?download=diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2
Ant  cd /usr/ports/devel/apache-ant; make install
NSPR cd /usr/ports/devel/nspr; make install
NSS cd /usr/ports/security/nss; make install

Xerces

C++

cd /usr/ports/textproc/xerces-c2; make install
cd /usr/ports/textproc/xerces-c2-devel; make install
selected Use ICU transcoder option. Build thread safe version of library.
Got an error

"/usr/bin/ld: can not find -lgcc_pic"

For this we need to manually modify "files/filepatch-src-xercesc-Makefile.incl"

and change "-lgcc_pic" to "-lgcc"

Xalan

C++

cd /usr/ports/textproc/xalan; make install
Selected INMEN and TRANSCODER_ICU options.
PCRE
cd /usr/ports/devel/pcre; make install
ICU cd /usr/ports/devel/icu; make install
SASL cd /usr/ports/security/cyrus-sasl2; make install

Mozilla
LDAP

C SDK\*


  • cd /usr/ports/convertors/libiconv; make install
  • cd /usr/ports/convertors/iconv; make install
  • cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -P -rLDAPCSDK_6_0_5_RTM DirectorySDKSourceC
  • cd mozilla
  • Add this patch
    Index: directory/c-sdk/configure
    ===================================================================
    RCS file: /cvsroot/mozilla/directory/c-sdk/configure,v
    retrieving revision 5.65
    diff -u -r5.65 configure
    --- directory/c-sdk/configure   17 Sep 2007 17:46:23 -0000      5.65
    +++ directory/c-sdk/configure   22 Jul 2009 07:27:11 -0000
    @@ -4362,12 +4362,7 @@
     EOF
         CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall"
    -    MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
    -    if test "$MOZ_OBJFORMAT" = "elf"; then
    -        DLL_SUFFIX=so
    -    else
    -        DLL_SUFFIX=so.1.0
    -    fi
    +   DLL_SUFFIX=so
         DSO_CFLAGS=-fPIC
         DSO_LDOPTS=-Bshareable
         ;;
    Index: directory/c-sdk/ldap/libraries/libldap/Makefile.in
    ===================================================================
    RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in,v
    retrieving revision 5.23
    diff -u -r5.23 Makefile.in
    --- directory/c-sdk/ldap/libraries/libldap/Makefile.in  20 Jun 2007 17:57:11 -0000      5.23
    +++ directory/c-sdk/ldap/libraries/libldap/Makefile.in  22 Jul 2009 07:27:12 -0000
    @@ -267,6 +267,10 @@
     EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) -pthread
     endif
    +ifeq ($(OS_ARCH), FreeBSD)
    +EXTRA_LIBS += -L$(dist_libdir) -l$(LBER_LIBNAME) -L/usr/lib -lcompat
    +endif
    +
     ifeq ($(HAVE_SASL), 1)
     EXTRA_LIBS += $(SASL_LINK)
     endif
  • cd directory/c-sdk
  • ./configure --with-sasl-inc=/usr/local/include/sasl

       --with-sasl-lib=/usr/local/lib

         --with-nspr-lib=/usr/local/lib --with-nspr-inc=/usr/local/include/nspr/ --with-nspr

         --with-nss-lib=/usr/local/lib/nss --with-nss-inc=/usr/local/include/nss/nss/ --with-nss

  • gmake
  • cd ../../dist/
  • sudo mkdir /usr/local/include/mozldap /usr/local/lib/mozldap
  • sudo cp public/ldap/\* /usr/local/include/mozldap/
  • sudo cp lib/\* /usr/local/lib/mozldap/

\*Note  There is one /usr/ports/net/ldapsdk. It downloads and builds ldapsdk_12311998.tar.gz.

But I can see it in ancient now from mozilla site http://ftp.mozilla.org/pub/mozilla.org/directory/c-sdk/ancient/

So I built Mozilla C SDK myself.

Hack IN NSPR

One manual hack you need to do in "/usr/local/include/prinet.h" 

#if defined(FREEBSD) || defined(BSDI) || defined(QNX)
#include <rpc/types.h> /\* the only place that defines INADDR_LOOPBACK \*/
#endif

replace it by

#ifndef INADDR_LOOPBACK
#define INADDR_LOOPBACK         (u_long)0x7F000001
#endif

Building Open Web Server

  • /usr/local/bin/hg clone ssh://anon@hg.opensolaris.org/hg/webstack/webserver
  • cd webserver
  • DOWNLOAD AND PATCH THESE DIFFS
  • gmake BUILD_VARIANT=OPTIMIZED
  • gmake BUILD_VARIANT=OPTIMIZED install

Go to work/FreeBSD7.2-RELEASE_OPT.OBJ/https-test/bin/ directory and start the server instance using startserv script.

For the last two gmake commands, you can add WS_INSTALL_ROOT=/opt/ws if you want the server instance to be installed in /opt/ws/https-test

References:

About

Meena Vyas

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today