Comment 1 for bug 809400

Revision history for this message
RedScourge (redscourge) wrote :

I managed to compile PHP finally, and all it took was several hours and countless steps. It's so simple your kids can do it!

Process (roughly, your mileage may vary, and i may have forgotten a step):

cd /tmp
apt-get source php5
apt-get install build-essential debhelper fakeroot
vi /etc/apt/sources.list
apt-get source php5
gunzip *.gz
ls
cd php5-5.2.10.dfsg.1/
vi debian/rules
#(remove ",/usr" where it talks about the GD library so it uses its bundled library instead of the system library, as is desired)
dpkg-buildpackage -rfakeroot
#(fails due to dependencies, start installing them)
apt-get install libaprutil1-dev
#(should fail due to existing version of libaprutil1 and libdb4.7, which you DONT want to remove
apt-get install bison chrpath flex freetds-dev libbz2-dev libcurl4-openssl-dev libedit-dev libfreetype6-dev libgcrypt11-dev libgd2-xpm-dev libgmp3-dev libjpeg62-dev libmhash-dev libncurses5-dev libpam0g-dev libpng12-dev libpspell-dev librecode-dev libsasl2-dev libsnmp-dev libsqlite0-dev libt1-dev libtidy-dev libwrap0-dev libxmltok1-dev libxml2-dev libxslt1-dev quilt re2c unixodbc-dev
wget http://launchpadlibrarian.net/59612230/libaprutil1-dev_1.3.9%2Bdfsg-1ubuntu1.1_amd64.deb
apt-get install libsqlite3-dev libpq-dev libmysqlclient-dev uuid-dev libpcrecpp0 libpcre3-dev
dpkg --force-depends -i libaprutil1-dev_1.3.9+dfsg-1ubuntu1.1_amd64.deb
wget http://launchpadlibrarian.net/59612303/apache2-prefork-dev_2.2.12-1ubuntu2.4_amd64.deb
dpkg --force-depends -i apache2-prefork-dev_2.2.12-1ubuntu2.4_amd64.deb
cd php5-5.2.10.dfsg.1/
dpkg-buildpackage -rfakeroot
#FINALLY COMPILED, PROCEED TO REMOVE ALL CRAP AND RESTORE SYSTEM TO PREVIOUS STATE
aptitude
#(USED APTITUDE TO FIX CONFLICTS)
#(NOW REMOVE ALL THOSE SHIT PACKAGES YOU HAD TO INSTALL TO COMPILE)
apt-get remove libpng12-dev libpq-dev libpspell-dev librecode-dev libsasl2-dev libsnmp-dev libsqlite0-dev libt1-dev libtidy-dev libwrap0-dev libxmltok1-dev libxml2-dev libxslt1-dev
apt-get remove libmysqlclient-dev libncurses5-dev libpam0g-dev libpcre3-dev
apt-get install lm-sensors
apt-get autoremove
apt-get install lm-sensors
apt-get remove libfreetype6-dev libgcrypt11-dev libgd2-xpm-dev libgmp3-dev libjpeg62-dev libkrb5-dev libldap2-dev libmhash-dev
apt-get autoremove
apt-get remove comerr-dev krb5-multidev libapr1-dev libaprutil1-dev libdb4.8-dev libexpat1-dev libgssrpc4 libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libkrb5-dev
apt-get remove comerr-dev krb5-multidev libapr1-dev libdb4.8-dev libexpat1-dev libgssrpc4 libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libkrb5-dev libldap2-dev
apt-get remove libmysqlclient-dev libpcre3-dev libpcrecpp0 libpq-dev libsqlite3-dev uuid-dev
apt-get remove libldap2-dev libmysqlclient-dev libpcre3-dev libpcrecpp0 libpq-dev libsqlite3-dev uuid-dev
apt-get remove libxml2-dev libxslt1-dev
apt-get remove libgd2-xpm-dev libgmp3-dev libjpeg62-dev libkrb5-dev libldap2-dev libmhash-dev (>= 0.8.8) libmysqlclient-dev libncurses5-dev libpam0g-dev
apt-get remove libgd2-xpm-dev libgmp3-dev libjpeg62-dev libkrb5-dev libldap2-dev libmhash-dev libmysqlclient-dev libncurses5-dev libpam0g-dev
apt-get remove install bison chrpath flex freetds-dev libbz2-dev libcurl4-openssl-dev libedit-dev libfreetype6-dev libgcrypt11-dev libgd2-xpm-dev libgmp3-dev libjpeg62-dev libmhash-dev libncurses5-dev libpam0g-dev libpng12-dev libpspell-dev librecode-dev libsasl2-dev libsnmp-dev libsqlite0-dev libt1-dev libtidy-dev libwrap0-dev libxmltok1-dev libxml2-dev libxslt1-dev quilt re2c unixodbc-dev
apt-get remove bison chrpath flex freetds-dev libbz2-dev libcurl4-openssl-dev libedit-dev libfreetype6-dev libgcrypt11-dev libgd2-xpm-dev libgmp3-dev libjpeg62-dev libmhash-dev libncurses5-dev libpam0g-dev libpng12-dev libpspell-dev librecode-dev libsasl2-dev libsnmp-dev libsqlite0-dev libt1-dev libtidy-dev libwrap0-dev libxmltok1-dev libxml2-dev libxslt1-dev quilt re2c unixodbc-dev
apt-get autoremove
apt-get remove bison chrpath diffstat fancontrol flex freetds-common freetds-dev gawk libaspell-dev libaudio2 libbsd-dev libbz2-dev libct4 libcurl4-openssl-dev libedit-dev libfontconfig1-dev libfreetype6-dev libgcrypt11-dev libgd2-xpm-dev libgmp3-dev libgmpxx4ldbl libgpg-error-dev libice-dev libidn11-dev libjpeg62-dev libmhash-dev libmhash2 libmng1 libncurses5-dev libodbcinstq1c2 libpam0g-dev libperl5.10 libpng12-dev libpspell-dev libpthread-stubs0 libpthread-stubs0-dev libqt3-mt librecode-dev librecode0 libsasl2-dev libsensors4 libsm-dev libsnmp-base libsnmp-dev libsnmp-perl libsnmp15 libsqlite0 libsqlite0-dev libsybdb5 libt1-dev libt1-doc libtidy-dev libwrap0-dev libx11-dev libxau-dev libxaw7-dev libxcb1-dev libxdmcp-dev libxext-dev libxml2-dev libxmltok1 libxmltok1-dev libxmu-dev libxmu-headers libxpm-dev libxslt1-dev libxt-dev lm-sensors pkg-config quilt re2c unixodbc-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev xtrans-dev
apt-get remove gawk
apt-get autoremove
#(NOW REMOVE EXISTING php5-gd LIBRARY SO YOU CAN INSTALL NEW ONE)
apt-get remove php5-gd
dpkg -i php5-gd_5.2.10.dfsg.1-2ubuntu6.10_amd64.deb
#(RESTART APACHE SO IT TAKES EFFECT)
apache2ctl configtest
apache2ctl stop
apache2ctl start