httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From minf...@apache.org
Subject svn commit: r1294380 - in /httpd/httpd/branches/2.2.x: build/aix/ build/aix/README build/aix/aixinfo build/aix/buildaix.ksh build/aix/mkinstallp.ksh config.layout
Date Mon, 27 Feb 2012 22:57:19 GMT
Author: minfrin
Date: Mon Feb 27 22:57:18 2012
New Revision: 1294380

URL: http://svn.apache.org/viewvc?rev=1294380&view=rev
Log:
AIX: Add build scripts for AIX.
Submitted by: Michael Felt <mamfelt gmail com>

Added:
    httpd/httpd/branches/2.2.x/build/aix/
    httpd/httpd/branches/2.2.x/build/aix/README
    httpd/httpd/branches/2.2.x/build/aix/aixinfo
    httpd/httpd/branches/2.2.x/build/aix/buildaix.ksh   (with props)
    httpd/httpd/branches/2.2.x/build/aix/mkinstallp.ksh   (with props)
Modified:
    httpd/httpd/branches/2.2.x/config.layout

Added: httpd/httpd/branches/2.2.x/build/aix/README
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/build/aix/README?rev=1294380&view=auto
==============================================================================
--- httpd/httpd/branches/2.2.x/build/aix/README (added)
+++ httpd/httpd/branches/2.2.x/build/aix/README Mon Feb 27 22:57:18 2012
@@ -0,0 +1,38 @@
+The script buildaix.ksh will attempt to build a AIX installp fileset
+out of a source tree for ASF project
+
+REQUIREMENTS:
+  Fileset                      Level  State  Type  Description (Uninstaller)
+  ----------------------------------------------------------------------------
+  bos.adt.insttools          5.3.7.2    C     F    Tool to Create installp
+                                                   Packages
+  Fileset                      Level  State  Type  Description (Uninstaller)
+  ----------------------------------------------------------------------------
+  rpm.rte                   3.0.5.41    C     F    RPM Package Manager
+
+Additional:
+Preferred: download zlib sources and copy zlib.h and zconf.h to /opt/include
+and, if configure cannot find them directly, add symbolic links from /usr/include to /opt/include
+
+To build a package, make sure you are in the root of the source tree,
+and run:
+
+build/aix/buildaix.ksh
+
+An AIX fileset named $PKG.$NAME.$ARCH.$VERSION.I will be
+created in the build/aix directory. the .template file created is also there.
+
+KNOWN issues:
+on AIX libtool is known to have issues with the install command.
+Some of these issues have been resolved by extracting the apr/apu utilities
+from the projects (i.e. NOT using the embedded version)
+In case of problems I recommend that you install the GNU 'install' program (part of coreutils)
+If make DESTDIR=$TEMPDIR install command continues to fail, try 'make install' and then run
+the buildaix.ksh command again
+
+TODO
+Add Copyright display/banner
+Add Apache LICENSE to fileset and require acceptance
+Add special instructions for TCB - to ignore /etc/* /var/httpd/htdocs/*
+Add _config_i scripts to setup autostart
+Add _pre_i scripts to verify pre-requisites, required users/groups, etc.

Added: httpd/httpd/branches/2.2.x/build/aix/aixinfo
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/build/aix/aixinfo?rev=1294380&view=auto
==============================================================================
--- httpd/httpd/branches/2.2.x/build/aix/aixinfo (added)
+++ httpd/httpd/branches/2.2.x/build/aix/aixinfo Mon Feb 27 22:57:18 2012
@@ -0,0 +1,16 @@
+
+PKG="ASF"
+NAME="httpd"
+ARCH="powerpc"
+VERSION="2.2.22"
+CATEGORY="application"
+VENDOR="Apache Software Foundation"
+EMAIL="dev@httpd.apache.org"
+VMMN=`build/get-version.sh mmn include/ap_mmn.h MODULE_MAGIC_NUMBER`
+REVISION=`build/get-version.sh all include/ap_release.h AP_SERVER`
+VERSION=`echo $REVISION | cut -d- -s -f1`
+RELEASE=`echo $REVISION | cut -d- -s -f2`
+if [ "x$VERSION" = "x" ]; then
+      VERSION=$REVISION
+      RELEASE=0
+fi

Added: httpd/httpd/branches/2.2.x/build/aix/buildaix.ksh
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/build/aix/buildaix.ksh?rev=1294380&view=auto
==============================================================================
--- httpd/httpd/branches/2.2.x/build/aix/buildaix.ksh (added)
+++ httpd/httpd/branches/2.2.x/build/aix/buildaix.ksh Mon Feb 27 22:57:18 2012
@@ -0,0 +1,124 @@
+#!/usr/bin/ksh
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+# buildaix.ksh: This script builds an AIX fileset of Apache httpd
+
+# if arguments - try to run fast
+cmd=$0
+
+export CFLAGS='-O2'
+
+lslpp -L bos.adt.insttools >/dev/null
+ [[ $? -ne 0 ]] && echo "must have bos.adt.insttools installed" && exit -1
+
+apr_config=`which apr-1-config`
+apu_config=`which apu-1-config`
+
+if [[ -z ${apr_config} && -z ${apu_config} ]]
+then
+	export PATH=/opt/bin:${PATH}
+	apr_config=`which apr-1-config`
+	apu_config=`which apu-1-config`
+fi
+
+while test $# -gt 0
+do
+  # Normalize
+  case "$1" in
+  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) optarg= ;;
+  esac
+
+  case "$1" in
+  --with-apr=*)
+  apr_config=$optarg
+  ;;
+  esac
+
+  case "$1" in
+  --with-apr-util=*)
+  apu_config=$optarg
+  ;;
+  esac
+
+  shift
+  argc--
+done
+
+if [ ! -f "$apr_config" -a ! -f "$apr_config/configure.in" ]; then
+  echo "The apr source directory / apr-1-config could not be found"
+  echo "If available, install the ASF.apu.rte and ASF.apr.rte filesets"
+  echo "Usage: $cmd [--with-apr=[dir|file]] [--with-apr-util=[dir|file]]"
+  exit 1
+fi
+
+if [ ! -f "$apu_config" -a ! -f "$apu_config/configure.in" ]; then
+  echo "The apu source directory / apu-1-config could not be found"
+  echo "If available, install the ASF.apu.rte and ASF.apr.rte filesets"
+  echo "Usage: $cmd [--with-apr=[dir|file]] [--with-apr-util=[dir|file]]"
+  exit 1
+fi
+
+. build/aix/aixinfo
+LAYOUT=AIX
+TEMPDIR=/var/tmp/$USER/${NAME}.${VERSION}
+rm -rf $TEMPDIR
+
+if [[ ! -e ./Makefile ]] # if Makefile exists go faster
+then
+	echo "+ ./configure \n\
+		--enable-layout=$LAYOUT \n\
+		--with-apr=$apr_config \n\
+		--with-apr-util=$apu_config \n\
+		--with-mpm=worker \n\
+		--enable-ssl \n\
+		--enable-mods-shared=all > build/aix/configure.out"
+	./configure \
+		--enable-layout=$LAYOUT \
+		--with-apr=$apr_config \
+		--with-apr-util=$apu_config \
+		--with-mpm=worker \
+		--enable-ssl \
+		--enable-mods-shared=all > build/aix/configure.out
+		 [[ $? -ne 0 ]] && echo './configure' returned an error && exit -1
+else
+	echo $0: using existing Makefile
+	echo $0: run make distclean to get a standard AIX configure
+	echo
+	ls -l ./Makefile config.*
+	echo
+fi
+
+echo "+ make > build/aix/make.out"
+make > build/aix/make.out
+ [[ $? -ne 0 ]] && echo 'make' returned an error && exit -1
+
+echo "+ make install DESTDIR=$TEMPDIR > build/aix/install.out"
+make install DESTDIR=$TEMPDIR > build/aix/install.out
+ [[ $? -ne 0 ]] && echo 'make install' returned an error && exit -1
+
+echo "+ build/aix/mkinstallp.ksh $TEMPDIR > build/aix/mkinstallp.out"
+build/aix/mkinstallp.ksh $TEMPDIR > build/aix/mkinstallp.out
+ [[ $? -ne 0 ]] && echo mkinstallp.ksh returned an error && exit -1
+
+rm -rf $TEMPDIR
+
+# list installable fileset(s)
+echo ========================
+installp -d build/aix -L
+echo ========================

Propchange: httpd/httpd/branches/2.2.x/build/aix/buildaix.ksh
------------------------------------------------------------------------------
    svn:executable = *

Added: httpd/httpd/branches/2.2.x/build/aix/mkinstallp.ksh
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/build/aix/mkinstallp.ksh?rev=1294380&view=auto
==============================================================================
--- httpd/httpd/branches/2.2.x/build/aix/mkinstallp.ksh (added)
+++ httpd/httpd/branches/2.2.x/build/aix/mkinstallp.ksh Mon Feb 27 22:57:18 2012
@@ -0,0 +1,200 @@
+#!/usr/bin/ksh
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+# minstallp.ksh # create an installp image of ${NAME} (defined in aixinfo)
+# from TEMPDIR using mkinstallp (part of bos.adt.insttools)
+
+[[ $# == 0 ]] && echo $0: Syntax error && echo "Syntax: $0 <BaseDirectory>"
&& exit -1
+
+umask 022
+TEMPDIR=$1
+BASE=`pwd`
+cd ${TEMPDIR}
+[[ $? != 0 ]] && echo $0: ${TEMPDIR} -- bad directory && exit -1
+
+# clean up side-effects from DEBUG passes - usr/local might be there as
+# a circular link i.e. usr/local points at /usr/local
+# as we are not using /usr/local for ASF packaging, remove it!
+# mkinstallp seems to make usr/local -> /usr/local 
+[[ -f usr/local ]] && rm -f usr/local && echo removed unexpected usr/local
!!
+[[ -L usr/local ]] && rm -f usr/local && echo removed unexpected usr/local
!!
+[[ -d usr/local ]] && rm -rf usr/local && echo removed unexpected usr/local
!!
+
+# use the aixinfo for PKG NAME VERSION etc labels
+cd ${BASE}
+. build/aix/aixinfo
+# INFO=${BASE}/build/aix/.info
+# mkdir -p $INFO
+INFO=${BASE}/build/aix
+template=${INFO}/${PKG}.${NAME}.${VERSION}.template
+>$template
+
+# mkinstallp template definitions
+# TODO: add AIX oslevel/uname information for package filename
+package=$PKG
+name=$NAME
+vrmf=$VERSION
+release=$RELEASE
+descr="$NAME version ${VERSION} for $ARCH ${VENDOR}"
+
+# copy LICENSE information
+# TODO: setup template so that license acceptance is required
+# TODO: add Copyright Information for display during install
+mkdir -p ${TEMPDIR}/usr/swlag/en_US
+cp ${BASE}/LICENSE ${TEMPDIR}/usr/swlag/en_US/${PKG}.${NAME}.la
+
+cd ${TEMPDIR}
+# remove files we do not want as "part" possibly
+# left-over from a previous packaging
+rm -rf .info lpp_name tmp usr/lpp
+[[ $? -ne 0 ]] && echo $cmd: cleanup error && pwd && ls -ltr &&
exit -1
+
+#if we are going to add extra symbolic links - do it now
+[[ -r build/aix/aixlinks ]] && ksh build/aix/aixlinks
+
+# get the directory sizes in blocks
+for d in etc opt var
+do
+	if [[ -d $d/${NAME} ]]
+	then
+		set `du -s $d/${NAME}`
+	else
+		[[ -d $d ]] && set `du -s $d`
+	fi
+	# make sure the argument exists before using setting values
+	if [[ -d $d ]]
+	then
+		eval nm$d=/"$2"
+		let sz$d=$1
+	fi
+done
+
+files=./${NAME}.${VERSION}
+cd ${TEMPDIR}/..
+find ${files} -type d -exec chmod og+rx {} \;
+chmod -R go+r ${files}
+chown -R 0.0 ${files}
+
+cat - <<EOF >>$template
+Package Name: ${PKG}.${NAME}
+Package VRMF: ${VERSION}.${RELEASE}
+Update: N
+Fileset
+  Fileset Name: ${PKG}.${NAME}.rte
+  Fileset VRMF: ${VERSION}.${RELEASE}
+  Fileset Description: ${descr}
+  USRLIBLPPFiles
+  EOUSRLIBLPPFiles
+  Bosboot required: N
+  License agreement acceptance required: N
+  Name of license agreement: 
+  Include license files in this package: N
+  Requisites:
+EOF
+
+[[ $szetc -ne 0 ]] && echo "        Upsize: ${nmetc} $szetc;" >> $template
+[[ $szopt -ne 0 ]] && echo "        Upsize: ${nmopt} $szopt;" >> $template
+[[ $szvar -ne 0 ]] && echo "        Upsize: ${nmvar} $szvar;" >> $template
+echo "  USRFiles" >> $template
+
+# USR part -- i.e. files in /usr and /opt
+cd ${TEMPDIR}/..
+find ${files}/usr/swlag ${files}/opt \
+	| sed -e s#^${files}## | sed -e "/^$/d" >>$template
+echo "  EOUSRFiles" >> $template
+
+if [[ $szetc -gt 0 || $szvar -gt 0 ]]
+then
+INSTROOT=${TEMPDIR}/usr/lpp/${PKG}.${NAME}/inst_root
+mkdir -p ${INSTROOT}
+cd ${TEMPDIR}
+[[ $szetc -gt 0 ]] && find ./etc -type d | backup -if - | (cd ${INSTROOT}; restore
-xqf -) >/dev/null
+[[ $szvar -gt 0 ]] && find ./var -type d | backup -if - | (cd ${INSTROOT}; restore
-xqf -) >/dev/null
+cat - <<EOF >>$template
+  ROOT Part: Y
+  ROOTFiles
+EOF
+
+# ROOT part 
+cd ${TEMPDIR}/..
+find ${files}/etc ${files}/var \
+	| sed -e s#^${files}## | sed -e "/^$/d" >>$template
+else
+# no ROOT parts to include
+cat - <<EOF >>$template
+  ROOT Part: N
+  ROOTFiles
+EOF
+fi
+cat - <<EOF >>$template
+  EOROOTFiles
+  Relocatable: N
+EOFileset
+EOF
+# man pages as seperate fileset
+cd ${TEMPDIR}
+if [[ -d usr/share/man ]]
+then
+	# manual pages, space required calculation
+	set `du -s usr/share/man`
+	szman=$1
+	descr="$NAME ${VERSION} man pages ${VENDOR}"
+	cat - <<EOF >>$template
+Fileset
+  Fileset Name: ${PKG}.${NAME}.man.en_US
+  Fileset VRMF: ${VERSION}.${RELEASE}
+  Fileset Description: ${descr}
+  USRLIBLPPFiles
+  EOUSRLIBLPPFiles
+  Bosboot required: N
+  License agreement acceptance required: N
+  Name of license agreement:
+  Include license files in this package: N
+  Requisites:
+EOF
+
+	echo "        Upsize: /usr/share/man ${szman};" >> $template
+	echo "  USRFiles" >> $template
+	cd ${TEMPDIR}/..
+	find ${files}/usr/share | sed -e s#^${files}## | sed -e "/^$/d" >>$template
+	cat - <<EOF >>$template
+  EOUSRFiles
+  ROOT Part: N
+  ROOTFiles
+  EOROOTFiles
+  Relocatable: N
+EOFileset
+EOF
+fi
+
+# use mkinstallp to create the fileset. result is in ${TEMPDIR}/tmp
+# must actually sit in TEMPDIR for ROOT part processing to succeed
+# also - need "empty" directories to exist, as they do not get copied
+# in the inst_root part
+cd ${TEMPDIR}
+mkinstallp -d ${TEMPDIR} -T ${template}
+[[ $? -ne 0 ]] && echo mkinstallp returned error status && exit -1
+
+# copy package to build/aix
+# create TOC
+cp ${TEMPDIR}/tmp/$PKG.$NAME.$VERSION.0.bff ${BASE}/build/aix
+cd ${BASE}/build/aix
+rm -f $PKG.$NAME.$VERSION.$ARCH.I
+mv $PKG.$NAME.$VERSION.0.bff $PKG.$NAME.$ARCH.$VERSION.I
+rm -f .toc
+inutoc .

Propchange: httpd/httpd/branches/2.2.x/build/aix/mkinstallp.ksh
------------------------------------------------------------------------------
    svn:executable = *

Modified: httpd/httpd/branches/2.2.x/config.layout
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/config.layout?rev=1294380&r1=1294379&r2=1294380&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/config.layout (original)
+++ httpd/httpd/branches/2.2.x/config.layout Mon Feb 27 22:57:18 2012
@@ -322,3 +322,27 @@
     installbuilddir: ${prefix}/etc/apache2/build
     errordir:      ${datadir}/error
 </Layout>
+
+# AIX layout
+<Layout AIX>
+    prefix:        /opt/httpd
+    exec_prefix:   /opt/httpd
+    bindir:        ${exec_prefix}/bin
+    sbindir:       ${exec_prefix}/sbin
+    libdir:        ${exec_prefix}/lib
+    libexecdir:    ${exec_prefix}/libexec
+    mandir:        /usr/share/man
+    sysconfdir:    /etc/httpd
+    datadir:       /var/httpd
+    installbuilddir: ${datadir}/build
+    errordir:      ${datadir}/error
+    htdocsdir:     ${datadir}/htdocs
+    cgidir:        ${datadir}/cgi-bin
+    iconsdir:      ${prefix}/icons
+    manualdir:     ${prefix}/manual
+    includedir:    ${prefix}/include
+    localstatedir: /var/httpd
+    runtimedir:    ${localstatedir}/run
+    logfiledir:    ${localstatedir}/logs
+    proxycachedir: ${localstatedir}/proxy
+</Layout>



Mime
View raw message