summaryrefslogtreecommitdiff
path: root/makerpm
blob: 07bd372df4379102d8e948b345f292d70754d96d (plain)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
#! /bin/sh

# Based slightly on an original by John H Terpstra but not much left of his.
# S Liddicott 1999 sam@campbellsci.co.uk

PREFIX="php"
TARDIR="`basename \`pwd\``"
RELEASE=${1:-1}
VERSION=${2:-`echo $TARDIR | sed "s/$PREFIX-//g"`}

if	[ "$VERSION" = "" ]
then	cat <<"EOH"
$PREFIX source needs to be installed in a folder that contains the version
number, e.g. ${PREFIX}5 or ${PREFIX}5b2
EOH
fi
	
echo "Usage:"
echo "$0 <release> <version>"
echo
echo "e.g.:"
echo "$0 2"
echo -n "Building RPM version $VERSION, release: $RELEASE "
sleep 1 ; echo -n . ; sleep 1 ; echo -n . ; sleep 1 ; echo -n .
echo

TAR=php-$VERSION.tar.gz
SPEC=php-$VERSION.spec
PREQUIRES=`rpm -q --provides apache|grep "\(webserver\|httpd\)"`
if  [ "$PREQUIRES" = "" ]
then PREQUIRES="webserver"
fi

# write out the .spec file
sed -e "s/PVERSION/$VERSION/g" \
    -e "s/PRELEASE/$RELEASE/g" \
    -e "s/TARDIR/$TARDIR/g" \
    -e "s/PREQUIRES/$PREQUIRES/g" \
    > $SPEC <<'EOF'
Summary: PHP 5 - A powerful scripting language
Name: php5
Version: PVERSION
Release: PRELEASE
Group: Networking/Daemons
Source0: http://www.php.net/distributions/php-%{PACKAGE_VERSION}.tar.gz
Copyright: PHP License
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
Requires: PREQUIRES

%description
PHP 5 is a powerful apache module that adds scripting and database connection
capabilities to the apache server. This version includes the "php_cgi" binary
for suExec and stand alone php scripts too.

%prep
%setup -q -n TARDIR
#mkdir manual; cd manual && tar xzf $RPM_SOURCE_DIR/php3-manual.tar.gz
./buildconf

%build
# first the standalone (why can't you build both at once?)
# need to run this under sh or it breaks

sh ./configure --prefix=/usr \
	--with-config-file-path=%{_sysconfdir} \
	--disable-cli \
	--without-pear \
	--enable-force-cgi-redirect \
	--enable-safe-mode \
	--with-exec-dir=/usr/bin \
	--with-mysql \
	--with-zlib \
	--enable-xml \
	--enable-wddx \
	--with-gd \
	--enable-shared \

make
mv sapi/cgi/php php.keepme

# then the apache module 
test -f config.cache && rm -f config.cache
sh ./configure --prefix=/usr \
	--with-apxs=/usr/sbin/apxs \
	--enable-cli \
	--with-config-file-path=%{_sysconfdir} \
	--enable-safe-mode \
	--with-exec-dir=/usr/bin \
	--with-mysql \
	--with-zlib \
	--enable-xml \
	--enable-wddx \
	--with-gd \
	--enable-shared \

#	--with-pgsql=shared \

make clean
make
# restore cgi version
mv php.keepme sapi/cgi/php

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_libdir}/apache
install -m 0755 .libs/libphp5.so $RPM_BUILD_ROOT%{_libdir}/apache
mkdir -p $RPM_BUILD_ROOT%{_bindir}
install -m 0755 sapi/cli/php $RPM_BUILD_ROOT%{_bindir}
install -m 0755 sapi/cgi/php $RPM_BUILD_ROOT%{_bindir}/php_cgi
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
install -m 0755 sapi/cli/php.1 $RPM_BUILD_ROOT%{_mandir}/man1
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
install -m 0755 php.ini-recommended $RPM_BUILD_ROOT%{_sysconfdir}/php.ini
mkdir -p $RPM_BUILD_ROOT%{_libdir}/php/extensions
install -m 0755 modules/*.so $RPM_BUILD_ROOT%{_libdir}/php/extensions

%clean
rm -rf $RPM_BUILD_ROOT

%changelog
* Thu Nov 27 2003 Marcus Boerger <helly@php.net>
- Fix requirements for older systems.
- Fix rpm build directory for the major distributions.
- Fix config dir.
- Rename package to php.
- Add gd extension.
- Support building of shared extensions.
- Build CLI only once.

* Thu Oct 31 2003 Marcus Boerger <helly@php.net>
- Update version to 5.
- Remove unsure external requirements.
- Remove non existing directories
- Fix targets.
- Install both CLI and CGI.
- Install manpage.
- Install ini.

* Mon Mar 04 2002 Arjen Lentz <agl@bitbike.com>
- Fix path and remove --with-imap due to conflicts with kerberos.

* Fri Jun 29 2001 Jani Taskinen <sniper@iki.fi>
- Removed some useless configure options. Made the tar names correct.

* Sun Apr 30 2000 Joey Smith <joey@samaritan.com>
- Small fix: Description still referred to package as PHP3.

* Wed Jul 21 1999 Sam Liddicott <sam@campbellsci.co.uk>
- added php4b1 and modified cgi building rules so it doesn't break module

* Wed Mar 17 1999 Sam Liddicott <sam@campbellsci.co.uk>
- Stuffed in 3.0.7 source tar and added "php" as a build destination

* Mon Oct 12 1998 Cristian Gafton <gafton@redhat.com>
- rebuild for apache 1.3.3

* Thu Oct 08 1998 Preston Brown <pbrown@redhat.com>
- updated to 3.0.5, fixes nasty bugs in 3.0.4.

* Sun Sep 27 1998 Cristian Gafton <gafton@redhat.com>
- updated to 3.0.4 and recompiled for apache 1.3.2

* Thu Sep 03 1998 Preston Brown <pbrown@redhat.com>
- improvements; builds with apache-devel package installed.

* Tue Sep 01 1998 Preston Brown <pbrown@redhat.com>
- Made initial cut for PHP3.

%files
%defattr(-,root,root)
%{_libdir}/apache/libphp5.so
%{_bindir}/php
%{_bindir}/php_cgi
%{_mandir}/man1/php.1*
%{_sysconfdir}/php.ini
%{_libdir}/php/extensions/*.so

%doc TODO CODING_STANDARDS CREDITS ChangeLog LICENSE NEWS
EOF

RPMBASE=/usr/src/redhat
for i in /usr/src/redhat /usr/src/packages /usr/src/RPM; do
  if test -d $i; then
    RPMBASE=$i
    break
  fi
done

RPMDIR=${RPMBASE}/RPMS
SPECDIR=${RPMBASE}/SPECS
SRCDIR=${RPMBASE}/SOURCES

(
make clean
find . -name config.cache -exec rm -f '{}' \;
cd .. 
tar czvf ${SRCDIR}/${TAR} $TARDIR )

cp -a $SPEC $SPECDIR/${SPEC}
#cp -a *.patch $SRCDIR
cd $SRCDIR
cd $SPECDIR
rpm -ba -v ${SPEC}