diff options
| author | Ben Fuhrmannek | 2014-10-01 15:13:30 +0200 |
|---|---|---|
| committer | Ben Fuhrmannek | 2014-10-01 15:13:30 +0200 |
| commit | 3159694378333c08c73d4fcd4b73725c02249750 (patch) | |
| tree | 973bc2f3521bbf3b346b1dbb85f4dcf2bbf42fa6 /pkg | |
| parent | 8f2433d78347b2f1542e95652fa74d38346fb6ec (diff) | |
added script to build binary debian package
Diffstat (limited to 'pkg')
| -rwxr-xr-x | pkg/build_deb.sh | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/pkg/build_deb.sh b/pkg/build_deb.sh new file mode 100755 index 0000000..d4a44fa --- /dev/null +++ b/pkg/build_deb.sh | |||
| @@ -0,0 +1,119 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | |||
| 3 | _exit() { | ||
| 4 | echo "[E] bye." | ||
| 5 | exit 1 | ||
| 6 | } | ||
| 7 | |||
| 8 | yn_or_exit() { | ||
| 9 | echo -n "[?] OK? [y] " | ||
| 10 | read yn | ||
| 11 | if [ "$yn" != "" -a "$yn" != "y" ]; then | ||
| 12 | _exit | ||
| 13 | fi | ||
| 14 | } | ||
| 15 | |||
| 16 | ## | ||
| 17 | |||
| 18 | echo "[*] checking prerequisites..." | ||
| 19 | for i in phpize make install fakeroot php-config dpkg-deb dpkg-architecture; do | ||
| 20 | if [ "`which $i`" == "" ]; then | ||
| 21 | echo "[E] please install '$i' and try again." | ||
| 22 | _exit | ||
| 23 | fi | ||
| 24 | done | ||
| 25 | |||
| 26 | ## | ||
| 27 | |||
| 28 | HERE=`(cd $(dirname $0); pwd)` | ||
| 29 | SUHOSIN=$HERE/.. | ||
| 30 | ROOT=$HERE/tmp | ||
| 31 | PKGDIR=$HERE | ||
| 32 | PHP_EX=`php-config --extension-dir` | ||
| 33 | eval `dpkg-architecture -l` | ||
| 34 | VERSION=${SUHOSIN_VERSION:-$1} | ||
| 35 | |||
| 36 | if [ "$VERSION" == "" ]; then | ||
| 37 | echo "[E] please set SUHOSIN_VERSION, e.g. $0 0.9.36-1~dev1" | ||
| 38 | _exit | ||
| 39 | fi | ||
| 40 | |||
| 41 | echo "[*] -----------------------------------------------------------" | ||
| 42 | echo "[+] suhosin dir: $SUHOSIN" | ||
| 43 | echo "[+] tmp dir: $ROOT" | ||
| 44 | echo "[+] PHP extension dir: $PHP_EX" | ||
| 45 | echo "[+] architecture: $DEB_HOST_ARCH" | ||
| 46 | echo "[+] suhosin deb version: $VERSION" | ||
| 47 | echo "[+] pkg output dir: $PKGDIR" | ||
| 48 | yn_or_exit | ||
| 49 | |||
| 50 | if [ ! -f "$SUHOSIN/modules/suhosin.so" ]; then | ||
| 51 | echo "[+] Cannot find suhosin.so. I will try to build it." | ||
| 52 | yn_or_exit | ||
| 53 | |||
| 54 | if [ ! -f "$SUHOSIN/configure" ]; then | ||
| 55 | echo "[*] phpize" | ||
| 56 | cd $SUHOSIN | ||
| 57 | phpize || _exit | ||
| 58 | fi | ||
| 59 | |||
| 60 | if [ ! -f "$SUHOSIN/Makefile" ]; then | ||
| 61 | echo "[*] configure" | ||
| 62 | cd $SUHOSIN | ||
| 63 | ./configure --enable-suhosin-experimental | ||
| 64 | fi | ||
| 65 | |||
| 66 | echo "[*] make" | ||
| 67 | make clean | ||
| 68 | make -C $SUHOSIN || _exit | ||
| 69 | fi | ||
| 70 | |||
| 71 | ## | ||
| 72 | |||
| 73 | echo "[*] deb" | ||
| 74 | |||
| 75 | if [ -d "$ROOT" ]; then | ||
| 76 | echo "[+] tmp dir $ROOT already exists. Delete?" | ||
| 77 | yn_or_exit | ||
| 78 | rm -rf $ROOT | ||
| 79 | fi | ||
| 80 | |||
| 81 | ## | ||
| 82 | |||
| 83 | mkdir -p $ROOT/DEBIAN | ||
| 84 | echo "9" >$ROOT/DEBIAN/compat | ||
| 85 | cat >$ROOT/DEBIAN/control <<EOF | ||
| 86 | Package: php5-suhosin-extension | ||
| 87 | Section: php | ||
| 88 | Priority: extra | ||
| 89 | Maintainer: Ben Fuhrmannek <ben@sektioneins.de> | ||
| 90 | Homepage: http://www.suhosin.org/ | ||
| 91 | Conflicts: php5-suhosin | ||
| 92 | Description: advanced protection system for PHP5 | ||
| 93 | This package provides a PHP hardening module. | ||
| 94 | . | ||
| 95 | Suhosin is an advanced protection system for PHP installations. It was | ||
| 96 | designed to protect servers and users from known and unknown flaws in PHP | ||
| 97 | applications and the PHP core. Suhosin comes in two independent parts, that | ||
| 98 | can be used separately or in combination. The first part is a small patch | ||
| 99 | against the PHP core, that implements a few low-level protections against | ||
| 100 | bufferoverflows or format string vulnerabilities and the second part is a | ||
| 101 | powerful PHP extension that implements all the other protections. | ||
| 102 | . | ||
| 103 | This Package provides the suhosin extension only. | ||
| 104 | EOF | ||
| 105 | |||
| 106 | echo "Architecture: $DEB_HOST_ARCH" >>$ROOT/DEBIAN/control | ||
| 107 | echo "Version: $VERSION" >>$ROOT/DEBIAN/control | ||
| 108 | |||
| 109 | install -d -g 0 -o 0 $ROOT$PHP_EX | ||
| 110 | install -g 0 -o 0 $SUHOSIN/modules/suhosin.so $ROOT$PHP_EX | ||
| 111 | install -d -g 0 -o 0 $ROOT/usr/share/doc/php5-suhosin-extension | ||
| 112 | install -g 0 -o 0 -m 644 $SUHOSIN/suhosin.ini $ROOT/usr/share/doc/php5-suhosin-extension/suhosin.ini.example | ||
| 113 | install -d -g 0 -o 0 $ROOT/etc/php5/mods-available | ||
| 114 | sed -e 's/^;extension=/extension=/' $SUHOSIN/suhosin.ini >$ROOT/etc/php5/mods-available/suhosin.ini | ||
| 115 | chown root:root $ROOT/etc/php5/mods-available/suhosin.ini | ||
| 116 | |||
| 117 | fakeroot dpkg-deb -b $ROOT $PKGDIR | ||
| 118 | |||
| 119 | echo "[*] done." | ||
